DLSS Unreal Engine 5.0.0 Engine Plugin failing when runing in container

DLSS is failing to load when NGXTest sample game is run inside the Windows container. The log error message is:

[2022-05-17 08:54:11] [ngx::util::setLogFilename:201] Logging to requested file (C:/pureweb/DLSS UE5/Samples/NGXTest/Windows/NGXTest/Saved/Logs/NGX/NGX_2022.05.17-08.54.11_FEF5BC9A4340CFAA2191A9829F906334/nvsdk_ngx.log) enabled successfully
[2022-05-17 08:54:11] [NGXGetPathUsingQAI:127] Path to driverStore found using QAI: C:\WINDOWS\System32\DriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22
[2022-05-17 08:54:11] [NGXLoadCoreLibrary:214] error: failed to load C:\WINDOWS\System32\DriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22_nvngx.dll - will now try nvngx.dll
[2022-05-17 08:54:11] [NGXLoadCoreLibrary:223] Loading C:\WINDOWS\System32\DriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvngx.dll failed

After launching the container with the volume C:\WINDOWS\System32\DriverStore\FileRepos itory\nvmiig.inf_amd64_dbcea54a4d540d22 mapped to C:\WINDOWS\System32\DriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22 the previous failure is resolved but another error is triggered:
[2022-05-19 10:09:00] [ngx::util::setLogFilename:203] Logging to requested file (C:/pureweb/DLSS UE5/Samples/NGXTest/Windows/NGXTest/Saved/Logs/NGX/NGX_2022.05.19-10.08.59_9F2FC0654B5F12BEEB3423B9FE285C81/nvngx.log) enabled successfully
[2022-05-19 10:09:00] [NGXCheckHardwareSupportUsingINF:186] error: unable to get key: NVSupportNGX, while trying to read the INF for GPU with physical handle: 0x100 and LUID: { 0x0, 0x10fbc }

Is there any way of resolving that with the current DLSS plugin or the plugin needs to be updated in order to work properly on Windows Container?

Hello @jacek.wielebnowski and welcome to the NVIDIA developer forums!

Unfortunately I am not able to immediately answer your question, but I will ask the DLSS experts internally for their input.

Could you please share the (zipped up) contents of your log file directories for them to have a look at? Their locations are stated in your output snippets above. Also, what kind of Windows container (VM or docker?) is this and on what host OS are you running?

In the meantime a quick checklist:

Thank you!

Continuing the discussion from DLSS Unreal Engine 5.0.0 Engine Plugin failing when runing in container:

Hello @MarkusHoHo ,

Thank you so much for a quick reply.

UE Version:
I am on 5.0.1. The problem also appears in 4.27.2.

DLSS Plugin:
Current release for 5.0 from NVIDIA

Nvidia Driver:
512.15 on local Windows [Version 10.0.19043.1706]
511.65 on AWS Windows Server 2019

Windows docker container:
FROM Microsoft Artifact Registry - on local
FROM mcr.microsoft.com/windows:10.0.17763.1457 - on AWS Server

Extra note: the game works fine including DLSS when run on the host that the container is run on.

In addition to make the UE game work in container the following is always executed based on the UE Windows Container documentation:

Found NVIDIA Display Driver directory: C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22

Enabling NVIDIA NVAPI support:
Copying C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvapi64.dll to C:\Windows\System32\nvapi64.dll

Enabling NVIDIA NVENC support:
Copying C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvEncodeAPI64.dll to C:\Windows\System32\nvEncodeAPI64.dll
Copying C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvEncMFTH264x.dll to C:\Windows\System32\nvEncMFTH264x.dll
Copying C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvEncMFThevcx.dll to C:\Windows\System32\nvEncMFThevcx.dll

Enabling NVIDIA CUVID/NVDEC support:
Copying C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvcuvid64.dll to C:\Windows\System32\nvcuvid.dll
Copying C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvDecMFTMjpeg.dll to C:\Windows\System32\nvDecMFTMjpeg.dll
Copying C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvDecMFTMjpegx.dll to C:\Windows\System32\nvDecMFTMjpegx.dll

Enabling NVIDIA CUDA support:
Copying C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvcuda64.dll to C:\Windows\System32\nvcuda64.dll
Copying C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvcuda_loader64.dll to C:\Windows\System32\nvcuda.dll
Copying C:\Windows\System32\HostDriverStore\FileRepository\nvmiig.inf_amd64_dbcea54a4d540d22\nvptxJitCompiler64.dll to C:\Windows\System32\nvptxJitCompiler64.dll

The logs include two runs one with and one without mapping of the DriverStore volume:

NGXTestLogsWindowsDockerContainer.zip (26.7 KB)


Hello Jacek,

just as a quick update, your question raised quite the interesting (internal) discussion. The short of it, as far as I am able to share is, that it is surprising that you got anything to work at all with your Container setup. There is no guarantee that the UE+DLSS would work at all within a Windows container on a Windows host. And it seems your container configuration is also not a standard one.

May I ask what instructions you used to set it up? Did you use Windows specific information or any guides from Epic directly?



The instructions are included in the following blogs by Adam Rehn under https://unrealcontainers.com/ :

The example is also included with the UE installation under:
C:\Program Files\Epic Games\UE_5.0\Engine\Extras\Containers\Dockerfiles\windows

To set up offscreen rendering you can use UE Pixel Streaming sample that is also included with the UE installation:

C:\Program Files\Epic Games\UE_5.0\Samples\PixelStreaming\WebServers\SignallingWebServer

Please let me know if I can provide more information or help to setup a testing environment. Thank you again for looking into it.



Just pinging you to see if you have any update regarding the issue?


I am terribly sorry I dropped the ball on this.

I already answered through a DM to Jacek, but for closure a quick summary here as well.

In an internal discussion the verdict was that running DLSS (or any NVIDIA specific plugins/DLLs beside basic DirectX support) within containers as was attempted in this post is not officially supported. As a summary the main issue lies with this part of the description in the linked blog post:

“[…] enabling support is simply a matter of locating these files at container startup and copying them to the appropriate location.”

This kind of local directory manipulation is a bit hacky and it would “inject different DLLs into the order precedence of what DLLS load (which is usually, current directory → system directory → some other place in path directory )”

Causing all kinds of possible issues related to for example secure DLL loading, which might end up not loading specific DLLs at all.

So this might work, but chances are rather that it does not.

There are also currently no plans to work on supporting containers.

I am sorry if this is not the desired outcome.

Thank you for your patience!