Skip to content

Performance issue with DXGI swapchain and recent NVIDIA drivers in combination with unlocked UI thread (0.8.144 and later) #2845

@abaire

Description

@abaire

Bug Description

Forking the nvidia-specific workaround from #2790.

Initially I found that this setting affected my machine on 0.8.133 and later (I did not test earlier builds). After some time and various debugging attempts, I can no longer reproduce this problem myself even when forcing DXGI swapchain use.

@aitorciki discovered that setting the Vulkan/OpenGL present method to Prefer layered on DXGI Swapchain in the NVIDIA control panel causes guest framerate to be roughly halved when using the Vulkan renderer. In response, xemu was updated to forcibly disable the DXGI swapchain option using the nvapi. Unfortunately this is problematic for certain situations with HDR enabled.

@Toff-kun found that using the undocumented Vulkan/OpenGL Present Method - Flags (OGL_DX_PRESENT_DEBUG_ID, 0x20324987 from Orbmu2k/nvidiaProfileInspector ) and setting the value 0x000802A5 Treat DXVK as Native allows use of DXGI without perf degradation.

Both were able to verify that this does not affect 0.8.133 for them, and using a debug build that adds back the 0.8.133 UI-loop 60fps throttle fixes the issue regardless of the state of the present method settings in the NV profile. A general solution for #2790 will likely solve this issue as well.

Expected Behavior

Users should be able to enable DXGI without having to set up undocumented flags via additional configuration tooling. While arguably this should be fixed in the NV driver directly, xemu already performs NVIDIA-specific configuration and can hopefully set the DXGI flag on the user's behalf.

xemu Version

Affects at least 0.8.133 and 0.8.134, presumably tied to contemporary (late 2025/early 2026) NVIDIA drivers.

System Information

Windows 11, possibly other Windows versions

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    NvidiaIssue is present when using Nvidia graphicsbugSomething isn't workingregression

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions