nix-community / nixGL

A wrapper tool for nix OpenGL application [maintainer=@guibou]
627 stars 76 forks source link

nixVulkanIntel usage with AMDGPU-PRO #153

Open kir68k opened 6 months ago

kir68k commented 6 months ago

Hi, I have been using this program to get steam installed on my distro without Flatpak and without the hassle of 32-bit dependencies globally installed. It works great, but I can't seem to force amd_pro_icd64.json usage when using nixVulkanIntel.

Example: VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_pro_icd64.json nixVulkanIntel vulkaninfo --summary will print:

GPU0:
    apiVersion         = 1.3.260
    driverVersion      = 2.0.279
    vendorID           = 0x1002
    deviceID           = 0x73ff
    deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
    deviceName         = AMD Radeon RX 6600 XT
    driverID           = DRIVER_ID_AMD_PROPRIETARY
    driverName         = AMD proprietary driver
    driverInfo         = (AMD proprietary shader compiler)
    conformanceVersion = 1.3.3.1
    deviceUUID         = 00000000-0a00-0000-0000-000000000000
    driverUUID         = 414d442d-4c49-4e55-582d-445256000000
GPU1:
    apiVersion         = 1.3.246
    driverVersion      = 23.1.4
    vendorID           = 0x1002
    deviceID           = 0x73ff
    deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
    deviceName         = AMD Radeon RX 6600 XT (RADV NAVI23)
    driverID           = DRIVER_ID_MESA_RADV
    driverName         = radv
    driverInfo         = Mesa 23.1.4
    conformanceVersion = 1.3.0.0
    deviceUUID         = 00000000-0a00-0000-0000-000000000000
    driverUUID         = 414d442d-4d45-5341-2d44-525600000000
GPU2:
    apiVersion         = 1.3.246
    driverVersion      = 0.0.1
    vendorID           = 0x10005
    deviceID           = 0x0000
    deviceType         = PHYSICAL_DEVICE_TYPE_CPU
    deviceName         = llvmpipe (LLVM 15.0.7, 256 bits)
    driverID           = DRIVER_ID_MESA_LLVMPIPE
    driverName         = llvmpipe
    driverInfo         = Mesa 23.1.4 (LLVM 15.0.7)
    conformanceVersion = 1.3.1.1
    deviceUUID         = 6d657361-3233-2e31-2e34-000000000000
    driverUUID         = 6c6c766d-7069-7065-5555-494400000000

Seems like my /usr/share entry is appended to the end of VK_ICD_FILENAMES, only selected on GPU0.

kir68k commented 6 months ago

Oh, this might be a non-issue and my mistake, GPU0 seems to be the real one and is the only one I get when running vulkaninfo without nixVulkanIntel:

Devices:
========
GPU0:
    apiVersion         = 1.3.260
    driverVersion      = 2.0.279
    vendorID           = 0x1002
    deviceID           = 0x73ff
    deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
    deviceName         = AMD Radeon RX 6600 XT
    driverID           = DRIVER_ID_AMD_PROPRIETARY
    driverName         = AMD proprietary driver
    driverInfo         = (AMD proprietary shader compiler)
    conformanceVersion = 1.3.3.1
    deviceUUID         = 00000000-0a00-0000-0000-000000000000
    driverUUID         = 414d442d-4c49-4e55-582d-445256000000

I have to wonder then, what is GPU1 and GPU2? Why does that only appear when using nixVulkanIntel? I presume games would select GPU0, but I want to be sure of what the other two are.