protonscr

Investigate broken WaveOps in HZD

vkd3dclosed
HansKristian-Work/vkd3d-proton#382 · opened 2020-11-13 by HansKristian-Work · updated 2020-11-29 · 3 comments · github
HHansKristian-Work 2020-11-13 github

When enabling waveops feature, we get broken rendering in HZD. Re-enable the feature when we figure it out.

Aaqxa1 2020-11-28 github

I'm not sure if this is expected, but I get a massive performance drop when WaveOps is active with HZD (with 5900x and 5700 XT, mesa-git with ACO). Reverting 0749f46d8e877ff2356b507ee50c1164197e3dcb pretty much doubles CPU performance with the in-game benchmark. Doesn't seem to be any obvious rendering differences, either.

I'm happy to open a issue if this is actually a bug.

Ddoitsujin maintainer 2020-11-29 github

How on earth would using different shaders cause CPU performance to go down?

I don't really see how this would be our bug, the game will inevitably take a different code path somewhere but if that's just less efficient then there's not an awful lot we can do on our end.

Aaqxa1 2020-11-29 github

Yeah, it's strange. It's actually faster on Linux with the no-waveops codepath than on Windows, but it's hard to tell what the "real" CPU performance is on Windows since it's GPU limited the entire time with Original settings (GPU performance is better on Linux with both codepaths, which is nice). Here's some numbers:

Linux no-waveops:
AVG/MIN/MAX
Overall:
64/20/107

AVG/95%/99%
CPU: 70/49/40

GPU: 77/60/39

Linux waveops:
AVG/MIN/MAX
47/22/77

CPU:
48/32/28

GPU:
68/49/35

Windows 10 (real D3D12):

AVG/MIN/MAX
Overall:
55/26/130

CPU:
55/49/46

GPU:
56/50/47

I'll check to see what it looks like without a GPU bottleneck on Windows.

EDIT: Short answer is that HZD is still GPU bottlenecked even at 50% render resolution, so no CPU performance issues on Windows.

50% render scale (CPU FPS):
Linux nowaveops = 71
Linux waveops = 53
Windows 10 = 90

Nothing extracted yet.