-
Notifications
You must be signed in to change notification settings - Fork 395
Description
Windows build number:
10.0.26100.7171
Your Distribution version:
24.04
Your WSL versions:
🚨 WSLg GPU Acceleration Fails on Intel UHD 620 (WDDM 3.1) — dxgkrnl Ioctl Errors, Falls Back to llvmpipe
Summary
On a Lenovo X1 Carbon (Intel UHD 620, 8th-gen), WSLg fails to initialise GPU acceleration.
Mesa always falls back to llvmpipe.
WSL logs show repeated dxgkio_is_feature_enabled / dxgkio_query_adapter_info ioctl failures.
This appears to be a regression or unsupported path in recent Intel DCH drivers (WDDM 3.1).
All standard configuration paths (WSL2, WSLg, Mesa, environment, driver settings) appear valid.
This is reproducible on Ubuntu 24.04 under WSL2 with WSLg.
Environment
Hardware
- Laptop: Lenovo X1 Carbon (8th Gen)
- GPU: Intel® UHD Graphics 620 (Kaby Lake Refresh)
- CPU: Intel i5 (8th gen)
Windows
- Windows 11
- Driver Model: WDDM 3.1
- GPU Driver Version:
31.0.101.2135 - Direct3D DDI: 12
- DX12 Ultimate: Disabled
(This iGPU supports D3D12 but not DX12 Ultimate.)
WSL
WSL 2
WSLg enabled
Ubuntu 24.04
Mesa 25.x (default Ubuntu userspace)
GPU device in WSL
/dev/dxg exists, so GPU virtualization is at least partially exposed.
Symptoms
1. glxinfo always shows software rendering:
OpenGL renderer string: llvmpipe (LLVM 20.1.2, 256 bits)
Vendor: Mesa
Device: llvmpipe
2. WSLg compositor logs show repeated dxgkrnl ioctl failures:
misc dxg: dxgk: dxgkio_is_feature_enabled: Ioctl failed: -22
misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -22
misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -2
These appear every boot and whenever WSLg starts.
3. GPU acceleration is never enabled
- GLX + Kitty + WSLg apps fall back to CPU rendering
glmark2andglxgearsrun on llvmpipe regardless of configuration- No renderer string ever reports Intel, D3D12, or
Mesa D3D12
4. No misconfiguration detected
- No
LIBGL_ALWAYS_SOFTWARE,MESA_LOADER_DRIVER_OVERRIDE, etc. DISPLAYandWAYLAND_DISPLAYare WSLg-managed- No manual X11 overrides
- WSLg itself starts cleanly with no user-facing errors
Diagnostic Output
dxgkrnl errors
misc dxg: dxgk: dxgkio_is_feature_enabled: Ioctl failed: -22
misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -22
misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -22
misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -2
Mesa detection
OpenGL renderer string: llvmpipe (LLVM 20.1.2, 256 bits)
WSLg service status
wslg-session.service - Started
(no hardware-accel lines in logs)
Hypothesis
This may be one of:
-
A regression in Intel’s recent DCH drivers (WDDM 3.1)
dxgkrnl ioctl failures appear common on UHD 620 under newer drivers. -
Unsupported GPU virtualization path for older iGPUs
UHD 620 supports D3D12, but does not support DX12 Ultimate or certain D3D12 virtualization features used by WSLg. -
Compatibility gap between WSLg’s D3D12-based Gallium driver and older Intel architectures.
Why report this?
Even if UHD 620 eventually becomes officially “deprecated”, the failures here are silent.
Users receive:
- No warning
- No fallback notice
- No explanation why GPU acceleration is unavailable
And they see extremely confusing symptoms (llvmpipe only, ioctl error -22 spam).
A clearer error path or graceful fallback would greatly improve user experience.
Request
- Can the WSLg/WSL GPU team confirm whether Intel UHD 620 (WDDM 3.1, driver 31.0.101.2135) is officially supported, unsupported, or broken due to a recent driver regression?
- Are there recommended driver versions known to work with this iGPU in WSLg?
- Is the ioctl failure (
-22,-2) expected for this GPU family? - Should users of 8th-gen Intel chips expect GPU acceleration, or fall back to software?
If you'd like, I can attach:
- full
glxinfo - full
dxdiag - complete
journalctl -b - repro video
Just ask.
If you want me to tailor this even more (tone down, tone up, add logs inline), happy to refine it.
Steps to reproduce:
Steps to Reproduce
-
Fresh Windows 11 install with Intel driver
31.0.101.2135 -
Fresh WSL2 install of Ubuntu 24.04
-
Update WSL:
wsl --update wsl --shutdown
-
Install Mesa/X11 tools in Ubuntu:
sudo apt install mesa-utils glmark2
-
Test:
glxinfo | grep -i "renderer"
-
Check logs:
sudo journalctl -b | grep -Ei 'dxg|d3d12'
→ GPU never exposed; llvmpipe always selected.
WSL logs:
No response
WSL dumps:
No response
Expected behavior:
Expected behaviour
WSLg should expose the Intel UHD 620 via the D3D12 → dxgkrnl → Mesa Gallium driver stack, enabling hardware-accelerated OpenGL / GLES for Linux GUI apps.
glxinfo should report something similar to:
Device: Mesa Intel(R) UHD Graphics 620 (KBL GT2)
or a D3D12-backed Mesa renderer.
Actual behavior:
Actual behaviour
- dxgkrnl ioctl calls fail on startup
- WSLg silently falls back to software rendering
- Mesa selects llvmpipe
- No GPU acceleration is available to Linux GUI apps