protonscr

DX11 as vulkan to run DLSS

dxvkopen windows
doitsujin/dxvk#5866 · opened 2026-08-30 by AUK233 · updated 2026-08-31 · 7 comments · github
AAUK233 2026-08-30 github

In Windows 11, DLSS for DX11 stops working when DXVK is used.
Although I tried to use NVSDK_NGX_VULKAN_Init to enable vulkan version of DLSS, the initialization failed due to VK_NVX_binary_import.

[2026-08-30 09:13:17] [tid:21124][NGXLoadLibrary:35] Loaded NGXCore from path (vulkan-1.dll)
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::LoadVkEntrypoints:121] Failed to load VK device function: vkCreateCuModuleNVX
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::LoadVkEntrypoints:121] Failed to load VK device function: vkCreateCuFunctionNVX
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::LoadVkEntrypoints:121] Failed to load VK device function: vkDestroyCuModuleNVX
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::LoadVkEntrypoints:121] Failed to load VK device function: vkDestroyCuFunctionNVX
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::LoadVkEntrypoints:121] Failed to load VK device function: vkCmdCuLaunchKernelNVX
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::LoadVkEntrypoints:121] Failed to load VK device function: vkGetImageViewHandleNVX
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::LoadVkEntrypoints:121] Failed to load VK device function: vkGetImageViewHandle64NVX
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::LoadVkEntrypoints:121] Failed to load VK device function: vkGetImageViewAddressNVX
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::LoadVkEntrypoints:121] Failed to load VK device function: vkCmdPushDescriptorSetKHR
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::Init:202] Enabling texmode_raw
[2026-08-30 09:13:17] [tid:21124][NGXCubinKernelMap::InitCubins:42] Loading NGXCubin kernels
[2026-08-30 09:13:17] [tid:21124][NGXCubinGeneric::SetGPUArch:400] SetGPUArch:: Gpu count = 1, luid: 0x1326c
[2026-08-30 09:13:17] [tid:21124][NGXCubinGeneric::SetGPUArch:460] m_gpuArch = 0x190
[2026-08-30 09:13:17] [tid:21124][NGXCubinGeneric::genericPostInit:164] Fast UAV clear: supported
[2026-08-30 09:13:17] [tid:21124][DLSSCubinKernelMap::InitCubins:303] Setting DLAA Cubins
[2026-08-30 09:13:17] [tid:21124][DLSSCubinKernelMap::InitCubins:303] Setting DLSS Debug Cubins
[2026-08-30 09:13:17] [tid:21124][DLSSCubinKernelMap::InitCubins:303] Setting DLTSS Engine Cubins
[2026-08-30 09:13:17] [tid:21124][DLSSCubinKernelMap::InitCubins:303] Setting DLTSS NW Cubins
[2026-08-30 09:13:17] [tid:21124][DLSSCubinKernelMap::InitCubins:303] Setting DLTSS NW E5M3_SKIP Cubins
[2026-08-30 09:13:17] [tid:21124][DLSSCubinKernelMap::InitCubins:303] Setting DLTSS NW Cubins
[2026-08-30 09:13:17] [tid:21124][DldnCubinKernelMap::InitCubins:138] Setting DLDN Debug Cubins
[2026-08-30 09:13:17] [tid:21124][DldnCubinKernelMap::InitCubins:138] Setting DLDN Engine Pre / Post Cubins
[2026-08-30 09:13:17] [tid:21124][NGXCubinVulkan::CreateKernel:451] Error: vkCreateCuModuleNVX() and/or vkCreateCuFunctionNVX() functions are not available. Request VK_NVX_binary_import extension
[2026-08-30 09:13:17] [tid:21124][NGXCubinGeneric::Shutdown:268] Delayed destroy resource list count 0

Perhaps add a function to dxgi.dll that enables VK_NVX_binary_import when calling D3D11CreateDevice?
Is to run DLSS with Vulkan and enable frame generation for DX11 games?

AAUK233 2026-08-30 github

