Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance, and optimization
22014 Discussions

Intel integrated arc igpu in Core Ultra 7 not working properly with WLS2

jaruizra
Novice
13,724 Views

Hello, 

I have recently installed wsl2 in my new laptop with intel Ultra 7 155h cpu. It has the new arc igpu graphics and I dont seem to get it to work with wsl2. 

 

In my pc with amd and nvidia gpu all works perfectly in wsl2. However in the lapto the gpu acceleration in wsl2 is not working. I can tell its the gpu because if I set in the /etc/ws.conf file:

[system-distro-env]
LIBGL_ALWAYS_SOFTWARE=1
 
that disables the gpu acceleration using only the cpu for rendering all apps that use OpenGL for rendering suddenly work.
 
I am trying to make glxgears to work properly. 
- Install wsl2
- Install x11-apps
- Install mesa-utils
 
 

     glxinfo | grep -i "OpenGL renderer"
OpenGL renderer string: D3D12 (Intel(R) Arc(TM) Graphics)

 

   glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Microsoft Corporation (0xffffffff)
Device: D3D12 (Intel(R) Arc(TM) Graphics) (0xffffffff)
Version: 23.2.1
Accelerated: yes
Video memory: 16305MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.2
Max compat profile version: 4.2
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.1
OpenGL vendor string: Microsoft Corporation
OpenGL renderer string: D3D12 (Intel(R) Arc(TM) Graphics)
OpenGL core profile version string: 4.2 (Core Profile) Mesa 23.2.1-1ubuntu3.1~22.04.2
OpenGL core profile shading language version string: 4.20
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.2 (Compatibility Profile) Mesa 23.2.1-1ubuntu3.1~22.04.2
OpenGL shading language version string: 4.20
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 23.2.1-1ubuntu3.1~22.04.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

 

     lspci -v |grep -A8 VGA
lspci: Unable to load libkmod resources: error -2
     

     lspci -nnk | grep -A 3 VGA | grep -E "VGA|driver"
lspci: Unable to load libkmod resources: error -2

 

     lspci -k
0483:00:00.0 3D controller: Microsoft Corporation Device 008e
Kernel driver in use: dxgkrnl
lspci: Unable to load libkmod resources: error -2
0922:00:00.0 3D controller: Microsoft Corporation Device 008a
Kernel driver in use: dxgkrnl
0eb3:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio console (rev 01)
Subsystem: Red Hat, Inc. Virtio console
Kernel driver in use: virtio-pci
5142:00:00.0 System peripheral: Red Hat, Inc. Virtio file system (rev 01)
Subsystem: Red Hat, Inc. Virtio file system
Kernel driver in use: virtio-pci

 

     inxi -G
Graphics:
Device-1: Microsoft driver: dxgkrnl v: 2.0.2
Device-2: Microsoft driver: dxgkrnl v: 2.0.2
Display: wayland server: Microsoft Corporation X.org driver:
gpu: dxgkrnl,dxgkrnl resolution: 2560x1600~60Hz
OpenGL: renderer: D3D12 (Intel Arc Graphics)
v: 4.2 Mesa 23.2.1-1ubuntu3.1~22.04.2

 

     lspci -k | grep -EA3 'VGA|3D|Display'
lspci: Unable to load libkmod resources: error -2
0483:00:00.0 3D controller: Microsoft Corporation Device 008e
Kernel driver in use: dxgkrnl
0922:00:00.0 3D controller: Microsoft Corporation Device 008a
Kernel driver in use: dxgkrnl
0eb3:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio console (rev 01)
Subsystem: Red Hat, Inc. Virtio console

 

 

0 Kudos
17 Replies
JayB_Intel
Employee
13,658 Views

Hello jaruizra,


Thank you for posting in the Intel® Communities Support.


Please be advised that WSL 2 is not part of the supported OS for both AI software frameworks(CPU and GPU). Please try installing the supported OS to achieve desired results. However, rest assured will be looking into your concern from our end and conduct further investigation and work on a solution for you.


Please download and install the Intel SSU for a quick system scan and send us the .txt file for diagnosis and troubleshooting.


For Windows: https://www.intel.com/content/www/us/en/download/18377/25293/intel-system-support-utility-for-windows.html?v=t


For Linux: https://www.intel.com/content/www/us/en/download/18895/26735/intel-system-support-utility-for-the-linux-operating-system.html



Additionally, kindly refer to our articles regarding Intel graphics and WSL 2:


Graphics Virtualization Technologies Support for Each Intel® Graphics Family: https://www.intel.com/content/www/us/en/support/articles/000093216/graphics/processor-graphics.html

 

Intel® Arc™ Graphics Are Not Detected under WSL2: https://www.intel.com/content/www/us/en/support/articles/000094038/graphics.html




Best regards,

Jay B.



jaruizra
Novice
13,646 Views

