protonscr

Proton Games No Longer Launch - Required Vulkan extension VK_KHR_surface not supported

protonclosed
ValveSoftware/Proton#7390 · opened 2024-01-08 by Alex9001 · updated 2024-01-08 · 4 comments · github
AAlex9001 2024-01-08 github

My system:
Artix Linux (Arch with OpenRC).
AMD Radeon RX 6600M, type: DiscreteGpu

1/6
everything was working fine. I played Battlebit and shut down steam. I ran updates and shut down my computer.

1/7
I tried to play Battlebit but it didn't work. I tried to play Planetside 2 but it didn't work. I tried a bunch of titles I had installed and none of them launched.

I added PROTON_LOG=1 %command% to launch options of Battlebit and found this:

info: Game: EasyAntiCheat.exe info: DXVK: v2.3-21-g1b31aa5dbca0749 1138.664:0148:014c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\winevulkan.dll" at 6FA80000: builtin info: Vulkan: Found vkGetInstanceProcAddr in winevulkan.dll @ 0x6fa92610 info: Built-in extension providers: info: Win32 WSI info: OpenVR info: OpenXR info: Required Vulkan extension VK_KHR_surface not supported 1138.664:0148:014c:trace:seh:raise (22) 1138.691:0030:015c:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker" 1138.691:0030:0160:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker" 1138.692:0030:0164:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker" pid 24014 != 24013, skipping destruction (fork without exec?)

I ran a search for VK_KHR_surface not supported and it seems to suggest that LIB32 driver is missing. But that's not true. It is installed!

I tried different proton versions: experimental, 8, 7
I did steam-runtime --reset
I tried starting games with AMD_VULKAN_ICD=RADV

No change.

Lets take a look at vulkaninfo -summary:
Vulkan Instance Version: 1.3.274


Instance Extensions: count = 19
-------------------------------
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_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_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 = 15
---------------------------
VK_LAYER_AMD_switchable_graphics_32 AMD switchable graphics layer                  1.3.271  version 1
VK_LAYER_AMD_switchable_graphics_64 AMD switchable graphics layer                  1.3.271  version 1
VK_LAYER_FROG_gamescope_wsi_x86_64  Gamescope WSI (XWayland Bypass) Layer (x86_64) 1.3.221  version 1
VK_LAYER_INTEL_nullhw               INTEL NULL HW                                  1.1.73   version 1
VK_LAYER_KHRONOS_validation         Khronos Validation Layer                       1.3.268  version 1
VK_LAYER_LUNARG_api_dump            LunarG API dump layer                          1.3.250  version 2
VK_LAYER_LUNARG_monitor             Execution Monitoring Layer                     1.3.250  version 1
VK_LAYER_LUNARG_screenshot          LunarG image capture layer                     1.3.250  version 1
VK_LAYER_MESA_device_select         Linux device selection layer                   1.3.211  version 1
VK_LAYER_MESA_overlay               Mesa Overlay layer                             1.3.211  version 1
VK_LAYER_NV_optimus                 NVIDIA Optimus layer                           1.3.260  version 1
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.264
        driverVersion      = 2.0.283
        vendorID           = 0x1002
        deviceID           = 0x73ff
        deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName         = AMD Radeon RX 6600M
        driverID           = DRIVER_ID_AMD_PROPRIETARY
        driverName         = AMD proprietary driver
        driverInfo         = (AMD proprietary shader compiler)
        conformanceVersion = 1.3.3.1
        deviceUUID         = 00000000-0300-0000-0000-000000000000
        driverUUID         = 414d442d-4c49-4e55-582d-445256000000
GPU1:
        apiVersion         = 1.3.264
        driverVersion      = 2.0.283
        vendorID           = 0x1002
        deviceID           = 0x1638
        deviceType         = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
        deviceName         = AMD Radeon Graphics
        driverID           = DRIVER_ID_AMD_PROPRIETARY
        driverName         = AMD proprietary driver
        driverInfo         = (AMD proprietary shader compiler)
        conformanceVersion = 1.3.3.1
        deviceUUID         = 00000000-0800-0000-0000-000000000000
        driverUUID         = 414d442d-4c49-4e55-582d-445256000000

ls /usr/share/vulkan/icd.d/ amd_icd32.json amd_pro_icd32.json intel_hasvk_icd.x86_64.json lvp_icd.i686.json nvidia_icd.json radeon_icd.x86_64.json amd_icd64.json amd_pro_icd64.json intel_icd.x86_64.json lvp_icd.x86_64.json radeon_icd.i686.json

pamac search --installed vulkan
spirv-tools  2023.5-1                                                                                                                  world
    API and commands for processing SPIR-V modules
nvidia-utils  545.29.06-1                                                                                                              world
    NVIDIA drivers utilities
lib32-amdvlk  2023.Q4.3-1                                                                                                           multilib
    AMD's standalone Vulkan driver
amdvlk  2023.Q4.3-1                                                                                                                    world
    AMD's standalone Vulkan driver
