Skip to content

v3d: Teach nir_schedule about geometry shaders

Neil Roberts requested to merge nroberts/mesa:nroberts/v3d-scheduler-gs into master

Adds two fixes to nir_schedule to handle geometry shaders. These are:

  • Make it aware of nir_intrinsic_load_per_vertex_input. Currently it doesn’t know what to do with these so it was ensuring that it doesn’t change their order. They can be freely reordered like nir_intrinsic_load_input.
  • Let it know that the memory for inputs and outputs isn’t shared for GS. The code currently tries to ensure that all input loads happen before all output writes. This also has the side effect that the outputs can’t be rearranged and makes the scheduling very limited considering that GSs often have a lot of inputs. The hardware doesn’t need this for GS, only for VS, because the inputs and outputs are stored in different memory segments.

Merge request reports