You are not logged in.
Pages: 1
Hi everyone,
I have a problem with gtk applications utilizing the dGPU instead of the iGPU: https://gitlab.gnome.org/GNOME/gtk/-/is … te_2244778
Digging deeper I found that vulkan considers the dGPU as GPU0 and the iGPU as GPU1:
vulkaninfo --summary
==========
VULKANINFO
==========
Vulkan Instance Version: 1.3.295
Instance Extensions: count = 24
-------------------------------
VK_EXT_acquire_drm_display : extension revision 1
VK_EXT_acquire_xlib_display : extension revision 1
VK_EXT_debug_report : extension revision 10
VK_EXT_debug_utils : extension revision 2
VK_EXT_direct_mode_display : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_EXT_headless_surface : extension revision 1
VK_EXT_surface_maintenance1 : extension revision 1
VK_EXT_swapchain_colorspace : extension revision 4
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_portability_enumeration : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_surface_protected_capabilities : extension revision 1
VK_KHR_wayland_surface : extension revision 6
VK_KHR_xcb_surface : extension revision 6
VK_KHR_xlib_surface : extension revision 6
VK_LUNARG_direct_driver_loading : extension revision 1
Instance Layers: count = 4
--------------------------
VK_LAYER_VALVE_steam_fossilize_32 Steam Pipeline Caching Layer 1.3.207 version 1
VK_LAYER_VALVE_steam_fossilize_64 Steam Pipeline Caching Layer 1.3.207 version 1
VK_LAYER_VALVE_steam_overlay_32 Steam Overlay Layer 1.3.207 version 1
VK_LAYER_VALVE_steam_overlay_64 Steam Overlay Layer 1.3.207 version 1
Devices:
========
GPU0:
apiVersion = 1.3.289
driverVersion = 24.2.4
vendorID = 0x1002
deviceID = 0x73ef
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceName = AMD Radeon RX 6700S (RADV NAVI23)
driverID = DRIVER_ID_MESA_RADV
driverName = radv
driverInfo = Mesa 24.2.4-arch1.1
conformanceVersion = 1.3.0.0
deviceUUID = 00000000-0300-0000-0000-000000000000
driverUUID = 414d442d-4d45-5341-2d44-525600000000
GPU1:
apiVersion = 1.3.289
driverVersion = 24.2.4
vendorID = 0x1002
deviceID = 0x1681
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = AMD Radeon 680M (RADV REMBRANDT)
driverID = DRIVER_ID_MESA_RADV
driverName = radv
driverInfo = Mesa 24.2.4-arch1.1
conformanceVersion = 1.3.0.0
deviceUUID = 00000000-0700-0000-0000-000000000000
driverUUID = 414d442d-4d45-5341-2d44-525600000000
Is there a way to - permentantly - change how vulkan enumerates the GPUs? Or pointers in general on how to further debug this?
Thanks in advance!
Last edited by khaledsakr (2024-10-13 19:04:40)
Offline
Applications can generally do whatever and relying on the index order is commonly going to run into trouble. -- I'm assuming the default order here will be up to PCI slot or so
The simplest to "permanently" configure this appropriately would be using something like vulkan-mesa-layers and configuring relevant environment variables exposing the cards on the basis you want them exposed: https://wiki.archlinux.org/title/Vulkan … en_devices
Last edited by V1del (2024-10-11 13:52:24)
Offline
Applications can generally do whatever and relying on the index order is commonly going to run into trouble. -- I'm assuming the default order here will be up to PCI slot or so
The simplest to "permanently" configure this appropriately would be using something like vulkan-mesa-layers and configuring relevant environment variables exposing the cards on the basis you want them exposed: https://wiki.archlinux.org/title/Vulkan … en_devices
I seem to have another problem,
MESA_VK_DEVICE_SELECT=list vulkaninfo
does not list the GPUs. It just prints the regular vulkaninfo output as if I didn't pass the environment variable.
Additionally, setting the env variable also doesn't affect the utilized GPU, for example:
MESA_VK_DEVICE_SELECT=1002:1681 vkcube
Selected GPU 0: AMD Radeon RX 6700S (RADV NAVI23), type: DiscreteGpu
Offline
vkcube is one of the examples of "can literally do whatever if all GPUs are listed" -- it actively seeks and renders on dedicated cards if they are exposed to it, regardless of the index order, to be sure sure do
MESA_VK_DEVICE_SELECT=1002:1681! vkcube
Also because list should differentiate something... You actively need to install the vulkan-mesa-layers package before this can work, it wasn't present in your first vulkaninfo post.
Last edited by V1del (2024-10-11 16:36:48)
Offline
vkcube is one of the examples of "can literally do whatever if all GPUs are listed" -- it actively seeks and renders on dedicated cards if they are exposed to it, regardless of the index order, to be sure sure do
MESA_VK_DEVICE_SELECT=1002:1681! vkcube
Also because list should differentiate something... You actively need to install the vulkan-mesa-layers package before this can work, it wasn't present in your first vulkaninfo post.
Ah right, I was missing vulkan-mesa-layers. Thanks!
Offline
Pages: 1