Hello,

 

In the articles you pass about intel arc not showing under wsl2 is not related to this case, because I am using core Ultra arc integrated gpu that has graphics virtualization technology. The intel arc that doesnt support graphics virtualization are the dedicated gpu. Mine is the igpu in the Core Ultra 7.

 

Here is the intel SSU system scan output.

(Virus scan in progress ...)
0 Kudos
JayB_Intel
Employee
13,619 Views

Hello jaruizra,


Since this is an OEM (Branded Laptop) original equipment manufacturer device, please take into consideration that our support may be limited since we are not familiar with the technology, settings, custom drivers, and features that the OEM has designed and installed your system. Your device manufacturer may have altered features, incorporated customizations, or made other changes to some components for better compatibility with your system.


As mentioned, we will do further research and investigation on this matter and post the response on this thread once available. 


Best regards,

Jay B.



JayB_Intel
Employee
13,547 Views

Hello jaruizra,


I hope you are doing well. May we confirm which Linux distribution are you using for WSL? Please be advised that Intel client graphics only officially support Ubuntu.


Our recommendation is to use Ubuntu 23.04 or newer, since it includes our GFX drivers with the OS. If you are using an older version of Ubuntu you would need to install the graphics driver manually. You may refer to the instructions from the guide below:


https://dgpu-docs.intel.com/driver/client/overview.html



Best regards,

Jay B.


jaruizra
Novice
13,502 Views

Hello,

 

I am running Ubuntu 22.04 with kernel linux-msft-wsl-5.15.146.1. However I have also tried Ubuntu 22.04 with the kernel from microsoft linux-msft-wsl-6.1.21.2. I have also tried to download Ubuntu 23.10 from the Ubuntu cloud WSL images: https://cloud-images.ubuntu.com/wsl/mantic/current/ubuntu-mantic-wsl-amd64-wsl.rootfs.tar.gz

 

However I have not manage to make it work. I am able to see with "glxinfo -B" that its using intel ARC graphics. However when running glxgears it shows a black screen and the gpu is not used by the VM in Task Manager. 

 

In all cases I installed fresh and installed, updated, upgraded, rebooted, "sudo apt install mesa utils" && "sudo apt install glxgears" and rebooted. Then tried to "glxinfo -B" and the "glxgears". It didn't work in any of those.

 

Then I tried to do the client install in the docs of intel you provided and did not work in any. It also tried to load a driver that couldn't be called and started  using llvmpipe, so that all gpu rendering was made by CPU only:

 

glxinfo | grep "OpenGL renderer"

DRI3 not available failed to load driver: zink OpenGL renderer string: llvmpipe (LLVM 15.0.7, 256 bits)

 

It seems that workaround doesn't work for now in wsl2.


Any new ideas? Or comments?

Thanks.

0 Kudos
Stefan3D
Honored Contributor II
13,484 Views

You are using MESA DZN drivers, which are way older than your MTL.

 

Get bleeding edge drivers from:

https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers

 

Also: MESA zink drivers don't work under WSL in general.

jaruizra
Novice
13,457 Views

Hello, 

 

Im a little lost, from this PPA, what do you recommend me to install? 

I suppose I just need to add the PPA and then run as it says "sudo apt-get install mesa-vdpau-drivers" is there something else I need to install? And also what driver should I use/install? I suppose I can change it with "Set MESA_LOADER_DRIVER_OVERRIDE=X"? I ask this because you said MESA zink drivers don't work on WSL, so from the PPA which driver should I install?

 

Also why is that from intel own page I am using old MESA DZN drivers and not the latest ones? That seems weird...

 

Thanks in advance.

0 Kudos
Stefan3D
Honored Contributor II
13,454 Views

The install command is

sudo add-apt-repository ppa:oibaf/graphics-drivers ; sudo apt-get update -y

 

After installation DZN should be default, if not:

export GALLIUM_DRIVER=d3d12

 

Since you have an Optimus laptop, switch your GPU's manually before using OpenGL (Apps using Vulkan detect all GPU's automatically)
For example:

export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA ; cd /mnt/c/wsl/glcapsviewer_1_2_linux64/ ; ./glcapsviewer

export MESA_D3D12_DEFAULT_ADAPTER_NAME=INTEL ; cd /mnt/c/wsl/glcapsviewer_1_2_linux64/ ; ./glcapsviewer

 

 

 

 

jaruizra
Novice
13,426 Views

Hello,

 

I have run into several issues. In a brand new 22.04 install, I what you told me only those commands and also run "export MESA_D3D12_DEFAULT_ADAPTER_NAME=INTEL ".

 

First issue: seems like that wsl folder in the C drive is not real

