Skip to content

ir3/a7xx: Fix FS consts corruption when other FS has zero constlen

What does this MR do and why?

ir3/a7xx: Fix FS consts corruption when other FS has zero constlen

Having zero consts in one FS may corrupt consts in follow up FSs, on such GPUs blob never has zero consts in FS. The mechanism of corruption is unknown.

Fixes geometry flickering in a number of games, including:

  • Baldur's Gate 3
  • Assasin's Creed Rogue

I stared at Baldur's Gate 3 for a while don't have better explanation of what's going on. There are no draws around affected draw that load more consts that they use, nothing out of place, but setting doing MAX(fs->constlen, 4) fixes the issue. And giving that blob doesn't set zero constlen on a740 suggests that it is indeed a hardware quirk.

Merge request reports