This should be fine. It was, effectively, happening in the back-end so moving it later is fine.
Reviewed-by: Jason Ekstrand <[email protected]> On Wed, Sep 5, 2018 at 9:11 AM Alejandro Piñeiro <[email protected]> wrote: > At this moment that lowering is using info coming from the > UniformStorage, so for the ARB_gl_spirv codepath, it needs to be done > after calling gl_nir_link_uniforms. As for the GLSL codepath it can > also be called later, we just move the call on both cases, to avoid > adding several shader->spirv_data checks, and keep the patch as small > as possible. > > This is the first patch needed to fix the following piglit tests: > > tests/spec/arb_gl_spirv/linker/uniform/multisampler.shader_test > tests/spec/arb_gl_spirv/linker/uniform/multisampler-array.shader_test > > but fixes thousands of tests when borrowing the tests from other specs > (that needs to be done manually right now). > --- > src/mesa/drivers/dri/i965/brw_link.cpp | 10 ++++++++++ > src/mesa/drivers/dri/i965/brw_program.c | 1 - > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp > b/src/mesa/drivers/dri/i965/brw_link.cpp > index 0723255dec6..2cbb1e0b879 100644 > --- a/src/mesa/drivers/dri/i965/brw_link.cpp > +++ b/src/mesa/drivers/dri/i965/brw_link.cpp > @@ -270,6 +270,16 @@ brw_link_shader(struct gl_context *ctx, struct > gl_shader_program *shProg) > gl_nir_link_assign_xfb_resources(ctx, shProg); > } > > + for (stage = 0; stage < ARRAY_SIZE(shProg->_LinkedShaders); stage++) { > + struct gl_linked_shader *shader = shProg->_LinkedShaders[stage]; > + if (!shader) > + continue; > + > + struct gl_program *prog = shader->Program; > + > + NIR_PASS_V(prog->nir, brw_nir_lower_gl_images, prog); > + } > + > /* Determine first and last stage. */ > unsigned first = MESA_SHADER_STAGES; > unsigned last = 0; > diff --git a/src/mesa/drivers/dri/i965/brw_program.c > b/src/mesa/drivers/dri/i965/brw_program.c > index ba418e45b85..f5ebd3c3b05 100644 > --- a/src/mesa/drivers/dri/i965/brw_program.c > +++ b/src/mesa/drivers/dri/i965/brw_program.c > @@ -140,7 +140,6 @@ brw_create_nir(struct brw_context *brw, > } > > NIR_PASS_V(nir, brw_nir_lower_uniforms, is_scalar); > - NIR_PASS_V(nir, brw_nir_lower_gl_images, prog); > > return nir; > } > -- > 2.14.1 > >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
