st/mesa: Re-assign vs in locations after updating nir info for ffvp/ARB_vp
authorDanylo Piliaiev <danylo.piliaiev@globallogic.com>
Mon, 20 Apr 2020 14:17:53 +0000 (17:17 +0300)
committerMarge Bot <eric+marge@anholt.net>
Tue, 21 Apr 2020 11:16:41 +0000 (11:16 +0000)
After call to nir_shader_gather_info - inputs_read may have changed so
st_nir_assign_vs_in_locations should be called for shader to remain in
sync with vbo state.

Fixes piglit tests:
  gl-1.0-fpexceptions
  gl-1.1-color-material-unused-normal-array
  arb_vertex_program-unused-attributes
regression on several gallium drivers.

Fixes: d684fb37bfbc47d098158cb03c0672119a4469fe
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4645>

src/mesa/state_tracker/st_program.c

index fa4dbfbcb8c5891a504aaa30f5bcb60dd94ec287..54e9debf936fbd3194ecff01a4697b46757f4907 100644 (file)
@@ -535,6 +535,7 @@ st_translate_vertex_program(struct st_context *st,
           */
          nir_shader_gather_info(stp->Base.nir,
                                 nir_shader_get_entrypoint(stp->Base.nir));
+         st_nir_assign_vs_in_locations(stp->Base.nir);
          stp->Base.info = stp->Base.nir->info;
 
          /* For st_draw_feedback, we need to generate TGSI too if draw doesn't