rura@asusg16:~$ export MESA_D3D12_DEFAULT_ADAPTER_NAME=INTEL ; cd /mnt/c/wsl/glcapsviewer_1_2_linux64/ ; ./glcapsviewer
-bash: cd: /mnt/c/wsl/glcapsviewer_1_2_linux64/: No such file or directory
-bash: ./glcapsviewer: No such file or directoryç

 

When running glxinfo -B outputs:

rura@asusg16:~$ glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Microsoft Corporation (0xffffffff)
Device: D3D12 (Intel(R) Arc(TM) Graphics) (0xffffffff)
Version: -1.1.8
Accelerated: yes
Video memory: 16305MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.1
OpenGL vendor string: Microsoft Corporation
OpenGL renderer string: D3D12 (Intel(R) Arc(TM) Graphics)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.1~git2403060600.2feb3c~oibaf~j (git-2feb3c6 2024-03-06 jammy-oibaf-ppa)
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.1~git2403060600.2feb3c~oibaf~j (git-2feb3c6 2024-03-06 jammy-oi
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 24.1~git2403060600.2feb3c~oibaf~j (git-2feb3c6 2024-03-06 jammy-oibaf-ppa)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

 

And finally glxgears doesn't work, it outputs a blank screen. However sometimes If I do "export GALLIUM_DRIVER=d3d12" and then run glxgears I am able to make it run. However is like 1 time in 10 tries. 

 

Also, should I do "sudo apt install mesa-utils" before or after "sudo add-apt-repository ppa:oibaf/graphics-drivers ; sudo apt-get update -y" I would assume it doesn't matter, right?

 

Thanks. Feels like im

Captura de pantalla 2024-03-06 220344.png

getting closer to actually being able to use gpu acceleration 🙂

0 Kudos
Stefan3D
Honored Contributor II
13,422 Views

"First issue: seems like that wsl folder in the C drive is not real"

 

It was just an example that i created on my PC.

Actually i made a folder under Windows - C:\WSL\

This folder appears as /mnt/c/wsl/ under WSL

In that folder i store unpacked appimages i want to use before i start WSL

 

I'm not familiar with mesa-utils, but as you said it should not matter.

 

btw are there any particular OpenGL powered apps you want to use under WSL?

 

jaruizra
Novice
13,414 Views

Hello,

 

I want to use gazebo simulator, Im using it for ros2 programming to test the projects on a simulated robot before I run it on real live robots. Also for some ros2_cv computer vision programs.

 

I can run it with llvmpipe so that all is run on cpu but it makes my simulation go to 4fps... lol.

 

0 Kudos
Stefan3D
Honored Contributor II
13,392 Views

So what happens if you activate your dGPU

export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA

and then start that Gazebo simulator?

0 Kudos
jaruizra
Novice
13,383 Views
Yes, it works and I can run gazebo and every gpu app.

However it could be nice to not have to enable the gpu while im on battery, because I tend to disable the dgpu on battery.

However thanks a lot, I didnt know you could choose the gpu you want to use on wsl2. That is awesome 🙂
0 Kudos
JayB_Intel
Employee
13,304 Views

Hello jaruizra,


I can see that a solution has been found to address the issue and we appreciate you sharing your findings with us. We acknowledge that it may be a limitation on the CPU side, however since the ASUS ROG Zephyrus G16 GU605MI is an OEM device it is best to coordinate with ASUS Support regarding this issue as well. Since a solution has been found, we will proceed in closing this inquiry. Please be advised that this thread will no longer be monitored moving forward.



Best regards,

Jay B.


0 Kudos
jaruizra
Novice
13,220 Views

Hello,

 

I have seem to find not a solution but a workaround. The main issue is still there that Intel Core Ultra arc igpu seem to not be able to work properly with WSL2. 

 

I have seemed to be able to make it work sometimes by installing the drivers that Stefan3D suggested. So I can assume first that arc integrated graphics are compatible with WLS2, however software is not working as expected from Intel.

 

I would like to have this issue open, as the problem has not been resolved yet.

 

Thanks.

0 Kudos
Stefan3D
Honored Contributor II
13,210 Views

Just my thought.

Since llvmpipe is working, it cannot be a "CPU limitation"

 

Unfortunately i have no modern Intel rig handy;  i can dust my old Broadwell and test some things, but that will take a bit...

jaruizra
Novice
13,209 Views

Hello,

 

thanks but the problem I have is with integrated graphics, mine have integrated arc graphics in the cpu. The nvidia dgpu seem to work fine. And CPU acceleration too.

 

And don't bother to test that, because the issue is with new hardware, MTL is a brand new architecture that uses arc igpu for the first time so I would assume conclusions being made in that platform will not translate to my case. But thanks. 🙂

 

However the arc igpu doesn't work, so yeah cpu is no issue but the igpu is. And because that is intel they should try to make it work.

 

Most weird thing is that I managed to get the igpu working in 1 out 10 tries lol.

 

Reply