Enabling Nvidia support for Vulkan on Ubuntu 22.04 through WSL2

Hello, I’m attempting to enable Vulkan support for my RTX 4090 on Ubuntu 22.04 through Windows Subsystem for Linux 2 (WSL2). I was able to get CUDA running on the GPU, and nvidia-smi lists the device correctly, but vulkaninfo --summary lists llvmpipe (CPU based) as the only Vulkan device available. I’m running Windows 11.

You might need an updated mesa, please see this:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/6318#note_1459269
don’t install the nvidia driver, there’s no real nvidia gpu available in WSL2.

Thanks! I will try it out.

I don’t know exactly but I guess using the kisak ppa for latest mesa and the liquorix ppa for latest kernel (for updated microsoft virtual graphics driver) might be worth a try
https://launchpad.net/~kisak/+archive/ubuntu/kisak-mesa/+packages
https://launchpad.net/~damentz/+archive/ubuntu/liquorix

Ok, I built the driver, it works, but it’s missing the ray tracing extensions, which were precisely what I wanted to try out. I guess it’s early in development.

From vulkaninfo:

Presentable Surfaces:

GPU id : 0 (Microsoft Direct3D12 (NVIDIA GeForce RTX 4090)):

Device Extensions: count = 6

    VK_EXT_vertex_attribute_divisor   : extension revision 3
    VK_KHR_descriptor_update_template : extension revision 1
    VK_KHR_draw_indirect_count        : extension revision 1
    VK_KHR_driver_properties          : extension revision 1
    VK_KHR_shader_draw_parameters     : extension revision 1
    VK_KHR_swapchain                  : extension revision 70

Instance Extensions: count = 7

    VK_EXT_debug_report                    : extension revision 10
    VK_EXT_debug_utils                     : extension revision 2
    VK_KHR_get_physical_device_properties2 : extension revision 2
    VK_KHR_surface                         : extension revision 25
    VK_KHR_wayland_surface                 : extension revision 6
    VK_KHR_xcb_surface                     : extension revision 6
    VK_KHR_xlib_surface                    : extension revision 6

The extension support is very poor at the moment, but at least it’s something. Unfortunately I can’t try ray tracing for now. It’ll have to be on Windows for now.

Ok, I built the driver and it works, unfortunately the ray tracing extensions aren’t supported.

GPU id : 0 (Microsoft Direct3D12 (NVIDIA GeForce RTX 4090)):

Device Extensions: count = 6

    VK_EXT_vertex_attribute_divisor   : extension revision 3
    VK_KHR_descriptor_update_template : extension revision 1
    VK_KHR_draw_indirect_count        : extension revision 1
    VK_KHR_driver_properties          : extension revision 1
    VK_KHR_shader_draw_parameters     : extension revision 1
    VK_KHR_swapchain                  : extension revision 70

Instance Extensions: count = 7

    VK_EXT_debug_report                    : extension revision 10
    VK_EXT_debug_utils                     : extension revision 2
    VK_KHR_get_physical_device_properties2 : extension revision 2
    VK_KHR_surface                         : extension revision 25
    VK_KHR_wayland_surface                 : extension revision 6
    VK_KHR_xcb_surface                     : extension revision 6
    VK_KHR_xlib_surface                    : extension revision 6

It’ll have to be Windows for now.

What makes the liquorix kernel different? Would I use the same Dozen Vulkan driver with it?

It’s newer (6.2 vs. 5.15 in 22.04)

Yes.