ValveSoftware / ValveSoftware/Proton

Proton failing to load Vulkan driver

Open
#5,081 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
32.8k
Forks
1.6k
PR merge metrics
PR metrics pending

Description

Your system information
  • Steam Runtime Version: 0.20210723.18
  • Distribution (e.g. Ubuntu 18.04): openSUSE Tumbleweed
  • Link to your full system information (Help -> System Information) in a Gist: https://gist.github.com/milliams/1cbead8ffe47dade7133c74ba46e4398
  • Have you checked for system updates?: Yes
  • What compatibility tool are you using?: Proton 6.3-5
  • If you are using Steam Linux Runtime, or Proton 5.13 or newer: What versions are listed in SteamLinuxRuntime_soldier/VERSIONS.txt?:
#Name   Version         Runtime Runtime_Version Comment
depot   0.20210723.18                   # Overall version number
pressure-vessel 0.20210722.0
scripts v0.20210722.0-0-gb142f90                        # Entry point scripts, etc.
soldier 0.20210719.0    soldier 0.20210719.0    # soldier_platform_0.20210719.0/
Please describe your issue in as much detail as possible:

When trying to run the Witcher 3 (I see the same with Prey too) through Proton, it seems to be failing to find the Vulkan driver

steam-292030.log:

======================
Proton: 1624629470 proton-6.3-5
SteamGameId: 292030
Command: ['/storage2/SteamLibrary_Linux/steamapps/common/The Witcher 3/bin/x64/witcher3.exe']
Options: {'forcelgadd'}
depot: 0.20210723.18
pressure-vessel: 0.20210722.0
scripts: v0.20210722.0-0-gb142f90
soldier: 0.20210719.0 soldier 0.20210719.0
======================
esync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
32626.190:0028:002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wineboot.exe" at 0000000140000000: builtin
<...>
32640.465:00c0:00c4:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
info:  Game: witcher3.exe
info:  DXVK: v1.9
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVR
info:    OpenXR
32640.613:00c0:00c4:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wineopenxr.dll" at 00007FB02B6C0000: builtin
warn:  OpenXR: Unable to get required Vulkan instance extensions size
32640.615:00c0:00c4:err:vulkan:wine_vk_init Failed to load Wine graphics driver supporting Vulkan.
info:  Required Vulkan extension VK_KHR_surface not supported
<...>

However, if I check vulkaninfo:

==========
VULKANINFO
==========

Vulkan Instance Version: 1.2.182


Instance Extensions: count = 17
===============================
        VK_EXT_acquire_xlib_display            : extension revision 1
        VK_EXT_debug_report                    : extension revision 9
        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_surface                         : extension revision 25
        VK_KHR_surface_protected_capabilities  : extension revision 1
        VK_KHR_xcb_surface                     : extension revision 6
        VK_KHR_xlib_surface                    : extension revision 6

Layers: count = 5
=================
VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.2.175, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (NVIDIA GeForce GTX 1070)
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize_32 (Steam Pipeline Caching Layer) Vulkan version 1.2.136, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (NVIDIA GeForce GTX 1070)
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize_64 (Steam Pipeline Caching Layer) Vulkan version 1.2.136, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (NVIDIA GeForce GTX 1070)
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_overlay_32 (Steam Overlay Layer) Vulkan version 1.2.136, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (NVIDIA GeForce GTX 1070)
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_overlay_64 (Steam Overlay Layer) Vulkan version 1.2.136, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (NVIDIA GeForce GTX 1070)
                Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (NVIDIA GeForce GTX 1070):
        Surface types: count = 2
                VK_KHR_xcb_surface
                VK_KHR_xlib_surface
        Formats: count = 2
                SurfaceFormat[0]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 3
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_FIFO_RELAXED_KHR
                PRESENT_MODE_IMMEDIATE_KHR
        VkSurfaceCapabilitiesKHR:
        -------------------------
                minImageCount = 2
                maxImageCount = 8
                currentExtent:
                        width = 256
                        height = 256
                minImageExtent:
                        width = 256
                        height = 256
                maxImageExtent:
                        width = 256
                        height = 256
                maxImageArrayLayers = 1
                supportedTransforms: count = 1
                        SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                supportedCompositeAlpha: count = 1
                        COMPOSITE_ALPHA_OPAQUE_BIT_KHR
                supportedUsageFlags: count = 6
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT
        VkSurfaceCapabilities2EXT:
        --------------------------
                supportedSurfaceCounters:
                        None
        VkSurfaceProtectedCapabilitiesKHR:
        ----------------------------------
                supportsProtected = false



Device Groups:
==============
Group 0:
        Properties:
                physicalDevices: count = 1
                        NVIDIA GeForce GTX 1070 (ID: 0)
                subsetAllocation = 0

        Present Capabilities:
                NVIDIA GeForce GTX 1070 (ID: 0):
                        Can present images from the following devices: count = 1
                                NVIDIA GeForce GTX 1070 (ID: 0)
                Present modes: count = 1
                        DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 4202671 (1.2.175)
        driverVersion     = 1972256896 (0x758e4080)
        vendorID          = 0x10de
        deviceID          = 0x1b81
        deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName        = NVIDIA GeForce GTX 1070
        pipelineCacheUUID = f0a1f01f-42bb-ee34-8c5c-98b938d89b25
<...>

vkcube:

Selected GPU 0: NVIDIA GeForce GTX 1070, type: 2

The nvidia drivers are version (from glxinfo):

OpenGL core profile version string: 4.6.0 NVIDIA 470.57.02

I have removed all other packages which would provide an ICD, so /usr/share/vulkan/icd.d/ is empty.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the linked steam-292030.log with the linked vulkaninfo.log and the vkcube result, focusing on the failed Vulkan initialization and missing VK_KHR_surface message. Reproduce with The Witcher 3 or Prey through Proton 6.3-5; done means the game loads its Vulkan driver successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.