microsoft / microsoft/WSL

Vulkan does not recognize the NVIDIA GPU. The vulkaninfo command displays a warning: "WARNING: lavapipe is not a conformant vulkan implementation, for testing purposes only." Meanwhile, the nvidia_icd.json file is missing from the \usr\share\vulkan\icd.d directory.

Open
#12,313 8 comments 0 reactions 0 assignees View on GitHub
GPU question
Dominant language
C++
Stars
33.7k
Forks
1.8k
Avg merge
3d 17h
Merged PRs (30d)
116

Description

### Windows Version

Microsoft Windows [Version10.0.22631.4460]

### WSL Version

2.3.26.0

### Are you using WSL 1 or WSL 2?

- [x] WSL 2
- [ ] WSL 1

### Kernel Version

Linux version 5.15.167.4-microsoft-standard-WSL2 (root@f9c826d3017f) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37) #1 SMP Tue Nov 5 00:21:55 UTC 2024

### Distro Version

Ubuntu 20.04

### Other Software

nvidia-smi:
`+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.72 Driver Version: 566.14 CUDA Version: 12.7 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 4070 Laptop On | 00000000:01:00.0 On | N/A |
| N/A 45C P8 3W / 140W | 1214MiB / 8188MiB | 2% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+`

nvcc -V:
`nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Mon_Apr__3_17:16:06_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105
Build cuda_12.1.r12.1/compiler.32688072_0`

### Repro Steps

nvidia-smi and cuda correctly recognize the nvidia GPU, but when running the vulkaninfo command, a warning 'WARNING: lavapipe is not a conformant Vulkan implementation, for testing purposes only' appears. Only llvmpipe is displayed instead of my nvidia 4070 laptop. Furthermore, I noticed that the nvidia_icd.json file is missing from the /usr/share/vulkan/icd.d directory.

=====================================================================

(sds) yukon@Yukon-PC:~/downloads$ vulkaninfo
WARNING: lavapipe is not a conformant vulkan implementation, testing use only.
==========
VULKANINFO
==========

Vulkan Instance Version: 1.2.131

Instance Extensions: count = 18
====================
VK_EXT_acquire_xlib_display : extension revision 1
VK_EXT_debug_report : extension revision 10
VK_EXT_debug_utils : extension revision 1
VK_EXT_direct_mode_display : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_surface_protected_capabilities : extension revision 1
VK_KHR_wayland_surface : extension revision 6
VK_KHR_xcb_surface : extension revision 6
VK_KHR_xlib_surface : extension revision 6

Layers: count = 3
=======
VK_LAYER_LUNARG_standard_validation (LunarG Standard Validation Layer) Vulkan version 1.0.131, layer version 1:
Layer Extensions: count = 0
Devices: count = 1
GPU id : 0 (llvmpipe (LLVM 12.0.0, 256 bits))
Layer-Device Extensions: count = 0

VK_LAYER_MESA_device_select (Linux device selection layer) Vulkan version 1.2.73, layer version 1:
Layer Extensions: count = 0
Devices: count = 1
GPU id : 0 (llvmpipe (LLVM 12.0.0, 256 bits))
Layer-Device Extensions: count = 0

VK_LAYER_MESA_overlay (Mesa Overlay layer) Vulkan version 1.1.73, layer version 1:
Layer Extensions: count = 0
Devices: count = 1
GPU id : 0 (llvmpipe (LLVM 12.0.0, 256 bits))
Layer-Device Extensions: count = 0
...

=====================================================================

(sds) yukon@Yukon-PC:~/downloads$ ls /usr/share/vulkan/icd.d/
intel_icd.x86_64.json lvp_icd.x86_64.json radeon_icd.x86_64.json

### Expected Behavior

I've tried numerous methods over the past couple of days, but they all have issues. Could you please guide me to the most accurate approach? I appreciate your help!

### Actual Behavior

nvidia-smi and cuda correctly recognize the nvidia GPU, but when running the vulkaninfo command, a warning 'WARNING: lavapipe is not a conformant Vulkan implementation, for testing purposes only' appears. Only llvmpipe is displayed instead of my nvidia 4070 laptop. Furthermore, I noticed that the nvidia_icd.json file is missing from the /usr/share/vulkan/icd.d directory.

### Diagnostic Logs

_No response_

Contributor guide

Open the contributing guide

Research direction

The report provides no repository files or tests to edit. Start by reproducing the issue with nvidia-smi, nvcc -V, vulkaninfo, and ls /usr/share/vulkan/icd.d/; done means determining why the NVIDIA ICD is absent and confirming that vulkaninfo lists the NVIDIA GPU rather than only llvmpipe.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, ubuntu
Domain
computer-graphics, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.