st/glsl_to_nir: use nir_shader_gather_info()
Use the NIR helper rather than the GLSL IR helper to get in/out masks. This allows us to ignore varyings removed by NIR optimisations. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
c980a3aa31
commit
36be8c2fcf
|
@ -273,16 +273,12 @@ st_glsl_to_nir(struct st_context *st, struct gl_program *prog,
|
|||
*/
|
||||
_mesa_associate_uniform_storage(st->ctx, shader_program, prog, true);
|
||||
|
||||
st_set_prog_affected_state_flags(prog);
|
||||
|
||||
NIR_PASS_V(nir, nir_lower_io_to_temporaries,
|
||||
nir_shader_get_entrypoint(nir),
|
||||
true, true);
|
||||
NIR_PASS_V(nir, nir_lower_global_vars_to_local);
|
||||
NIR_PASS_V(nir, nir_split_var_copies);
|
||||
NIR_PASS_V(nir, nir_lower_var_copies);
|
||||
NIR_PASS_V(nir, st_nir_lower_builtin);
|
||||
NIR_PASS_V(nir, nir_lower_atomics, shader_program);
|
||||
|
||||
/* fragment shaders may need : */
|
||||
if (stage == MESA_SHADER_FRAGMENT) {
|
||||
|
@ -309,6 +305,16 @@ st_glsl_to_nir(struct st_context *st, struct gl_program *prog,
|
|||
}
|
||||
}
|
||||
|
||||
NIR_PASS_V(nir, nir_lower_system_values);
|
||||
|
||||
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
|
||||
prog->info = nir->info;
|
||||
|
||||
st_set_prog_affected_state_flags(prog);
|
||||
|
||||
NIR_PASS_V(nir, st_nir_lower_builtin);
|
||||
NIR_PASS_V(nir, nir_lower_atomics, shader_program);
|
||||
|
||||
if (st->ctx->_Shader->Flags & GLSL_DUMP) {
|
||||
_mesa_log("\n");
|
||||
_mesa_log("NIR IR for linked %s program %d:\n",
|
||||
|
@ -394,8 +400,6 @@ st_finalize_nir(struct st_context *st, struct gl_program *prog,
|
|||
st_nir_assign_uniform_locations(prog, shader_program,
|
||||
&nir->uniforms, &nir->num_uniforms);
|
||||
|
||||
NIR_PASS_V(nir, nir_lower_system_values);
|
||||
|
||||
if (screen->get_param(screen, PIPE_CAP_NIR_SAMPLERS_AS_DEREF))
|
||||
NIR_PASS_V(nir, nir_lower_samplers_as_deref, shader_program);
|
||||
else
|
||||
|
@ -416,8 +420,6 @@ st_nir_get_mesa_program(struct gl_context *ctx,
|
|||
|
||||
prog->Parameters = _mesa_new_parameter_list();
|
||||
|
||||
do_set_program_inouts(shader->ir, prog, shader->Stage);
|
||||
|
||||
_mesa_copy_linked_program_data(shader_program, shader);
|
||||
_mesa_generate_parameters_list_for_uniforms(ctx, shader_program, shader,
|
||||
prog->Parameters);
|
||||
|
|
Loading…
Reference in New Issue