mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
st/glsl_to_nir: disable io lowering to temps for tess
Lowering these to temps makes a big mess, and results in some piglit test failures. Also the radeonsi backend (the only backend to support tess) has support for indirects so there is no need to lower them anyway. Fixes the following piglit tests on radeonsi: tests/spec/arb_tessellation_shader/execution/variable-indexing/tes-input-array-vec3-index-rd.shader_test tests/spec/arb_tessellation_shader/execution/variable-indexing/tes-input-array-vec4-index-rd.shader_test Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
af10ce21ff
commit
f69cbb2b53
1 changed files with 8 additions and 4 deletions
|
|
@ -490,9 +490,12 @@ st_nir_get_mesa_program(struct gl_context *ctx,
|
|||
set_st_program(prog, shader_program, nir);
|
||||
prog->nir = nir;
|
||||
|
||||
NIR_PASS_V(nir, nir_lower_io_to_temporaries,
|
||||
nir_shader_get_entrypoint(nir),
|
||||
true, true);
|
||||
if (nir->info.stage != MESA_SHADER_TESS_CTRL &&
|
||||
nir->info.stage != MESA_SHADER_TESS_EVAL) {
|
||||
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);
|
||||
|
|
@ -665,7 +668,8 @@ st_finalize_nir(struct st_context *st, struct gl_program *prog,
|
|||
|
||||
NIR_PASS_V(nir, nir_split_var_copies);
|
||||
NIR_PASS_V(nir, nir_lower_var_copies);
|
||||
if (nir->info.stage != MESA_SHADER_TESS_CTRL)
|
||||
if (nir->info.stage != MESA_SHADER_TESS_CTRL &&
|
||||
nir->info.stage != MESA_SHADER_TESS_EVAL)
|
||||
NIR_PASS_V(nir, nir_lower_io_arrays_to_elements_no_indirects);
|
||||
|
||||
if (nir->info.stage == MESA_SHADER_VERTEX) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue