MESA RADV and amdvlk


General
  Proton Games
    Enable logging
      - Select Game -> Right Click -> Properties -> Set Launch Options ...
      - Enter PROTON_LOG=1 %command%
      - Click OK -> Close

    This will create a file in you $HOME dir called steam-.log with 
    output for the launch

    See Runtime Config Options listed at https://github.com/ValveSoftware/Proton/ 
    for further configuration options

    
Symptom:
  Games failing with undefined symbol: amdgpu_bo_list_create_raw

State:
  - Game: Quake Champions (latest)
  - Version: Steam Linux (latest)
  - Proton: 4.11-11 forced
  - OS: Ubuntu Bionic 18.04 LTS amd64
  - mesa-vulkan-drivers: 1:20.0~git191209141100.86dfe92~b~padoka0
  - amdvlk: 2019.Q4.4
  - vlksdk: 1.1.130.0~rc1-1lunarg18.04.1.1
  - GPU: AMD RX580

Investigation:
  - Enable Proton logging
  - Log shows 
      "symbol lookup error: /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so: undefined symbol: amdgpu_bo_list_create_raw"
  - $ dpkg -S /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
      mesa-vulkan-drivers:amd64: /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
  - symbol breaks stuff
    $ strings /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so | grep amdgpu_bo_list
    amdgpu_bo_list_create_raw
    amdgpu_bo_list_destroy_raw
  - $ ls /usr/share/vulkan/icd.d/
    intel_icd.x86_64.json  radeon_icd.x86_64.json
  - $ cat /usr/share/vulkan/icd.d/radeon_icd.x86_64.json
    "library_path": "/usr/lib/x86_64-linux-gnu/libvulkan_radeon.so""
  - As per https://github.com/GPUOpen-Drivers/AMDVLK these other icd files 
    should have been uninstalled as part of the amdvlk but that breaks other
    stuff the mesa lib performs better
  - As per https://github.com/GPUOpen-Drivers/AMDVLK/blob/master/json/Ubuntu/amd_icd64.json
    "library_path": "/usr/lib/x86_64-linux-gnu/amdvlk64.so"
  - $ strings /usr/lib/x86_64-linux-gnu/amdvlk64.so | grep amdgpu_bo_list
    amdgpu_bo_list_create
    amdgpu_bo_list_destroy
  - As per https://github.com/KhronosGroup/Vulkan-Tools/blob/ffc655fbead65bbf62b20778ac1e299ce3b180d5/BUILD.md
    we should be able to do something with VK_ICD_FILENAMES
 
Resolution:
  - Force use of the amdvlk icd file
  - Select Game -> Right Click -> Properties -> Set Launch Options ...
  - Enter VK_ICD_FILENAMES=/etc/vulkan/icd.d/amd_icd64.json %command%
  - Click OK -> Close