vc4: Enforce one-uniform-per-instruction after optimization.
This lets us more intelligently decide which uniform values should be put into temporaries, by choosing the most reused values to push to temps first. total uniforms in shared programs: 13457 -> 13433 (-0.18%) uniforms in affected programs: 1524 -> 1500 (-1.57%) total instructions in shared programs: 40198 -> 40019 (-0.45%) instructions in affected programs: 6027 -> 5848 (-2.97%) I noticed this opportunity because with the NIR work, some programs were happening to make different uniform copy propagation choices that significantly increased instruction counts.
- src/gallium/drivers/vc4/Makefile.sources 1 addition, 0 deletionssrc/gallium/drivers/vc4/Makefile.sources
- src/gallium/drivers/vc4/vc4_opt_copy_propagation.c 1 addition, 14 deletionssrc/gallium/drivers/vc4/vc4_opt_copy_propagation.c
- src/gallium/drivers/vc4/vc4_program.c 17 additions, 33 deletionssrc/gallium/drivers/vc4/vc4_program.c
- src/gallium/drivers/vc4/vc4_qir.c 12 additions, 3 deletionssrc/gallium/drivers/vc4/vc4_qir.c
- src/gallium/drivers/vc4/vc4_qir.h 2 additions, 0 deletionssrc/gallium/drivers/vc4/vc4_qir.h
- src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c 176 additions, 0 deletionssrc/gallium/drivers/vc4/vc4_qir_lower_uniforms.c