radv: Do not set SX DISABLE bits for RB+ with unused surfaces.
The extra bits in CB_SHADER_MASK break dual source blending in SkQP on a Stoney device. However:
- As far as I can tell, some other dual source blend tests are passing before and after the change.
- A hacked around skqp passes on my Vega desktop and Raven laptop
- Getting Skqp to give any useful info or to run it outside of Android on ChromeOS is proving difficult.
However, I have confirmed 3 strategies that seem to work:
- The old radv behavior of setting CB_SHADER_MASK to 0xF
- AMDVLK: CB_SHADER_MASK = 0xFF, and the 3 RB+ regs are 0.
- radeonsi: CB_SHADER_MASK = 0xFF, but does not set DISABLE bits in SX_BLEND_OPT_CONTROL for CB 1-7.
Fixes: e9316fdf "radv: fix setting CB_SHADER_MASK for dual source blending"
Edited by Bas Nieuwenhuizen