Skip to content

[wsl2] discover all .so, .bin, and .dll files at nvidia driver store path#1890

Draft
cdesiniotis wants to merge 1 commit into
NVIDIA:mainfrom
cdesiniotis:wsl2-discover-additional-libraries
Draft

[wsl2] discover all .so, .bin, and .dll files at nvidia driver store path#1890
cdesiniotis wants to merge 1 commit into
NVIDIA:mainfrom
cdesiniotis:wsl2-discover-additional-libraries

Conversation

@cdesiniotis

@cdesiniotis cdesiniotis commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

We currently define a hardcoded list of required files that must be discovered at the driver store. This commit extends this logic to also search for additional .so, .bin, and .dll files that may be present in the nvidia driver store path.

fixes #1864

Testing

Before this change, generating a CDI spec would discover the following:

$ nvidia-ctk cdi generate --output ./nvidia.yaml
WARN[0000] Ignoring error in locating libnvidia-sandboxutils.so.1: libnvidia-sandboxutils.so.1: not found
libnvidia-sandboxutils.so.1: not found
WARN[0000] Failed to init nvsandboxutils: ERROR_LIBRARY_LOAD; ignoring
INFO[0000] Using /usr/lib/wsl/lib/libnvidia-ml.so.1
INFO[0000] Auto-detected mode as 'wsl'
INFO[0000] Selecting /dev/dxg as /dev/dxg
WARN[0000] Found multiple driver store paths: [/usr/lib/wsl/drivers/u0420529.inf_amd64_94ad5a6c4d1a04e2 /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783]
INFO[0000] Using WSL driver store paths: [/usr/lib/wsl/drivers/u0420529.inf_amd64_94ad5a6c4d1a04e2 /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783]
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libcuda.so.1.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libcuda.so.1.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libcuda_loader.so as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libcuda_loader.so
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ptxjitcompiler.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ptxjitcompiler.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ml.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ml.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ml_loader.so as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ml_loader.so
INFO[0000] Selecting /usr/lib/wsl/lib/libdxcore.so as /usr/lib/wsl/lib/libdxcore.so
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvdxgdmal.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvdxgdmal.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvcubins.bin as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvcubins.bin
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvidia-smi as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvidia-smi
INFO[0000] Generated CDI spec with version 0.3.0

After this change, the below gets discovered. Notably, 13 additional libraries are discovered and added to the generated CDI spec: libcudadebugger.so.1 libnvcuvid.so.1 libnvdxdlkernels.so libnvidia-encode.so.1 libnvidia-gpucomp.so libnvidia-ngx.so.1 libnvidia-nvvm.so.4 libnvidia-nvvm70.so.4 libnvidia-opticalflow.so.1 libnvidia-tileiras.so libnvoptix_loader.so.1 libnvvamanager.so.1 libnvwgf2umx.so. 5 additional '.bin' files are discovered and all '.dll' files in the driver store are included as well.

$ ./nvidia-ctk cdi generate --feature-flag enable-explicit-driver-libraries=true --output ./nvidia.yaml
WARN[0000] Ignoring error in locating libnvidia-sandboxutils.so.1: libnvidia-sandboxutils.so.1: not found
libnvidia-sandboxutils.so.1: not found
WARN[0000] Failed to init nvsandboxutils: ERROR_LIBRARY_LOAD; ignoring
INFO[0000] Using /usr/lib/wsl/lib/libnvidia-ml.so.1
INFO[0000] Auto-detected mode as 'wsl'
INFO[0000] Selecting /dev/dxg as /dev/dxg
WARN[0000] Found multiple driver store paths: [/usr/lib/wsl/drivers/u0420529.inf_amd64_94ad5a6c4d1a04e2 /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783]
INFO[0000] Using WSL driver store path: /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783
INFO[0000] Selecting /usr/lib/wsl/lib/libdxcore.so as /usr/lib/wsl/lib/libdxcore.so
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libcuda.so.1.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libcuda.so.1.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libcuda_loader.so as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libcuda_loader.so
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ptxjitcompiler.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ptxjitcompiler.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ml.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ml.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ml_loader.so as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ml_loader.so
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvdxgdmal.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvdxgdmal.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvcubins.bin as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvcubins.bin
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvidia-smi as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvidia-smi
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libcudadebugger.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libcudadebugger.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvcuvid.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvcuvid.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvdxdlkernels.so as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvdxdlkernels.so
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-encode.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-encode.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-gpucomp.so as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-gpucomp.so
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ngx.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-ngx.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-nvvm.so.4 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-nvvm.so.4
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-nvvm70.so.4 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-nvvm70.so.4
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-opticalflow.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-opticalflow.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-tileiras.so as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvidia-tileiras.so
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvoptix_loader.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvoptix_loader.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvvamanager.so.1 as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvvamanager.so.1
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvwgf2umx.so as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/libnvwgf2umx.so
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/gsp_ga10x.bin as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/gsp_ga10x.bin
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/gsp_tu10x.bin as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/gsp_tu10x.bin
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvcoproc.bin as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvcoproc.bin
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvdrsdb.bin as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvdrsdb.bin
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvoptix.bin as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/nvoptix.bin
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/NvFBC.dll as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/NvFBC.dll
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/NvFBC64.dll as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/NvFBC64.dll
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/NvIFR.dll as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/NvIFR.dll
INFO[0000] Selecting /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/NvIFR64.dll as /usr/lib/wsl/drivers/nv_dispsi.inf_amd64_7cc7738d8e428783/NvIFR64.dll
. . . 
snip (there are many .dll files)
. . .
INFO[0000] Generated CDI spec with version 0.3.0

@cdesiniotis cdesiniotis requested review from elezar and tariq1890 June 15, 2026 23:02
@cdesiniotis cdesiniotis force-pushed the wsl2-discover-additional-libraries branch from fd3d76b to daef5be Compare June 15, 2026 23:05
@coveralls

coveralls commented Jun 15, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 27727799573

Coverage decreased (-0.2%) to 43.321%

Details

  • Coverage decreased (-0.2%) from the base build.
  • Patch coverage: 84 uncovered changes across 1 file (0 of 84 lines covered, 0.0%).
  • No coverage regressions found.

Uncovered Changes

File Changed Covered %
pkg/nvcdi/driver-wsl.go 84 0 0.0%

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 15085
Covered Lines: 6535
Line Coverage: 43.32%
Coverage Strength: 0.48 hits per line

💛 - Coveralls

@cdesiniotis cdesiniotis force-pushed the wsl2-discover-additional-libraries branch from daef5be to 14a952a Compare June 15, 2026 23:18
…path

We currently define a hardcoded list of required files
that must be discovered at the driver store. This commit
extends this logic to also search for additional .so, .bin,
and .dll files that may be present in the nvidia driver
store path.

fixes NVIDIA#1864

Signed-off-by: Christopher Desiniotis <cdesiniotis@nvidia.com>
@cdesiniotis cdesiniotis force-pushed the wsl2-discover-additional-libraries branch from 14a952a to fef1e4b Compare June 18, 2026 00:06
@cdesiniotis cdesiniotis changed the title [wsl2] discover all .so files at nvidia driver store path [wsl2] discover all .so, .bin, and .dll files at nvidia driver store path Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: nvv4l2decoder/nvv4l2h264enc SIGSEGV with nvidia-container-toolkit 1.19.1-1 on WSL2 (fix: downgrade to 1.18.0-1)

2 participants