protonscr

Prime offloading causes a swapchain issue.

vkd3dclosed
HansKristian-Work/vkd3d-proton#2588 · opened 2025-08-22 by Minksh · updated 2025-08-23 · 3 comments · github
MMinksh 2025-08-22 github

Whenever I try to use prime offloading, vkd3d throws a swapchain issue :(

(err: DXGI: CreateSwapChainForHwnd: Failed to create swap chain, hr -2147024809)

Software information

Monster Hunter Rise with the following launch options;

VKD3D_VULKAN_DEVICE=1 VKD3D_FILTER_DEVICE_NAME="NVIDIA GeForce RTX 3090" %command%

System information

  • GPU: RTX 3060 (Display) , RTX 3090 (Render target)
  • Driver: 580.76.05
  • VKD3D-Proton version: Experimental, 10.0.02 (Beta) ,9.0-4

steam-1446780.log

EEckoa 2025-08-22 github

Have you tried doing it the way nvidia suggests?

https://download.nvidia.com/XFree86/Linux-x86_64/550.54.14/README/primerenderoffload.html

I do it this way on my Aurora 16x with no issue. I know nvidia has its own mechanism for selection of GPUs s that'll work with 2x nvidia

MMinksh 2025-08-23 github

@Eckoa You are absolutely correct, for some reason filtering the device name and setting the Vulkan device causes the swapchain issue, while simply setting __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only (without the other VKD3D options) works, but not with both.

I thought this was a VKD3D issue since DXVK does not require these specific launch parameters. Although it is only able to select the card that is first in the index, which unfortunately is my 3060. I think this is a nvidia driver limitation.

EEckoa 2025-08-23 github

I "think" __NV_PRIME_RENDER_OFFLOAD works similar to DRI_prime In that you can select the card using it. I've seen some threads about selection of specific GPUs in multi nvidia systems around so someone knows how to do it how Nvidia expects somewhere