Vulkan problems on radeon 680m (amdgpu)

I have a problem where I cannot run vulkan on my AMD iGPU

I tried to run some DXVK games, but i just got 'dxvk::DxvkError'

I tried to run vkcube and at first i thought it wasn’t running, but then 3 whole minutes later it started up,

I tried to run vulkaninfo and that’s a similar story, took about 5 minutes before it spat out it’s output (everything looks fine in there as far as I can tell too)

I tried using amdvlk instead of vulkan-radeon and i got this error (still took 3 minutes to generate the error though):

Cannot find a compatible Vulkan installable client driver (ICD).

With vulkaninfo in the same scenario (still took 5 minutes to generate):

$ vulkaninfo
ERROR: [Loader Message] Code 0 : loader_scanned_icd_add: Could not get 'vkCreateInstance' via 'vk_icdGetInstanceProcAddr' for ICD libGLX_nvidia.so.0
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 0.  Skipping ICD.
ERROR: [Loader Message] Code 0 : terminator_CreateInstance: 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 /build/vulkan-tools/src/Vulkan-Tools-1.3.226/vulkaninfo/vulkaninfo.h:672:vkCreateInstance failed with ERROR_INCOMPATIBLE_DRIVER

It seems that it is trying to launch vulkan with the nvidia drivers but the nvidia gpu is disabled, that might explain the long delay for launching vulkan software, is there some way to configure things so it tries to load AMD drivers first?

Here’s my inxi output:

System:
  Kernel: 6.1.1-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.1-x86_64
    root=UUID=f5087d32-f673-4ce8-857b-8c7ae2977dfa rw quiet
    udev.log_priority=3
  Desktop: KDE Plasma v: 5.26.4 tk: Qt v: 5.15.7 wm: kwin_x11 vt: 1 dm: SDDM
    Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: ASUSTeK product: ROG Strix G713RW_G713RW v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: G713RW v: 1.0 serial: <superuser required>
    UEFI: American Megatrends LLC. v: G713RW.323 date: 10/16/2022
Battery:
  ID-1: BAT0 charge: 38.7 Wh (42.0%) condition: 92.1/90.0 Wh (102.4%)
    volts: 14.8 min: 15.9 model: AS3GWAF3KC GA50358 type: Unknown
    serial: <filter> status: discharging
  Device-1: hidpp_battery_0 model: Logitech MX Vertical Advanced Ergonomic
    Mouse serial: <filter> charge: 100% (should be ignored) rechargeable: yes
    status: discharging
