Files
Erik Abair 99a8bd3b48 ui: Use DXGI to perform swapping on Windows
In #2691, xemu was updated to decouple the guest vblank interrupt from the host
refresh. This allows the UI thread to run at host FPS while the guest runs at
60 fps, matching HW behavior.

On Window machines using AMD drivers, this led to a major decrease in guest
performance when vsync is enabled, apparently due to locking behavior in the
driver holding the guest pfifo thread while awaiting vblank. This manifests as
reduced perf that gets worse when running at a lower display refresh rate.

This PR bypasses the GL swap entirely, utilizing Windows DXGI to perform swaps
and allowing the pfifo operations to proceed without blocking.

https://github.com/abaire/xemu-perf-tests/blob/4115d262c5e80d6b71234f8df65fa78c8ef15e12/src/tests/surface_rendering_tests.cpp#L167
reproduces the issue seen with Conker L&R (slow glo_readpixels) but it is
somewhat subtle at the given tuning. Modifying this test to perform more draws
per frame will likely produce a more obvious result w/ the pre-PR builds as
there are more opportunities for glReadPixels to stall on main thread vblank waits.
2026-09-06 16:15:06 -07:00
..
2026-01-18 16:36:55 -07:00
2025-01-03 22:30:04 -07:00
2026-01-21 18:40:07 -07:00
2025-10-30 22:56:51 +04:00
2024-09-10 13:22:47 +02:00
2025-10-05 09:46:06 +03:00
2024-12-20 17:44:56 +01:00
2023-08-31 19:47:43 +02:00
2024-09-13 20:12:16 +02:00
2023-08-31 19:47:43 +02:00
2025-10-30 22:56:51 +04:00
2026-01-21 18:40:07 -07:00
2026-01-21 18:40:07 -07:00
2026-01-21 18:40:07 -07:00
2026-01-18 16:36:55 -07:00
2026-01-18 16:36:55 -07:00
2026-01-21 18:40:07 -07:00
2025-11-27 12:55:20 -07:00