mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 02:58:05 +02:00
i965: move brw_nir_lower_gl_images call
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). Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
2a6182fe06
commit
8969777686
2 changed files with 10 additions and 1 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue