Skip to content

radv: Do not set SX DISABLE bits for RB+ with unused surfaces.

Bas Nieuwenhuizen requested to merge bnieuwenhuizen/mesa:skqp-fix into master

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

Merge request reports