protonscr

Using latest 2.1 binaries in Win32/64 environment.

vkd3dclosed
HansKristian-Work/vkd3d-proton#466 · opened 2020-12-14 by Redundanz · updated 2020-12-15 · 7 comments · github
RRedundanz 2020-12-14 github

Hi,

well knowing Windows 10 is not the main focus of this engagement, are there any crucial steps I am missing to make D3D12 games like Civ6 or Cyberpunk 2077 run with vkd3d?
Placing the 2.1 release d3d12.dll into the games binary folder and starting it leads to a crash on startup. Is the DXVK dxgi.dll in addition needed? I tried with that too, but I get the same crash behaviour, except that in Civ6 I actually get the game exe to start for 5 seconds but stay in a black screen and then subsequently crash as well.

I am asking because I am quite fondly using DXVK in Windows for the fact that in 20% of my games it runs a bit faster than native, meaning I get less utilization, CPU/GPU for the same FPS target.

So I was wondering if vkd3d's goal is to do the same thing for DX12 games at least at some point in development. To put it differently, will vkd3d based on how it is designed work on Windows as well as DXVK or is it different from it in that perspective?

Using Windows 10, latest GPU drivers (20.12.1, AMD Vega 64)

  • cheers, red
HHansKristian-Work maintainer 2020-12-14 github

There is no reason why vkd3d-proton should run faster than native d3d12 drivers. Using vkd3d-proton on Windows is purely for development/debugging purposes.

Mmisyltoad maintainer 2020-12-14 github

For the record:

Is the DXVK dxgi.dll in addition needed?

Yes.

RRedundanz 2020-12-15 github

Enabled the vkd3d log file. Dumping here as well in case anyone takes interest.

vkd3d.log

1008:info:vkd3d_get_vk_version: vkd3d-proton - applicationVersion: 2.1.0.
1008:info:vkd3d_instance_init: vkd3d-proton - build: d003424bc826afd.
1008:info:vkd3d_instance_apply_application_workarounds: Detected game Cyberpunk2077.exe, adding config 0x2, removing masks 0x0.
1008:fixme:debug_vk_memory_heap_flags: Unrecognized flag(s) 0x2.
1008:fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
1008:fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
1008:fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
1008:fixme:debug_vk_memory_heap_flags: Unrecognized flag(s) 0x2.
1008:fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
1008:warn:vkd3d_init_device_caps: Disabling robust buffer access for the update after bind feature.
1008:warn:vkd3d_init_depth_stencil_formats: Mapping VK_FORMAT_D24_UNORM_S8_UINT to VK_FORMAT_D32_SFLOAT_S8_UINT.
1008:warn:vkd3d_memory_info_find_global_mask: Blocking memory type 2 for use (PCI-pinned memory).
1008:warn:vkd3d_memory_info_find_global_mask: Blocking memory type 6 for use (PCI-pinned memory).
1008:info:vkd3d_bindless_state_get_bindless_flags: Device does not support VK_VALVE_mutable_descriptor_type.
1008:fixme:d3d12_device_caps_init_feature_options1: TotalLaneCount = 3584, may be inaccurate.

dxgi.log

warn: CreateDXGIFactory2: Ignoring flags
info: Game: Cyberpunk2077.exe
info: DXVK: v1.7.3
info: Built-in extension providers:
info: Win32 WSI
info: OpenVR
warn: OpenVR: Failed to locate module
info: Enabled instance extensions:
info: VK_KHR_get_surface_capabilities2
info: VK_KHR_surface
info: VK_KHR_win32_surface
info: Radeon RX Vega:
info: Driver: 2.0.168
info: Vulkan: 1.2.159
info: Memory Heap[0]:
info: Size: 7920 MiB
info: Flags: 0x3
info: Memory Type[0]: Property Flags = 0x1
info: Memory Type[4]: Property Flags = 0xc1
info: Memory Heap[1]:
info: Size: 5862 MiB
info: Flags: 0x0
info: Memory Type[1]: Property Flags = 0x6
info: Memory Type[3]: Property Flags = 0xe
info: Memory Type[5]: Property Flags = 0xc6
info: Memory Type[7]: Property Flags = 0xce
info: Memory Heap[2]:
info: Size: 256 MiB
info: Flags: 0x3
info: Memory Type[2]: Property Flags = 0x7
info: Memory Type[6]: Property Flags = 0xc7
warn: CreateDXGIFactory2: Ignoring flags
info: Game: Cyberpunk2077.exe
info: DXVK: v1.7.3
info: Built-in extension providers:
info: Win32 WSI
info: OpenVR
warn: OpenVR: Failed to locate module
info: Enabled instance extensions:
info: VK_KHR_get_surface_capabilities2
info: VK_KHR_surface
info: VK_KHR_win32_surface
info: Radeon RX Vega:
info: Driver: 2.0.168
info: Vulkan: 1.2.159
info: Memory Heap[0]:
info: Size: 7920 MiB
info: Flags: 0x3
info: Memory Type[0]: Property Flags = 0x1
info: Memory Type[4]: Property Flags = 0xc1
info: Memory Heap[1]:
info: Size: 5862 MiB
info: Flags: 0x0
info: Memory Type[1]: Property Flags = 0x6
info: Memory Type[3]: Property Flags = 0xe
info: Memory Type[5]: Property Flags = 0xc6
info: Memory Type[7]: Property Flags = 0xce
info: Memory Heap[2]:
info: Size: 256 MiB
info: Flags: 0x3
info: Memory Type[2]: Property Flags = 0x7
info: Memory Type[6]: Property Flags = 0xc7
warn: DxgiAdapter::QueryInterface: Unknown interface query
warn: 7abb6563-02bc-47c4-8ef9-acc4795edbcf

KK0bin 2020-12-15 github

VKD3D-Proton does not work with Cyberpunk on Windows for whatever reason.
Even on Linux the game is really problematic and only works on Mesa-Git RADV drivers.

What exactly are you hoping to achieve anyway? Even if it was working, it would be a lot slower than the native D3D12 driver.

Mmozo78 2020-12-15 github

It's working on NVIDIA too, not only on AMD.
https://youtu.be/44B7KpD1UmA

KK0bin 2020-12-15 github

It'll work for a short while and then hang your GPU on Nvidia.

Mmozo78 2020-12-15 github

Yes it's problematic but is working somehow.

DLLs