Skip to content

zink: set PIPE_CAP_VALIDATE_ALL_DIRTY_STATES

Mike Blumenkrantz requested to merge zmike/mesa:zink-states into main

failing to set this yields patterns like

  • bind fs
  • bind samplerviews
  • draw
  • bind fs2
  • unbind samplerviews (eliminated)
  • draw

the eliminated unbinding of samplerviews between draws also eliminates a descriptor update, triggering various artifacts in certain corner cases (like DOOM2016 shadows)

it's possible to manage the updating during shader binding, but the detection is a bit more complex, and the cpu overhead from maintaining the current codepath with an extra pipe_context::set_sampler_views (et al) isn't high enough to warrant further investigation at this time

fixes #8252 (closed)

Fixes: 153af03b ("gallium: Add cap to request state validation for all dirty state")

Merge request reports