HansKristian-Work / vkd3d-proton

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

Silent Hill 2 Remake - unable to use ray tracing with AMDGPU-PRO (works with RADV) #2166

Open serhii-nakon opened 1 month ago

serhii-nakon commented 1 month ago

Please describe your issue as accurately as possible. Include screenshots or videos if relevant

Software information

Silent Hill 2 Remake, no matter, with AMDVLK it even not show switcher to enable RT Mesa 24.2.5 LLVM 19.1.2 Debian 12 Linux 6.11.1 AMDGPU-PRO 24.20.3 (links https://repo.radeon.com/amdgpu/6.2.3/ubuntu/pool/proprietary/v/vulkan-amdgpu-pro/vulkan-amdgpu-pro_24.20-2044449.22.04_amd64.deb and https://repo.radeon.com/amdgpu/6.2.3/ubuntu/pool/proprietary/v/vulkan-amdgpu-pro/vulkan-amdgpu-pro_24.20-2044449.22.04_i386.deb)

System information

Log files

radv radv.txt - default run (without changes or env variables or etc), with RT on, works fine but slowly radv_12_2.txt - run with env variable VKD3D_FEATURE_LEVEL=12_2, with RT on, works fine but slowly

pro amdvlk.txt run with env variable to preload needle driver VK_ICD_FILENAMES="/etc/vulkan/icd.d/amd_icd64.json:/etc/vulkan/icd.d/amd_icd32.json" %command%, works but no switcher to enabled RT, and RT disabled visually (compared to radv with enabled RT) amdvlk_12_2.txt run with env variables VK_ICD_FILENAMES="/etc/vulkan/icd.d/amd_icd64.json:/etc/vulkan/icd.d/amd_icd32.json" VKD3D_FEATURE_LEVEL=12_2 %command% it run, but crash in menu with those error Screenshot from 2024-10-18 19-52-03

Also both has working RT in Cyberpunk 2077 Also I checked what RT extensions has pro compare to radv - it the same Screenshot from 2024-10-18 19-57-41

serhii-nakon commented 1 month ago

I just noticed differences in logs about dxr, in radv logs it show

0130:info:d3d12_device_determine_ray_tracing_tier: DXR support enabled.
0130:info:d3d12_device_determine_ray_tracing_tier: DXR 1.1 support enabled.
0130:info:d3d12_device_caps_init_feature_level: DX Ultimate supported!

in pro it show only

0134:info:d3d12_device_determine_ray_tracing_tier: DXR support enabled.
serhii-nakon commented 1 month ago

Sorry, looks like I tried to use AMDGPU-PRO driver, not AMDVLK - but still issue, maybe I will try to check with AMDVLK too, I want to get better performance in some RT games like this.

doitsujin commented 1 month ago

Driver probably doesn't expose the vertex formats requires for 1.1 or something, there's more to it than just features. We currently don't provide an override for this and I'm not sure if doing so would be a good idea anyway.

serhii-nakon commented 1 month ago

@doitsujin Does here exist channel to contact with AMD related this issue? I have also noticed that Alan Wake 2 not start with PRO driver at all by some reason...

mbriar commented 1 month ago

Amdvlk has a github where you can report issues. Somewhat unrelated, but did you ever see any performance differences between PRO and open amdvlk on the 7900xtx? From what i understand, they should be pretty much identical since rdna3 (although that's mostly based on rumors and benchmarks I've seen)

serhii-nakon commented 1 month ago

I saw somewhere that amdgpu-pro has better rt performance compared to radv - so, I tested it in Cyberpunk and it is true. And it was easy to extract prebuilt library for Ubuntu and put it in Debian - at this time I did not know that AMD has two official vulkan drivers.

I will try latter amdvlk too.

serhii-nakon commented 1 month ago

Hello everyone, I just tried AMDVLK opensource one, and it show switcher but when I enable RT it show exactly the same error like on screenshot, here log amdvlk_real.txt Here I noticed that now it show DXR 1.1 but no string about DX Ultimate supported! like with RADV

serhii-nakon commented 1 month ago

Alan Wake 2 can not start with PRO and AMDVLK at all it freeze, and even trigger kernel driver error

[ 5657.482864] amdgpu 0000:03:00.0: amdgpu: ring gfx_0.0.0 timeout, signaled seq=301213, emitted seq=301215
[ 5657.484082] amdgpu 0000:03:00.0: amdgpu: Process information: process AlanWake2.exe pid 14644 thread vkd3d_queue pid 14711
[ 5657.484084] amdgpu 0000:03:00.0: amdgpu: GPU reset begin!
[ 5659.542085] amdgpu 0000:03:00.0: amdgpu: MES failed to respond to msg=REMOVE_QUEUE
[ 5659.542089] [drm:amdgpu_mes_unmap_legacy_queue [amdgpu]] *ERROR* failed to unmap legacy queue
[ 5659.729856] [drm:gfx_v11_0_hw_fini [amdgpu]] *ERROR* failed to halt cp gfx
[ 5659.777094] amdgpu 0000:03:00.0: amdgpu: Dumping IP State
[ 5659.779170] amdgpu 0000:03:00.0: amdgpu: Dumping IP State Completed
[ 5659.779172] amdgpu 0000:03:00.0: amdgpu: MODE1 reset
[ 5659.779174] amdgpu 0000:03:00.0: amdgpu: GPU mode1 reset
[ 5659.779222] amdgpu 0000:03:00.0: amdgpu: GPU smu mode1 reset
[ 5660.284301] amdgpu 0000:03:00.0: amdgpu: GPU reset succeeded, trying to resume
[ 5660.284491] [drm] PCIE GART of 512M enabled (table at 0x00000085FEB00000).
[ 5660.284557] [drm] VRAM is lost due to GPU reset!
[ 5660.284558] amdgpu 0000:03:00.0: amdgpu: PSP is resuming...
[ 5660.354062] amdgpu 0000:03:00.0: amdgpu: reserve 0x1300000 from 0x85fc000000 for PSP TMR
[ 5660.498576] amdgpu 0000:03:00.0: amdgpu: RAP: optional rap ta ucode is not available
[ 5660.498578] amdgpu 0000:03:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
[ 5660.498580] amdgpu 0000:03:00.0: amdgpu: SMU is resuming...
[ 5660.498582] amdgpu 0000:03:00.0: amdgpu: smu driver if version = 0x0000003d, smu fw if version = 0x00000040, smu fw program = 0, smu fw version = 0x004e7e00 (78.126.0)
[ 5660.498585] amdgpu 0000:03:00.0: amdgpu: SMU driver if version not matched
[ 5660.654563] amdgpu 0000:03:00.0: amdgpu: SMU is resumed successfully!
[ 5660.656587] [drm] DMUB hardware initialized: version=0x07002A00
[ 5660.677288] amdgpu 0000:03:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[ 5660.677290] amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[ 5660.677292] amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[ 5660.677293] amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
[ 5660.677294] amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
[ 5660.677295] amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
[ 5660.677295] amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
[ 5660.677296] amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
[ 5660.677297] amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
[ 5660.677298] amdgpu 0000:03:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
[ 5660.677299] amdgpu 0000:03:00.0: amdgpu: ring sdma1 uses VM inv eng 13 on hub 0
[ 5660.677300] amdgpu 0000:03:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 8
[ 5660.677301] amdgpu 0000:03:00.0: amdgpu: ring vcn_unified_1 uses VM inv eng 1 on hub 8
[ 5660.677302] amdgpu 0000:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 4 on hub 8
[ 5660.677303] amdgpu 0000:03:00.0: amdgpu: ring mes_kiq_3.1.0 uses VM inv eng 14 on hub 0
[ 5660.690404] amdgpu 0000:03:00.0: amdgpu: recover vram bo from shadow start
[ 5660.702633] amdgpu 0000:03:00.0: amdgpu: recover vram bo from shadow done
[ 5660.702654] amdgpu 0000:03:00.0: amdgpu: GPU reset(2) succeeded!
[ 5660.703743] [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
shelterx commented 1 month ago

I'd say it's a driver issue and not vkd3d-proton, since it works with RADV and from what I heard, RT also works with Nvidia. Report it to the AMDVLK devs.

nm17 commented 1 month ago

I encounter a similar issue, but I'm not using vkd3d-proton or any similar software for that matter. I get this while using Debian on a built-in graphics card on a 7950x.