I tested it using 3.0, DLSS initialized successfully.
That’s because I noticed this line in 3.1's description:
added dxvk.enableNvCudaInterop configuration option so users can explicitly disable VK_NVX_* extensions. This may be helpful for troubleshooting similar out-of-memory errors, but disables DLSS support.

However, in 3.1, even though I set dxvk.enableNvCudaInterop = True in dxvk.conf, initialization still fails.

Edit:In DXVK 3.0, I have successfully run vulkan's DLAA.

Image

But the DLSS initialization failed in DXVK 3.1.

BBlisto91 maintainer 2026-08-30 github

I think you need to give some more details about what are you are trying to do. As, at least to me, it isn't immediately obvious.
What is "DLSS for DX11" ? Do you mean some games ingame toggle or some third party injection into the game? And what game?
What does stop working mean more specifically? Can you not toggle it on or doesn't it have an effect?

If this depends on nvapi to work then it is expected that it breaks with dxvk on Windows.
Also note that dxvk spoofs Nvidia as a amd GPU by default on Windows unless dxgi.hideNvidiaGpu = False is set.

AAUK233 2026-08-30 github

@Blisto91 "DLSS for DX11" is use NVSDK_NGX_D3D11_Init. It is expected that this feature does not work in DXVK.

But now problem is that NVSDK_NGX_VULKAN_Init isn't able to execute correctly in DXVK 3.1. It doesn't return an error.
NGX log shows [2026-08-30 19:08:33] [tid:20472][NGXCubinVulkan::CreateKernel:451] Error: vkCreateCuModuleNVX() and/or vkCreateCuFunctionNVX() functions are not available. Request VK_NVX_binary_import extension
Even though I've configured dxvk.enableNvCudaInterop = True and dxgi.hideNvidiaGpu = False, I still can't initialize DLSS.

But if I use DXVK 3.0, DLSS can be enabled correctly. Even using the default DXVK configuration.

Edit: This is the dxvk log. As you can see, VK_NVX_binary_import is disabled in 3.1.

DXVK3.0.zip
DXVK3.1.zip

Ddoitsujin maintainer 2026-08-30 github

TL;DR this is a feature, not a bug. The NVX extensions tend to cause more trouble than it's worth (usually resulting in random out-of-memory errors), so they are explicitly disabled when running on Windows or dxvk-native (see commit 49a161918dc4b5e957d5a7e78d5ba9ee6acd1fc1).

But again, I don't understand what you're doing here. The only way DLSS can generally be used with DXVK in D3D11 games is with dxvk-nvapi in a Proton environment.

AAUK233 2026-08-30 github

@doitsujin You mean, from DXVK 3.1 starting, VK_NVX_binary_import is always disabled in Windows?

This is because DX11's DLSS only supports super-resolution. But this is not the main reason.
I found in native D3D11, scenes with very low frame rates in EDF6 are able to keep 60fps when using DXVK 3.0 or newer. But NVIDIA's smooth motion frame generation requires that MSAA be disabled. So I want to keep DLAA enabled when using DXVK. Although smooth motion cannot be enabled when using DXVK either.

Also, when running Vulkan-based DLAA in DXVK, GPU workload is lower than when running D3D11-based DLAA in native D3D11. Especially when using L Preset.

Ddoitsujin maintainer 2026-08-31 github

You mean, from DXVK 3.1 starting, VK_NVX_binary_import is always disabled in Windows?

Think we started that in 3.0.1 or .2 or something, but yes. I guess we could technically remove that check again and tell people who run into issues to use the config, but... hngh.

AAUK233 2026-08-31 github

So, is it possible to create a port to allow NVX to be enabled?
This is because executing Vulkan-based DLSS in DXVK, now instability more than enabled NVX.

Also, is it possible to obtain VkImageView from DSV UAV? Now, using VkImage to create one requires releasing it when execution is complete.

Edit: Xess works now, but compared to DLAA, the motion rendering is blurry.

DLLs