Skip to content

mesa/st: Fix iris regression with clip distances.

Emma Anholt requested to merge anholt/mesa:iris-regression into main

In general gallium shaders are all SSO and it's up to the driver to handle lining up varying storage between stages at draw time. However, there's a NIR option "unify_interfaces" that iris uses which applies to non-SSO (as indicated by nir->info.separate_shader) shaders and makes the inputs_read and outputs_written match up at GLSL-to-NIR link time, and then iris then avoids any lowering passes that would add new varyings.

By introducing info gathering after variant creation (because all I knew was "gallium is always SSO"), I broke the unify_interfaces link-time setup on iris. Just skip that when the unify_interfaces flag is set, and add some asserts to catch anyone trying to mix unify_interfaces with known varying-adjusting lowering passes.

Closes: #4450 (closed)

Merge request reports