Memory:
  RAM: total: 30.62 GiB used: 3.51 GiB (11.5%)
  RAM Report: permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: AMD Ryzen 9 6900HX with Radeon Graphics bits: 64 type: MT MCP
    arch: Zen 3+ gen: 4 level: v3 note: check built: 2022 process: TSMC n6 (7nm)
    family: 0x19 (25) model-id: 0x44 (68) stepping: 1 microcode: 0xA404102
  Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
    L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB desc: 8x512 KiB L3: 16 MiB
    desc: 1x16 MiB
  Speed (MHz): avg: 2068 high: 4818 min/max: 1600/4934 boost: enabled
    scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 1600 2: 2118
    3: 1600 4: 2119 5: 2133 6: 1600 7: 1600 8: 2150 9: 2122 10: 2135 11: 4818
    12: 1600 13: 2153 14: 1600 15: 2150 16: 1600 bogomips: 105446
  Flags: 3dnowprefetch abm adx aes aperfmperf apic arat avic avx avx2 bmi1
    bmi2 bpext cat_l3 cdp_l3 clflush clflushopt clwb clzero cmov cmp_legacy
    constant_tsc cpb cppc cpuid cqm cqm_llc cqm_mbm_local cqm_mbm_total
    cqm_occup_llc cr8_legacy cx16 cx8 de decodeassists erms extapic
    extd_apicid f16c flushbyasid fma fpu fsgsbase fsrm fxsr fxsr_opt ht
    hw_pstate ibpb ibrs ibs invpcid irperf lahf_lm lbrv lm mba mca mce
    misalignsse mmx mmxext monitor movbe msr mtrr mwaitx nonstop_tsc nopl npt
    nrip_save nx ospke osvw overflow_recov pae pat pausefilter pclmulqdq
    pdpe1gb perfctr_core perfctr_llc perfctr_nb pfthreshold pge pku pni popcnt
    pse pse36 rapl rdpid rdpru rdrand rdseed rdt_a rdtscp rep_good sep sha_ni
    skinit smap smca smep ssbd sse sse2 sse4_1 sse4_2 sse4a ssse3 stibp succor
    svm svm_lock syscall tce topoext tsc tsc_scale umip v_spec_ctrl
    v_vmsave_vmload vaes vgif vmcb_clean vme vmmcall vpclmulqdq wbnoinvd wdt
    x2apic xgetbv1 xsave xsavec xsaveerptr xsaveopt xsaves
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD Rembrandt [Radeon 680M] vendor: ASUSTeK driver: amdgpu
    v: kernel arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm) built: 2020-22
    pcie: gen: 4 speed: 16 GT/s lanes: 16 ports: active: eDP-1 empty: DP-1,
    DP-2, DP-3, DP-4, DP-5 bus-ID: 05:00.0 chip-ID: 1002:1681 class-ID: 0300
    temp: 52.0 C
  Display: x11 server: X.Org v: 21.1.6 compositor: kwin_x11 driver: X:
    loaded: amdgpu unloaded: modesetting alternate: fbdev,vesa dri: radeonsi
    gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 96 s-size: 677x381mm (26.65x15.00")
    s-diag: 777mm (30.58")
  Monitor-1: eDP-1 mapped: eDP model: BOE Display 0x0a69 built: 2021
    res: 2560x1440 hz: 240 dpi: 171 gamma: 1.2 size: 381x214mm (15x8.43")
    diag: 437mm (17.2") ratio: 16:9 modes: max: 2560x1440 min: 640x480
  API: OpenGL v: 4.6 Mesa 22.3.1 renderer: AMD Radeon Graphics (rembrandt
    LLVM 14.0.6 DRM 3.49 6.1.1-1-MANJARO) direct render: Yes
Audio:
  Device-1: AMD ACP/ACP3X/ACP6x Audio Coprocessor vendor: ASUSTeK
    driver: snd_pci_acp6x v: kernel
    alternate: snd_pci_acp3x,snd_rn_pci_acp3x,snd_pci_acp5x,snd_acp_pci,snd_rpl_pci_acp6x,snd_pci_ps,snd_sof_amd_renoir,snd_sof_amd_rembrandt
    pcie: gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 05:00.5 chip-ID: 1022:15e2
    class-ID: 0480
  Device-2: AMD Family 17h/19h HD Audio vendor: ASUSTeK driver: snd_hda_intel
    v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 05:00.6
    chip-ID: 1022:15e3 class-ID: 0403
  Sound API: ALSA v: k6.1.1-1-MANJARO running: yes
  Sound Server-1: JACK v: 1.9.21 running: no
  Sound Server-2: PulseAudio v: 16.1 running: no
  Sound Server-3: PipeWire v: 0.3.63 running: yes
Network:
  Device-1: MEDIATEK vendor: AzureWave driver: mt7921e v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 port: N/A bus-ID: 02:00.0 chip-ID: 14c3:7922
    class-ID: 0280
  IF: wlo1 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: noprefixroute scope: link
  Device-2: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
    pcie: gen: 2 speed: 5 GT/s lanes: 1 port: e000 bus-ID: 03:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: enp3s0 state: down mac: <filter>
  WAN IP: <filter>
Bluetooth:
  Device-1: IMC Networks Wireless_Device type: USB driver: btusb v: 0.8
    bus-ID: 1-4:3 chip-ID: 13d3:3568 class-ID: e001 serial: <filter>
  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 953.87 GiB used: 80.45 GiB (8.4%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Micron model: 2450 MTFDKBA1T0TFK
    size: 953.87 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
    lanes: 4 type: SSD serial: <filter> rev: V5MA010 temp: 30.9 C scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 831.26 GiB size: 817.14 GiB (98.30%) used: 80.43 GiB (9.8%)
    fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2 label: manjaro
    uuid: f5087d32-f673-4ce8-857b-8c7ae2977dfa
  ID-2: /boot/efi raw-size: 550 MiB size: 548.9 MiB (99.80%)
    used: 25.6 MiB (4.7%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 label: EFI
    uuid: BB52-DD73
Swap:
  Alert: No swap data was found.
Unmounted:
  ID-1: /dev/nvme0n1p3 maj-min: 259:3 size: 16 MiB fs: <superuser required>
    label: N/A uuid: N/A
  ID-2: /dev/nvme0n1p4 maj-min: 259:4 size: 122.05 GiB fs: ntfs label: N/A
    uuid: F65271E95271AECD
USB:
  Hub-1: 1-0:1 info: Hi-speed hub with single TT ports: 4 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 1-3:2 info: ASUSTek N-KEY Device type: Keyboard
    driver: asus,usbhid interfaces: 1 rev: 2.0 speed: 12 Mb/s power: 100mA
    chip-ID: 0b05:19b6 class-ID: 0301
  Device-2: 1-4:3 info: IMC Networks Wireless_Device type: Bluetooth
    driver: btusb interfaces: 3 rev: 2.1 speed: 480 Mb/s power: 100mA
    chip-ID: 13d3:3568 class-ID: e001 serial: <filter>
  Hub-2: 2-0:1 info: Super-speed hub ports: 2 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
  Hub-3: 3-0:1 info: Hi-speed hub with single TT ports: 3 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 3-1:2 info: Logitech Unifying Receiver type: Keyboard,Mouse,HID
    driver: logitech-djreceiver,usbhid interfaces: 3 rev: 2.0 speed: 12 Mb/s
    power: 98mA chip-ID: 046d:c52b class-ID: 0300
  Hub-4: 4-0:1 info: Super-speed hub ports: 2 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
  Hub-5: 5-0:1 info: Hi-speed hub with single TT ports: 1 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-6: 6-0:1 info: Linux Foundation 3.0 root hub ports: N/A rev: 3.0
    speed: 5 Gb/s chip-ID: 1d6b:0003 class-ID: 0900
  Hub-7: 7-0:1 info: Hi-speed hub with single TT ports: 1 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-8: 8-0:1 info: Super-speed hub ports: 1 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
  Hub-9: 9-0:1 info: Hi-speed hub with single TT ports: 1 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-10: 10-0:1 info: Super-speed hub ports: 1 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
Sensors:
  System Temperatures: cpu: 62.8 C mobo: N/A gpu: amdgpu temp: 53.0 C
  Fan Speeds (RPM): cpu: 0
Info:
  Processes: 364 Uptime: 35m wakeups: 10 Init: systemd v: 252
  default: graphical tool: systemctl Compilers: gcc: 12.2.0 clang: 14.0.6
  Packages: pm: pacman pkgs: 1417 libs: 437 tools: pamac,yay pm: flatpak
  pkgs: 0 Shell: Bash v: 5.1.16 running-in: konsole inxi: 3.3.24

I investigated the issue a bit further, it looks like when an attempt is made to run vulkan it always tries to default to the nvidia icd.

Removing /usr/share/vulkan/icd.d/nvidia_icd.json technically resolved the issue, however it is not a satisfactory solution. I shouldn’t have to remove the nvidia icd in order to use AMD’s.

On another note when I try to use AMDVLK now I get this error:

$ vkcube
Selected GPU 0: Null hardware (RADV NAVI10), type: DiscreteGpu
Segmentation fault (core dumped)

(Is AMDVLK maybe not compatible with iGPUs?!)

Here’s my ultimate solution:

Add

export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:radeon_icd.i686.json:nvidia_icd.json

to .bash_profile

this will effectively set radeon/mesa vulkan as the default for your session.

It doesn’t seem to be quite foolproof (for instance with a game i tried to launch from lutris, it behaved a lot better than before setting this variable (as in it got further in the execution process before it crashed a lot faster too), and setting the vulkan icd loader to radeon manually in lutris solved that problem

image

By default it was set to the selected value, and setting it to use system default (unspecified) got the same result, but setting it to the AMD RADV option manually allowed me to launch that particular game.

On steam/proton however games would just run correctly on the mesa vulkan, and this seems to be the case for all native applications i tried as well (vkcube and chromium).

After re-enabling the nvidia gpu, prime-run no longer works correctly (e.g. i use prime-run, but vulkan applications run on my radeon gpu) to resolve that issue I edid /usr/bin/prime-run and put this line in:

VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json

Now I can use prime-run to run things on the nvidia-gpu and everything else will by default run on the AMD gpu as it should.

:face_exhaling:

I’m a bit disappointed that this was not already sorted out with the default settings on manjaro, none of this should have been necessary and I hope mine is a corner case instead of what people can actually expect when running amd igpus on manjaro.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.