lib32-vulkan-validation-layers  1.3.268.0-1                                                                                         multilib
    Vulkan Validation Layers (32-bit)
lib32-vulkan-swrast  1:23.3.2-2                                                                                                     multilib
    Vulkan software rasteriser driver (32-bit)
lib32-vulkan-radeon  1:23.3.2-2                                                                                                     multilib
    Radeon's Vulkan mesa driver (32-bit)
lib32-vulkan-mesa-layers  1:23.3.2-2                                                                                                multilib
    Mesa's Vulkan layers (32-bit)
lib32-vulkan-icd-loader  1.3.274-1                                                                                                  multilib
    Vulkan Installable Client Driver (ICD) Loader (32-bit)
lib32-vulkan-amdgpu-pro  23.30_1684442-1                                                                                                 AUR
    AMDGPU Pro Vulkan driver (32-bit)
vulkan-validation-layers  1.3.268.0-1                                                                                                  world
    Vulkan Validation Layers
vulkan-utility-libraries  1.3.273-1                                                                                                    extra
    Vulkan Utility Libraries
vulkan-tools  1.3.269-1                                                                                                                world
    Vulkan Utilities and Tools
vulkan-swrast  1:23.3.2-2                                                                                                              world
    Vulkan software rasteriser driver
vulkan-radeon  1:23.3.2-2                                                                                                              world
    Radeon's Vulkan mesa driver
vulkan-mesa-layers  1:23.3.2-2                                                                                                         world
    Mesa's Vulkan layers
vulkan-intel  1:23.3.2-2                                                                                                               world
    Intel's Vulkan mesa driver
vulkan-icd-loader  1.3.274-1                                                                                                           world
    Vulkan Installable Client Driver (ICD) Loader
vulkan-html-docs  1:1.3.274-1                                                                                                          world
    Vulkan html documentation
vulkan-headers  1:1.3.274-1                                                                                                            world
    Vulkan header files
vulkan-extra-tools  1.3.250.0-1                                                                                                        extra
    Vulkan lunarg tools
vulkan-extra-layers  1.3.250.0-1                                                                                                       extra
    Extra layers for Vulkan development
vulkan-amdgpu-pro  23.30_1684442-1                                                                                                       AUR
    AMDGPU Pro Vulkan driver

$ vkcube Selected GPU 0: AMD Radeon RX 6600M, type: DiscreteGpu

Thanks for your time.

PS: Lutris games continue to work without a problem.

Kkisak-valve maintainer 2024-01-08 github

Hello @Alex9001, please copy the contents of Steam Runtime Diagnostics from Steam (Steam -> Help -> Steam Runtime Diagnostics) and put it in a gist, then include a link to the gist in this issue report.

Also, can you test how a game behaves without AMDVLK or AMDGPU-Pro involved? One way to do that is to rename amd_*.json to amd_*.json.disabled (and you can rename them back afterwords to undo the test).

AAlex9001 2024-01-08 github

Hello @Alex9001, please copy the contents of Steam Runtime Diagnostics from Steam (Steam -> Help -> Steam Runtime Diagnostics) and put it in a gist, then include a link to the gist in this issue report.

Also, can you test how a game behaves without AMDVLK or AMDGPU-Pro involved? One way to do that is to rename amd_*.json to amd_*.json.disabled (and you can rename them back afterwords to undo the test).

Hello, here is the runtime diag: https://gist.github.com/Alex9001/8eb4b15666935a3c1b83bddcec6b48ce

I disabled amd_pro** and it did not launch. Same error. Disabled amd_icd** and it did not launch. Same error.

Kkisak-valve maintainer 2024-01-08 github

Thanks, looking at your diagnostics info, https://gist.github.com/Alex9001/8eb4b15666935a3c1b83bddcec6b48ce#file-srun-txt-L65 looks like the focus of your issue. You've set VK_DRIVER_FILES somewhere, and that forces the Vulkan loader to only see AMDGPU-Pro, but it also has a typo at the end: /usr/share/vulkan/icd.d/amd_pro_icd32.json obs This is read together in the colon separated list of Vulkan drivers and leads to 32 bit Vulkan being broken by your configuration: https://gist.github.com/Alex9001/8eb4b15666935a3c1b83bddcec6b48ce#file-srun-txt-L80-L93

AAlex9001 2024-01-08 github

Thanks, looking at your diagnostics info, https://gist.github.com/Alex9001/8eb4b15666935a3c1b83bddcec6b48ce#file-srun-txt-L65 looks like the focus of your issue. You've set VK_DRIVER_FILES somewhere, and that forces the Vulkan loader to only see AMDGPU-Pro, but it also has a typo at the end: /usr/share/vulkan/icd.d/amd_pro_icd32.json obs This is read together in the colon separated list of Vulkan drivers and leads to 32 bit Vulkan being broken by your configuration: https://gist.github.com/Alex9001/8eb4b15666935a3c1b83bddcec6b48ce#file-srun-txt-L80-L93

Thanks a bunch! this is not a bug but a mistake I made editing ENV for OBS amf enconding. Please closese this.

Launch options

DLLs