HansKristian-Work / vkd3d-proton

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

Artifacts and missing objects with some 3DMark d3d12 tests #247

Open MegWATTT opened 3 years ago

MegWATTT commented 3 years ago

3DMark have 2 main d3d12 tests, without counting the API overhead test (which works fine) and the PortRoyal test (need DXR). Those are TimeSpy and NightRaid. Those 2 benchs have a demo, 2 graphics tests and 1 cpu test.

TimeSpy demo and 2 graphics tests have severe bloc artifacts. It seems a lot of objects are not drawn (can't be sure due to all artifacts). 2020 08 09-20 17_01

TimeSpy CPU test doesn't have those artifacts but some objects are not drawn.

NightRaid demo and graphics test 2 seems to render fine. However, a lot of objects are not drawn on graphics test 1 and cpu test. It looks like this on graphics test 1: 2020 08 09-20 25_02

Here are vkd3d log files for problematic tests. I stopped the benchmark around 1 second after starting it, to avoid having 100mb logfiles. The log level was set to "warn". timespy_demo_vkd3d.log timespy_cpu_vkd3d.log nightraid_gfx1_vkd3d.log nightraid_cpu_vkd3d.log

Tested on commit 9560612bd723cd3713963855ecd856319391d59f, on a RX 570 on Windows 10, with latest drivers. It may be possible to test on Linux by applying this patch to Wine (haven't tested).

To reproduce on Windows, I've copied d3d12.dll and dxgi.dll from latest stable DXVK to "3DMark/dlc/time-spy-test/bin/x64" and "3DMark/dlc/night-raid-test/bin/x64". Putting those files on the launcher directory can cause issues.

oscarbg commented 3 years ago

curious if anybody has tested new DX12 3DMark Wild life benchmark with latest VKD3D on Windows or Linux?

MegWATTT commented 3 years ago

It doesn't work right now. (At least for me) Note that Wild Life is not a d3d12 benchmark but a Vulkan benchmark, so it's not related to this bug report.

oscarbg commented 3 years ago

@MegWATTT sorry for mistake.. thought really was dx12.. and thanks for sharing working status anyway..

oscarbg commented 3 years ago

just retested with latest VKD3D master and sadly no improvements/changes since issue was opened more than half a year ago..

doitsujin commented 3 years ago

I guess the real question is whether this works on Nvidia or RADV.

oscarbg commented 3 years ago

@doitsujin forgot to say that tested on both NV and AMD GPU (Titan V and RX Vega) using latest drivers but on Windows.. rendering bugs on vendors are almost equal i.e. missing objects and showing mostly enviromental cube map background, etc.. Nvidia is a little better in that the first screenshot shared here hasn't the all black pixel color areas and you see the sky/enviroment.. the second screenshot is equally bad on Nvidia and AMD.. didn't test on Linux with RADV, but can't see a reason RADV would work fine.. also anyway NV on Linux will be broken as Win/Lin NV VK drivers rendering "rarely" differs..

oscarbg commented 1 year ago

@MegWATTT @doitsujin seems this bugs have all been solved and this demos now render fine! using VKD3D master: https://github.com/HansKristian-Work/vkd3d-proton/commit/5b73139f182d86cd58a757e4b5f0d4cfad96d319 tested on Win: Nvidia 970 with 516.63

Blisto91 commented 1 year ago

@MegWATTT Friendly ping. Are you able to confirm what oscarbg wrote above?

MegWATTT commented 1 year ago

I haven't tested on Windows lately. I tested on Proton after copying d3dcompiler_4*.dll files from "3DMark/bin/x64/" directory to the time spy binaries directory. It has glitches, at least on Proton experimental. See https://github.com/ValveSoftware/Proton/issues/4034#issuecomment-1484178193 on Proton bug tracker. Tested on a RX 6700 on both RADV and AMDVLK.

MegWATTT commented 1 year ago

I also tested on ANV with a Skylake CPU (gen9, HD 520). I don't have any hang but I have the same blocky artifacts as the first picture in the first post.

oscarbg commented 1 year ago

Will retry in a few weeks if “stars align” and can purchase a “cheap”(msrp) 4070 or 4060 ti..

niobium93 commented 1 month ago

On my Radeon RX 5700 XT with Mesa 24.0.8 Time Spy shows a loading screen that looks too bright, then briefly starts rendering the scene with severe graphical corruption, before causing a GPU reset a second later. If I run 3DMark with RADV_PERFTEST=emulate_rt set, I can run Port Royal too, but it fails in the exact same way as Time Spy. Night Raid, also a D3D12 test, runs perfectly, however. The Sampler Feedback feature test runs, but shows graphical corruption in the form of black squares all over the place on the second pass which actually uses the Sampler Feedback feature. The first pass which uses a manual approach for texture space shading runs fine.

Would it help to run using a debug build or some debug settings for vkd3d and provide logs of some sort? The vulkan validation layer maybe? I could test and provide logs if requested.