Original Xbox Emulator for Windows, macOS, and Linux (Active Development)
Go to file
Erik Abair dc881c700a nv2a: Handle framebuffer CPU blit and PVIDEO only rendering
Handles two edge cases:
1) CPU blits to the framebuffer without using 3D rendering.
2) Fullscreen PVIDEO rendering without any 3D rendering.

In both cases this change prevents the pgraph code from returning early,
bypassing the special case VGA handling in `sdl2_gl_refresh` and instead
using a special framebuffer texture to render the contents of VRAM.

Fixes #652
Fixes #1165

[Tests](https://github.com/abaire/nxdk_pgraph_tests/blob/main/src/tests/antialiasing_tests.cpp)
[HW results](https://github.com/abaire/nxdk_pgraph_tests_golden_results/wiki/Results-Antialiasing_tests)
2025-03-05 17:52:58 -08:00
.github ci: Zero Ubuntu dpkg version to eliminate cflag differences 2025-03-05 14:40:46 -07:00
.gitlab/issue_templates .gitlab/issue_templates: Move suggestions into comments 2022-12-15 15:19:24 +01:00
.gitlab-ci.d .gitlab-ci.d/cirrus: Remove the wrong CPU and RAM settings from the macOS job 2024-11-27 09:23:52 +01:00
accel v9.2.1 release 2025-02-15 13:59:10 -07:00
audio audio/pw: Report more accurate error when connecting to PipeWire fails 2024-10-14 17:35:24 +04:00
authz error: Drop superfluous #include "qapi/qmp/qerror.h" 2023-02-23 13:56:14 +01:00
backends backends/cryptodev-vhost-user: Fix local_error leaks 2025-01-17 09:16:01 +03:00
block v9.2.0 release 2025-01-03 22:30:04 -07:00
bsd-user bsd-user: Set TaskState ts_tid for initial threads 2024-11-04 20:26:40 -07:00
chardev v9.2.0 release 2025-01-03 22:30:04 -07:00
common-user common-user/host/ppc: Implement safe-syscall.inc.S 2023-01-23 14:39:48 -10:00
configs v9.2.1 release 2025-02-15 13:59:10 -07:00
contrib contrib/plugins: remove Makefile for contrib/plugins 2024-11-05 09:13:51 +00:00
crypto crypto: fix bogus error benchmarking pbkdf on fast machines 2025-01-22 21:58:16 +03:00
data xid: Add Xbox Controller S 2025-01-25 20:48:58 -07:00
debian debian: Add cmake to build deps 2025-01-01 23:55:16 -07:00
disas disas/riscv: enable disassembly for compressed sspush/sspopchk 2024-10-31 13:51:24 +10:00
docs docs: Correct release of TCG trace-events removal 2024-12-29 01:57:11 +03:00
dump dump: make range overlap check more readable 2024-07-23 20:30:36 +02:00
ebpf ebpf: improve trace event coverage to all key operations 2024-10-28 14:37:25 +08:00
fpu target/s390x: Fix the floating-point multiply-and-add NaN rules 2024-11-18 10:54:42 +01:00
fsdev * pc: Add a description for the i8042 property 2024-10-04 19:28:37 +01:00
gdb-xml target/i386/gdbstub: Expose orig_ax 2024-10-13 10:05:51 -07:00
gdbstub gdbstub/user-target: fix gdbserver int format (%d -> %x) 2025-02-01 12:21:08 +03:00
host/include target/i386/hvf: fix handling of XSAVE-related CPUID bits 2024-10-31 18:28:32 +01:00
hw nv2a: Handle framebuffer CPU blit and PVIDEO only rendering 2025-03-05 17:52:58 -08:00
include v9.2.1 release 2025-02-15 13:59:10 -07:00
io qapi/crypto: Rename QCryptoHashAlgorithm to *Algo, and drop prefix 2024-09-10 14:02:16 +02:00
libdecnumber libdecnumber/dpd/decimal64: Fix compiler warning from Clang 15 2022-11-11 09:13:52 +01:00
licenses meson: Migrate cpp-httplib submodule to a subproject 2025-01-02 19:07:25 -07:00
linux-headers linux-headers: Update to Linux v6.12-rc5 2024-11-02 15:20:41 +08:00
linux-user linux-user: Fix strace output for s390x mmap() 2024-11-22 14:20:38 -06:00
migration v9.2.1 release 2025-02-15 13:59:10 -07:00
monitor block-backend: per-device throttling of BLOCK_IO_ERROR reports 2024-10-22 17:52:49 +02:00
nbd nbd-server: Silence server warnings on port probes 2024-11-18 09:06:17 -06:00
net v9.2.1 release 2025-02-15 13:59:10 -07:00
pc-bios pc-bios: add missing riscv64 descriptor 2024-12-17 18:06:39 +03:00
plugins plugins: eradicate qemu-plugins.symbols static file 2024-11-25 10:27:45 +00:00
po po: update Italian translation 2024-08-13 19:01:42 +02:00
python python: silence pylint raising-non-exception error 2024-11-25 11:03:14 +01:00
qapi qapi/ui: 'Document' xemu interface 2025-01-06 23:05:53 -07:00
qga qemu-ga: Avoiding freeing line prematurely 2024-11-07 12:28:20 +02:00
qobject qobject: remove return after g_assert_not_reached() 2024-09-24 13:53:35 +02:00
qom qom: allow user-creatable classes to be in modules 2024-10-31 18:28:32 +01:00
replay replay: Remove unused replay_disable_events 2024-10-03 17:26:06 +03:00
roms roms: re-add edk2-basetools target 2024-12-17 14:26:42 +03:00
rust rust/pl011: Fix range checks for device ID accesses 2024-11-25 10:27:47 +00:00
scripts scripts/download-macos-libs.py: Skip libsndfile 2025-03-04 22:58:26 -07:00
scsi configure, meson: rename targetos to host_os 2023-12-31 09:11:29 +01:00
semihosting semihosting: Restrict to TCG 2024-07-22 09:38:16 +01:00
stats meson: Replace softmmu_ss -> system_ss 2023-06-20 10:01:30 +02:00
storage-daemon Revert "meson: Propagate gnutls dependency" 2024-07-03 18:41:26 +02:00
stubs stub: Fix build failure with --enable-user --disable-system --enable-tools 2025-01-29 22:23:55 +03:00
subprojects meson: Update xxHash wrap 2025-02-15 16:56:30 -07:00
system v9.2.1 release 2025-02-15 13:59:10 -07:00
target v9.2.1 release 2025-02-15 13:59:10 -07:00
tcg v9.2.1 release 2025-02-15 13:59:10 -07:00
tests v9.2.1 release 2025-02-15 13:59:10 -07:00
thirdparty meson: Move volk, SPIRV-Reflect to main meson.build 2024-12-31 01:37:05 -07:00
tools qemu-vmsr-helper: implement --verbose/-v 2024-07-31 13:15:06 +02:00
trace trace: Don't include trace-root.h in control.c or control-target.c 2024-11-19 14:14:13 +00:00
ubuntu-win64-cross ubuntu-win64-cross: Bump mxe/build-win64-mxe 2025-02-15 16:56:30 -07:00
ui ui: Add 720x480 resolution to Window size options 2025-02-15 16:17:58 -07:00
util meson: Migrate host os checks to use 'host_os' var 2025-01-06 23:05:53 -07:00
winpcap-loader meson: Fix loader.c file inclusion 2025-01-06 23:05:53 -07:00
.clang-format nv2a: Add Vulkan renderer 2024-12-31 01:37:05 -07:00
.dir-locals.el Add .dir-locals.el file to configure emacs coding style 2015-10-08 19:46:01 +03:00
.editorconfig .editorconfig: update the automatic mode setting for Emacs 2021-03-10 15:34:11 +00:00
.exrc qemu: add .exrc 2012-09-07 09:02:44 +03:00
.gdbinit .gdbinit: load QEMU sub-commands when gdb starts 2017-06-07 14:38:45 +01:00
.git-blame-ignore-revs metadata: add .git-blame-ignore-revs 2023-04-04 15:56:44 +01:00
.gitattributes rust: patch bilge-impl to allow compilation with 1.63.0 2024-11-05 14:18:16 +01:00
.gitignore configure: rename --enable-pypi to --enable-download, control subprojects too 2023-06-06 16:30:01 +02:00
.gitlab-ci.yml docs: Document GitLab custom CI/CD variables 2021-07-29 07:56:01 +02:00
.gitmodules meson: Migrate genconfig submodule to subproject 2025-01-06 23:05:53 -07:00
.gitpublish Add a git-publish configuration file 2018-03-05 09:03:17 +00:00
.mailmap MAINTAINERS: update email addr for Brian Cain 2024-12-03 12:26:24 +01:00
.patchew.yml scripts/checkpatch: roll diff tweaking into checkpatch itself 2021-06-25 10:08:33 +01:00
.readthedocs.yml readthodocs: fully specify a build environment 2024-01-12 13:23:48 +00:00
.travis.yml Revert "Remove the unused sh4eb target" 2024-11-04 14:16:11 +01:00
COPYING COPYING: update from FSF 2008-10-12 17:54:42 +00:00
COPYING.LIB COPYING.LIB: Synchronize the LGPL 2.1 with the version from gnu.org 2019-01-30 11:01:22 +01:00
Info.plist Info.plist: Add NSMicrophoneUsageDescription key 2025-01-15 03:05:35 -07:00
Kconfig build-sys: Add rust feature option 2024-10-07 16:41:58 +02:00
Kconfig.host hw/core: Add Enclave Image Format (EIF) related helpers 2024-10-31 18:28:32 +01:00
LICENSE tcg/LICENSE: Remove out of date claim about TCG subdirectory licensing 2019-11-11 15:11:21 +01:00
MAINTAINERS tests/qtest: drop 'fuzz-' prefix from virtio-balloon test 2024-12-03 12:26:24 +01:00
Makefile Makefile: Ignore distclean before configure error 2025-01-06 23:05:53 -07:00
QEMU_VERSION v9.2.1 release 2025-02-15 13:59:10 -07:00
README.md README: Direct users to the website for more info 2020-02-21 00:45:41 -07:00
README.rst README.rst: add the missing punctuations 2024-07-17 14:04:15 +03:00
block.c v9.2.0 release 2025-01-03 22:30:04 -07:00
blockdev-nbd.c nbd/server: CVE-2024-7409: Avoid use-after-free when closing server 2024-08-26 08:42:42 -05:00
blockdev.c v9.2.0 release 2025-01-03 22:30:04 -07:00
blockjob.c block: remove AioContext locking 2023-12-21 22:49:27 +01:00
build.sh build: Allow CFLAGS to be passed through on macos. 2025-01-14 17:13:11 -07:00
config_spec.yml ui: Add 720x480 resolution to Window size options 2025-02-15 16:17:58 -07:00
configure v9.2.0 release 2025-01-03 22:30:04 -07:00
cpu-common.c cpu: ensure we don't call start_exclusive from cpu_exec 2024-11-16 08:42:25 -08:00
cpu-target.c cpu-target: don't set cpu->thread_id to bogus value 2024-06-04 10:02:39 +02:00
event-loop-base.c util/event-loop-base: Introduce options to set the thread pool size 2022-05-09 10:43:23 +01:00
get_deps.py ci: Check DLLs against /mingw64/bin instead of C:\Windows 2020-05-01 04:10:08 -07:00
gitdm.config contrib/gitdm: add group map for AMD 2023-03-22 15:08:26 +00:00
hmp-commands-info.hx hmp-commands-info.hx: Add missing info command for stats subcommand 2024-06-30 19:51:44 +03:00
hmp-commands.hx hmp/migration: Fix "migrate" command's documentation 2024-05-08 09:22:37 -03:00
iothread.c iothread: Simplify expression in qemu_in_iothread() 2024-02-13 10:59:25 +03:00
job-qmp.c qapi job: Elide redundant has_FOO in generated C 2022-12-14 20:04:47 +01:00
job.c block: remove AioContext locking 2023-12-21 22:49:27 +01:00
meson.build v9.2.1 release 2025-02-15 13:59:10 -07:00
meson_options.txt meson: Disable fdt 2025-01-09 15:48:27 -07:00
module-common.c all: Clean up includes 2016-02-04 17:41:30 +00:00
os-posix.c os-posix: Expand setrlimit() syscall compatibility 2024-06-30 19:51:44 +03:00
os-win32.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
page-target.c exec: Expose 'target_page.h' API to user emulation 2024-04-26 15:28:11 +02:00
page-vary-common.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
page-vary-target.c exec: Rename target specific page-vary.c -> page-vary-target.c 2023-10-04 11:03:54 -07:00
pythondeps.toml Require meson version 1.5.0 2024-10-07 16:41:57 +02:00
qemu-bridge-helper.c qemu-bridge-helper: relocate path to default ACL 2020-09-30 19:11:36 +02:00
qemu-edid.c qemu-edid: Restrict input parameter -d to avoid division by zero 2022-10-12 13:38:15 +02:00
qemu-img-cmds.hx docs/devel/docs: Document .hx file syntax 2024-01-15 17:12:22 +00:00
qemu-img.c block: remove AioContext locking 2023-12-21 22:49:27 +01:00
qemu-io-cmds.c v9.2.0 release 2025-01-03 22:30:04 -07:00
qemu-io.c block: remove AioContext locking 2023-12-21 22:49:27 +01:00
qemu-keymap.c qemu-keymap: Release local allocation references 2024-10-03 17:26:05 +03:00
qemu-nbd.c nbd/server: Plumb in new args to nbd_client_add() 2024-08-08 15:05:27 -05:00
qemu-options.hx chardev: finalize 'reconnect' deprecation 2024-10-28 14:37:25 +08:00
qemu.nsi license: Simplify GPL-2.0-or-later license descriptions 2024-09-20 10:11:59 +03:00
qemu.sasl sasl: remove comment about obsolete kerberos versions 2021-06-14 13:28:50 +01:00
replication.c replication: move include out of root directory 2021-05-26 14:49:46 +02:00
toml.cpp tomlplusplus: Allow using system library 2022-06-24 22:21:49 -07:00
trace-events system/dma-helpers.c: Move trace events to system/trace-events 2024-11-19 14:14:13 +00:00
version.rc .github: Make all release tags follow v<semver> convention 2022-04-29 22:03:39 -07:00
xemu-version.c nv2a: Add Vulkan renderer 2024-12-31 01:37:05 -07:00
xemu-version.h nv2a: Add Vulkan renderer 2024-12-31 01:37:05 -07:00
xemu-xbe.c xemu-xbe.c: Add memtxattrs 2023-01-23 00:30:40 -07:00
xemu-xbe.h xemu: Update copyright 2021-03-03 03:48:11 -07:00
xemu.metainfo.xml Update metainfo.xml information 2024-03-23 13:58:52 -07:00

README.md

Please visit https://xemu.app for more information.