HansKristian-Work / vkd3d-proton

Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
GNU Lesser General Public License v2.1
1.8k stars 185 forks source link

Any UE5 apps shipped as D3D12/SM6 fail to start on Windows #1866

Closed Kein closed 6 months ago

Kein commented 6 months ago

UE5 engine fails with generic RHI message DirectX 12 is not supported on your system. Try running without the -dx12 or -d3d12 command line argument. See: https://github.com/EpicGames/UnrealEngine/blob/072300df18a94f18077ca20a14224b5d99fee872/Engine/Source/Runtime/RHI/Private/Windows/WindowsDynamicRHI.cpp#L869

Software information

Any UE5 game that ships in configuration D3D12 RHI/SM6: Talos Principle 2, Only Up, The Isle,. etc

System information

Log files

dxvk.log

HansKristian-Work commented 6 months ago

It's possible they require SM 6.6 now, which Pascal does not support due to lack of compute shader derivatives. If this is a hard requirement for UE5 now I suppose I'll have to implement a workaround.

Kein commented 6 months ago

It's possible they require SM 6.6 now, which Pascal does not support due to lack of compute shader derivatives.

Sorry, in what way this is related to SM 6.6 specifically? GTX 1070 supports up to 6.7 "virtual SM" (6.5 HW). It can run any UE5.x version in any native RHI (render interface) - D3D12, Vulkan, both build with latest available SM models (SM6.x).
I dont think this is a GPU issue?

HansKristian-Work commented 6 months ago

The hardware itself doesn't really support compute shader derivatives. I assume they work around that in D3D12 driver, but NV does not expose compute_shader_derivatives in Vulkan, so I'll have to emulate it instead.

Kein commented 6 months ago

Oh I see, that makes sense.

Blisto91 commented 6 months ago

To check if it's that you can try and see if any of them start by setting up environment variable VKD3D_SHADER_MODEL with the value 6_6 They might not still start though as it is just faking it

Kein commented 6 months ago

It starts but I'm getting crash at: https://github.com/EpicGames/UnrealEngine/blob/463443057fb97f1af0d2951705324ce8818d2a55/Engine/Source/Runtime/D3D12RHI/Private/Windows/WindowsD3D12Viewport.cpp#L222

error code 80004001 but I dont see it in the list of valid D3D12/DXGI codes.

dxvk.log