daniel-schuermann / mesa

Mesa 3D graphics library (mirror; no pull requests here please)
http://mesa3d.org
135 stars 3 forks source link

SteamVR home is dimmer under ACO #157

Closed yshui closed 4 years ago

yshui commented 4 years ago

Describe the bug

The default environment of SteamVR Home is much dimmer compared to rendered with llvm. If I exit SteamVR Home, then the brightness looks normal except the controller models, which is also much dimmer than usual.

VR games seems to be unaffected (I tested Beat Saber).

Screenshots

(The blue noise-like glitch is present is both screenshot)

aco

a

llvm

b

RenderDoc capture:

I couldn't figure out how to do renderdoc capture of SteamVR. SteamVR Home doesn't want to start when ENABLE_VULKAN_RENDERDOC_CAPTURE=1 is set.

System information:

Venemo commented 4 years ago

I've just tried, and couldn't reproduce this problem with the latest aco-navi branch.

yshui commented 4 years ago

I can confirm the dimming is gone with RADV_PERFTEST=aco, but it's still there when I use RADV_PERFTEST=cswave32,pswave32,gewave32,aco

(Sorry, I forgot to mention my RADV_PERFTEST settings in the original report)

pendingchaos commented 4 years ago

ACO doesn't yet support cswave32, pswave32 and gewave32. It's probably some situation not handled in the incomplete wave32 implementation. I'm guessing sgpr spilling is broken, I think everything else would probably just be sub-optimal

Does this patch https://gist.github.com/pendingchaos/c1e389a037e2a5161ab303e0ae5b4bd9 fix it (can be applied with git am <file>)?

Venemo commented 4 years ago

For wave32 to work, we need to also adapt ACO's exec mask handling, which currently always uses the 64-bit instructions. I plan to work on that after things look good with wave64.

yshui commented 4 years ago

@pendingchaos It does not seem to fix it.

Venemo commented 4 years ago

@yshui Please use ACO in wave64 mode (the default) for now.

yshui commented 4 years ago

@Venemo OK. Thanks for your help!

pendingchaos commented 4 years ago

We recently properly implemented wave32. Does it look correct now with RADV_PERFTEST=cswave32,pswave32,gewave32,aco?

yshui commented 4 years ago

everything seems to work :+1: