Rubik Pi 3 Ubuntu Server 24.04 Vulkan fails with qcom-adreno1: loader interface v3 but ICD advertises Vulkan 1.2

Hi,

I am testing Vulkan on a Rubik Pi 3.

Environment

  • Board: Rubik Pi 3
  • OS: Ubuntu Server 24.04.4
  • Kernel: 6.8.0-1064-qcom
  • Date tested: March 24, 2026

Packages

  • qcom-adreno1: 1.838.2~1+repack1-0ubuntu3
  • firmware-qcom-hlosfw: 1.0.r00083.0+dsp103-0ubuntu1
  • qcom-iot-defaults: 1.15
  • libvulkan1: 1.3.275.0-1build1
  • mesa-vulkan-drivers: 25.2.8-0ubuntu0.24.04.1
  • vulkan-tools: 1.3.275.0+dfsg1-1

ICD manifest

  • /usr/share/vulkan/icd.d/adrenovk.json
  • library_path: /usr/lib/aarch64-linux-gnu/libvulkan_adreno.so.1
  • api_version: 1.2.140

Problem
When I run:

  • vulkaninfo --summary
    or even a minimal Vulkan program that only calls vkCreateInstance(),
    I get this error:

WARNING: [Loader Message] Code 0 : loader_scanned_icd_add: Driver /usr/lib/
aarch64-linux-gnu/libvulkan_adreno.so.1 supports Vulkan 1.2, but only supports
loader interface version 3. Interface version 5 or newer required to support
this version of Vulkan (Policy #LDP_DRIVER_7)

Unknown struct with type 0x2f provided to vkCreateInstance
ERROR at ./vulkaninfo/./vulkaninfo.h:460: vkCreateInstance failed with
ERROR_OUT_OF_HOST_MEMORY

What I already tried

  • apt update
  • apt full-upgrade
  • upgrading qcom-adreno1 to 1.838.2~1+repack1-0ubuntu3
  • upgrading firmware-qcom-hlosfw
  • forcing only the Adreno ICD with:
    VK_DRIVER_FILES=/usr/share/vulkan/icd.d/adrenovk.json vulkaninfo --summary
  • changing adrenovk.json api_version to 1.0.0 for testing
    → the loader warning changed, but vkCreateInstance still failed

Additional info

  • If I switch the board to Ubuntu Desktop and use freedreno/turnip, Vulkan
    works and the GPU is detected as:
    Turnip Adreno ™ 643
  • So the hardware itself seems fine.
  • The issue looks specific to Ubuntu Server + qcom-adreno1 Vulkan.

Questions

  1. Is Vulkan on Ubuntu Server + qcom-adreno1 currently expected to work on
    Rubik Pi 3?
  2. If yes, which exact image/package combination is known to work?
  3. Is this a known incompatibility between qcom-adreno1 and the Ubuntu 24.04
    Vulkan loader?
  4. Is there any recommended workaround or patch?

Thanks.

Please refer to the following documents for Vulkan-related issues.

Additional context

I noticed that the 2024 Qualcomm Linux Graphics Guide contained Vulkan-related documentation, but the 2025 version seems to have removed Vulkan references entirely.

At the same time, Vulkan appears to be non-functional on Ubuntu Server with the qcom-adreno1 driver (vkCreateInstance fails), while it works on Ubuntu Desktop using the freedreno/turnip driver.

This makes it unclear whether Vulkan on Ubuntu Server is currently supported or deprecated for this platform.

Could you clarify:

  • Is Vulkan officially supported on Ubuntu Server for Rubik Pi 3 with qcom-adreno1?
  • Or is Vulkan support currently limited to freedreno/turnip (Ubuntu Desktop)?

It seems the issue may be related to a mismatch between the Vulkan loader (1.3.275) and the qcom-adreno1 driver interface version (3 vs required 5).

Additionally, I would like to use QNN/SNPE on Ubuntu Server for NPU acceleration.

However, in this case Vulkan is not working with qcom-adreno1, while on Ubuntu Desktop Vulkan works but QNN/NPU support is not available.

This creates a split environment where GPU (Vulkan) and NPU (QNN) cannot be used together on the same system.

Is there any supported configuration where both Vulkan and QNN can be used simultaneously on Rubik Pi 3 ubuntu server?

You can try reflashing the latest Ubuntu Server image, then remove the qcom-adreno1 -related entries from the install_ppa_pkgs.sh script and run it again.

Thank you.

After trying everything, I found that Ubuntu Server did not support Vulkan compute well, and while Ubuntu Desktop did support Vulkan, the ONNX runtime lacked libraries for QNN. Development is a bit difficult, but it works well on all Qualcomm Linux OSs.

Okay, thank you for your response.

Did you check the release note?

As I understand, vulkan gpu driver is for desktop, not server.
For server, we use adreno as gpu driver.
You mentioned Qualcomm Linux, but there’s no server/desktop edition for that.

I guess the issue you have is related to this ticket:

Hi rosh,

I’d like to clarify my situation and share some findings that might help others in the community.

My goal was to develop a neural network model using Vulkan compute and compare its inference performance with other frameworks such as ncnn, ONNX Runtime and ExecuTorch.ensuring that all frameworks run on the GPU under the same conditions for a fair comparison.

Initially, I tried running everything on Ubuntu Server, but Vulkan was not working properly. From what I understand (and as you mentioned), Ubuntu Server seems not to support Vulkan in this setup.

I did check the release notes, and I saw the following:

“From Ubuntu Desktop to Ubuntu Server … remove libglvnd0 and libvulkan1”

However, the release notes also state that Vulkan 1.1 is enabled, so I assumed that reinstalling the Vulkan libraries (libvulkan1) would make it work again. Unfortunately, that did not resolve the issue.

After switching to Ubuntu Desktop, Vulkan worked correctly.

Next, I tried to run ONNX Runtime with the QNN Execution Provider (QNN EP) and use the GPU to measure inference time for the same model. However, this failed because libQnnGpu.so was not available in the Ubuntu Desktop environment.

Finally, I switched to Qualcomm Linux. Although I had to manually install several Debian packages, both:

Vulkan (compute)
ONNX Runtime with QNN (including GPU backend)

worked correctly. I also noticed that Qualcomm Linux supports Vulkan 1.2, which is newer than what is listed in the Ubuntu release notes.

So in summary:

Ubuntu Server: QNN works, but Vulkan is broken/unavailable
Ubuntu Desktop: Vulkan works, but QNN GPU backend (libQnnGpu.so) is missing
Qualcomm Linux: both Vulkan and QNN GPU work properly

This seems to indicate that the issue is not just about enabling Vulkan libraries, but rather differences in the underlying GPU/software stack between Ubuntu and Qualcomm Linux.

Additionally, I noticed your comment about the IB2C limitation on Freedreno.
From my understanding, this may explain why certain AI pipelines (including the QNN GPU backend) are not fully supported in the Ubuntu Desktop environment.

Let me know if my understanding is correct or if I’m missing something.

You can try it by “apt install qnn-tools snpe-tools”, in either desktop or server.

And for ONNX, there’s sample here:

I will try running apt install qnn-tools snpe-tools in the Ubuntu Desktop environment.

Also, in the ONNX | RUBIK Pi Documentation, I could only find tutorials for NPU and CPU, but there is no documentation or tutorial related to GPU usage.