Skip to content

glsl: switch all drivers to only using the NIR loop unroller and delete the GLSL IR loop unrolling code

Timothy Arceri requested to merge tarceri/mesa:remove_glsl_ir_loop_unroll into main

The old GLSL IR unrolling code is known to be buggy and is also very slow to run.

At this point it seems some drivers were either using both without realizing the problems the old code could cause or in some cases not using the NIR unroller at all without realising, as they called the nir unroller in their backend optimisation loop but never set the iteration limit meaning it did nothing.

@anholt I assume this MR will be of interest to you 😄

Todo:

  • Add EmitNoIndirectSampler support to NIR loop unroll
  • Add support for removing unreachable loop terminators in NIR loop unroll !16399 (merged)
  • Fix up the force_indirect_unrolling settings for nv30
  • Fix up the force_indirect_unrolling settings for nv50
  • Fix up the force_indirect_unrolling settings for nvc0
  • Resolve a single llvmpipe regression (not a regression just exposed existing bug, added to fail list)
  • Resolve a number of what appear related regressions on lima
Edited by Timothy Arceri

Merge request reports