You are not logged in.

#1 2025-11-01 11:11:34

SillyMouse
Member
Registered: 2025-11-01
Posts: 3

Vulkan issues with Arch Linux LXC Container in Crostini (ChromeOS)

I have succesfully installed Arch Linux on a Chromebook Plus (with Intel CPU, x86_64) inside Crostini (using this guide). I want to play games in here so I installed mesa-git and lib32-mesa-git from the AUR for the up-to-date Venus drivers that are required for Vulkan (as showed here and here). I also put this inside /etc/environment:

VK_ICD_FILENAMES=VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/virtio_icd.i686.json:/usr/share/vulkan/icd.d/virtio_icd.x86_64.json

The only issue I am having is when I run vulkaninfo --summary it gives me this error:

ERROR: [Loader Message] Code 0 : loader_get_json: Failed to open JSON file VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/virtio_icd.i686.json

The /usr/share/vulkan/icd.d/virtio_icd.x86_64.json one does seem to work though.

Is there any way to fix this?

Last edited by SillyMouse (2025-11-01 11:18:29)

Offline

#2 2025-11-01 12:05:49

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,482

Re: Vulkan issues with Arch Linux LXC Container in Crostini (ChromeOS)

https://chromeunboxed.com/how-to-enable … -crostini/ is from 2021 , https://github.com/judjdigj/Vulkan_in_Crostini is from 2022 .

Mesa was then at 21.x and 22.x , current version is 25.2 / 25.3 .
It's very likely the functionality you need is in stable mesa .

Remove / comment the VK_ICD_FILENAMES setting.
Install vulkan-mesa-device-select (add lib32-vulkan-mesa-device-select if needed) and post the output of

$ MESA_VK_DEVICE_SELECT=list vulkaninfo

See https://docs.mesa3d.org/envvars.html#vu … -variables
Once it's clear basic vulkan works as expected, we can look at venus specific stuff .


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#3 2025-11-01 12:59:16

SillyMouse
Member
Registered: 2025-11-01
Posts: 3

Re: Vulkan issues with Arch Linux LXC Container in Crostini (ChromeOS)

Thanks for the reply, I hadn't considered that the Venus driver might already be in the stable Arch repo.

When trying to install vulkan-mesa-device-select I got many dependency errors, so I simply reinstalled the LXC Container.

Right now I have installed: vulkan-mesa-device-select, lib32-vulkan-mesa-device-select, mesa, lib32-mesa, vulkan-virtio, lib32-vulkan-virtio, vulkan-swrast, lib32-swrast, vulkan-intel, lib32-vulkan-intel.

After a reboot I ran MESA_VK_DEVICE_SELECT=list vulkaninfo, and the Venus driver is indeed available:

selectable devices:
  GPU 0: 8086:a7a9 "Virtio-GPU Venus (Intel(R) Graphics (RPL-U))" integrated GPU 0000:00:02.0
  GPU 1: 10005:0 "llvmpipe (LLVM 21.1.4, 256 bits)" CPU 0000:00:00.0

So, problem solved!

However (this might be a little off topic), when I try to run an game inside Lutris (with Proton-GE), I keep getting the error "err:   Failed to initialize DXVK." and am unable to launch any games. I suppose this also has something to do with the drivers, but don't really know what the issue is and where to go from here (and yes, I did search online already).

Offline

#4 2025-11-02 12:02:03

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,482

Re: Vulkan issues with Arch Linux LXC Container in Crostini (ChromeOS)

That will be much harder to troubleshoot, try running a game with plain wine started from terminal.

See https://wiki.archlinux.org/title/Wine#DXVK for games using directx 8 to 11 and https://wiki.archlinux.org/title/Wine#VKD3D-Proton for games using directx12 .

If that works, the issue may be in lutris or proton-ge .


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#5 2025-11-02 13:12:58

SillyMouse
Member
Registered: 2025-11-01
Posts: 3

Re: Vulkan issues with Arch Linux LXC Container in Crostini (ChromeOS)

I did some testing and found some things out:

While trying to run vkcube with the following commands

VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/virtio_icd.x86_64.json vkcube
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/virtio_icd.i686.json vkcube

only the x86_64 one appears to work. The i686 one got this error:

vkEnumerateInstanceExtensionProperties failed to find the VK_KHR_surface instance extension.

This indicates that no compatible Vulkan installable client driver (ICD) is present or that the system is not configured to present to the screen.

The same thing happens while trying to run vulkaninfo --summary with the i686 one:

ERROR: [Loader Message] Code 0 : vkCreateInstance: Found no drivers!
Cannot create Vulkan instance.
This problem is often caused by a faulty installation of the Vulkan driver or attempting to use a GPU that does not support Vulkan.
ERROR at /usr/src/debug/vulkan-tools/Vulkan-Tools/vulkaninfo/./vulkaninfo.h:573:vkCreateInstance failed with ERROR_INCOMPATIBLE_DRIVER

So, just like the original post I made, it appears that lib32-mesa or lib32-vulkan-virtio or some configuration file doesn't work.

The games that I tried inside Lutris (with Proton-GE) where Pizza Tower (an OpenGL game) and Animal Well (an DirectX12 game), neither of which where able to run due to DXVK errors. When I start Lutris with the command

VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.x86_64.json lutris

(with I believe uses software rendering), I am enable to run both games without any errors (albeit with very poor performance).

Anyway, coming back to your comment Lone_Wolf, I tried to run both games with WINE after installing VKD3D and DXVK with Winetricks, but both failed to run (Pizza Tower does work when forcing OpenGL though). I also got this while launching Pizza Tower:

Found device: Virtio-GPU Venus (Intel(R) Graphics (RPL-U)) (venus 25.2.6)
info:    Skipping: Device does not support 256 of push data
info:  Found device: llvmpipe (LLVM 21.1.4, 256 bits) (llvmpipe 25.2.6)
info:    Skipping: Software driver
warn:  DXVK: No adapters found. Please check your device filter settings
warn:  and Vulkan drivers. A Vulkan 1.3 capable setup is required.
err:   Failed to initialize DXVK.

I am kinda ready to give up to be honest. Maybe I will just wait for Debian Trixie to release (Google's version that is) with hopefully better support for the Venus driver or them maybe completely replacing LXC Containers with Baguette. I really wanted to avoid Borealis because of it's limitations and discontinuation, but it looks like I don't really have a choice.

Offline

#6 2025-11-03 16:44:11

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,482

Re: Vulkan issues with Arch Linux LXC Container in Crostini (ChromeOS)

Please start considering using VK_ICD_FILENAMES as a last resort if nothing else works .

Many applications (especially windows ones) have their own code to select a vulkan device and clash with the use of VK_ICD_FILENAMES .
VK_ICD_FILENAMES is also very limited and can't distinguish between multiple devices using the same driver.

MESA_VK_DEVICE_SELECT interacts directly with the low level vulkan driver to determine which devices are shown to the application and in which order.
Whether the low level driver is 8-bit , 16-bit , 32-bit , 64-bit, arm , risc-v  or some future standard doesn't matter.

execute in terminal

export MESA_VK_DEVICE_SELECT_FORCE_DEFAULT_DEVICE=1

everything using vulkan started from that terminal after that export will only see the default vulkan device, in your case the venus driver.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

Board footer

Powered by FluxBB