You are not logged in.

#1 2024-10-11 13:43:24

khaledsakr
Member
Registered: 2024-10-11
Posts: 3

[SOLVED] Understanding vulkan GPU choice

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

#2 2024-10-11 13:51:20

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 23,447

Re: [SOLVED] Understanding vulkan GPU choice

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

#3 2024-10-11 15:08:18

khaledsakr
Member
Registered: 2024-10-11
Posts: 3

Re: [SOLVED] Understanding vulkan GPU choice

V1del wrote:

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

#4 2024-10-11 16:33:54

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 23,447

Re: [SOLVED] Understanding vulkan GPU choice

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

#5 2024-10-13 19:02:42

khaledsakr
Member
Registered: 2024-10-11
Posts: 3

Re: [SOLVED] Understanding vulkan GPU choice

V1del wrote:

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

Board footer

Powered by FluxBB