WSLg fails to detect both Intel iGPU and NVIDIA RTX 5060 on Lenovo Yoga Pro 16 (2025)
Windows Version
10.0.26200.7171
WSL Version
2.6.1.0
Are you using WSL 1 or WSL 2?
- [x] WSL 2
- [ ] WSL 1
Kernel Version
6.6.87
Distro Version
Ubuntu24.04
Other Software
Description
WSLg fails to detect and utilize both the integrated Intel GPU and discrete NVIDIA RTX 5060 on my Lenovo Yoga Pro 16 (2025). Mesa always falls back to llvmpipe, and all GPU-accelerated applications (Chrome, VLC, Zutty) crash unless GPU acceleration is explicitly disabled. This issue is more severe than #1394, which only affects Intel iGPU. In my case, neither GPU is usable, despite /dev/dxg and d3d12_dri.so being present
This machine supports Advanced Optimus, but WSLg still fails to detect the discrete GPU. I download and install WSL from WSL GitHub release page,I can not find WSL from Microsoft Store System Info
-
Device: Lenovo Yoga Pro 16 (2025)
-
CPU: Intel Ultra 9 285H
-
iGPU: Intel Xe (Ultra graphics)
-
dGPU: NVIDIA RTX 5060
-
WSL Version: 2.6.1.0
-
Kernel Version: 6.6.87.2-1
-
WSLg Version: 1.0.66
-
MSRDC Version: 1.2.6353
-
Direct3D Version: 1.611.1-81528511
-
DXCore Version: 10.0.26100.1-240331-1435.ge-release
-
Windows Version: 10.0.26200.7171
-
Distro: Ubuntu 24.04
-
Mesa: Includes d3d12_dri.so
-
Intel Graphics Driver: 32.0.101.6737
-
Intel Graphics Software Version: 25.40.1953.2
-
NVIDIA Driver: Game Ready 581.80 (Nov 4, 2025) Symptoms
-
Mesa always reports llvmpipe as renderer:
bash glxinfo | grep "OpenGL renderer" vulkaninfo | grep deviceName -
/dev/dxg exists, but dmesg shows repeated ioctl failures:
dxgkioqueryadapter_info: Ioctl failed: -22 -
Chrome, VLC, Zutty crash unless GPU acceleration is disabled.
-
Windows always shows "HDR display ready" when switching to dGPU; brightness control logic is unstable.
-
No way to force WSLg to use dGPU; environment variable MESAD3D12DEFAULT_ADAPTER=1 has no effect.
Repro Steps
- On Lenovo Yoga Pro 16 (2025) with Intel Ultra 9 285H + NVIDIA RTX 5060, install latest Intel DCH driver (32.0.101.6737) and NVIDIA Game Ready driver (581.80).
- Ensure WSL is up to date:
powershell wsl --version(WSL 2.6.1.0, Kernel 6.6.87.2-1, WSLg 1.0.66). - Launch Ubuntu 24.04 under WSL.
- Run:
bash glxinfo | grep "OpenGL renderer" vulkaninfo | grep deviceName
→ Renderer shows llvmpipe. - Run:
bash dmesg | grep dxg
→ Logs show repeated dxgkioqueryadapter_info: Ioctl failed: -22. - Try launching GPU-accelerated apps (Chrome, VLC, Zutty) → they crash unless GPU acceleration is disabled.
- Attempt to force dGPU via Windows graphics settings or environment variable:
bash export MESAD3D12DEFAULT_ADAPTER=1
→ No effect, still llvmpipe.
Expected Behavior
- WSLg should correctly enumerate both Intel iGPU and NVIDIA RTX 5060 via DXG bridge.
- Mesa should report the actual GPU renderer (e.g., Intel(R) Xe Graphics or NVIDIA RTX 5060) instead of llvmpipe.
- GPU-accelerated applications (Chrome, VLC, Zutty) should run without crashing, using hardware acceleration.
- Environment variable MESAD3D12DEFAULT_ADAPTER=1 should allow selecting the discrete GPU.
- Switching to dGPU in Windows should not break brightness/HDR logic, and WSLg should still detect the GPU.
Actual Behavior
Actual behavior
- WSLg fails to detect both Intel iGPU and NVIDIA RTX 5060.
- Mesa always falls back to llvmpipe as renderer.
- /dev/dxg exists, but repeated ioctl failures occur:
dxgkioqueryadapter_info: Ioctl failed: -22 - GPU-accelerated applications (Chrome, VLC, Zutty) crash unless GPU acceleration is disabled.
- Forcing WSL to use dGPU via Windows graphics settings or MESAD3D12DEFAULT_ADAPTER=1 has no effect.
- Windows shows “HDR display ready” when switching to dGPU, brightness control logic becomes unstable.
- No way to bypass iGPU and directly use dGPU in WSLg.