mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 06:20:09 +01:00
glsl: always lower non-TCS outputs to temporaries
It seems only radeonsi and v3d sets CAN_READ_OUTPUTS/SupportsReadingOutputs, and v3d has lower_all_io_to_temps=true. It looks like radeonsi basically lowers the outputs to temporaries in the backend. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25590>
This commit is contained in:
parent
969cb02de7
commit
767ea18517
2 changed files with 4 additions and 2 deletions
|
|
@ -1249,7 +1249,8 @@ preprocess_shader(const struct gl_constants *consts,
|
|||
NIR_PASS(_, nir, nir_lower_io_to_temporaries,
|
||||
nir_shader_get_entrypoint(nir),
|
||||
true, true);
|
||||
} else if (nir->info.stage == MESA_SHADER_FRAGMENT ||
|
||||
} else if (nir->info.stage == MESA_SHADER_TESS_EVAL ||
|
||||
nir->info.stage == MESA_SHADER_FRAGMENT ||
|
||||
!consts->SupportsReadingOutputs) {
|
||||
NIR_PASS(_, nir, nir_lower_io_to_temporaries,
|
||||
nir_shader_get_entrypoint(nir),
|
||||
|
|
|
|||
|
|
@ -143,7 +143,8 @@ load_glsl(unsigned num_files, char *const *files, gl_shader_stage stage)
|
|||
nir->info.stage == MESA_SHADER_GEOMETRY) {
|
||||
NIR_PASS_V(nir, nir_lower_io_to_temporaries,
|
||||
nir_shader_get_entrypoint(nir), true, true);
|
||||
} else if (nir->info.stage == MESA_SHADER_FRAGMENT) {
|
||||
} else if (nir->info.stage == MESA_SHADER_TESS_EVAL ||
|
||||
nir->info.stage == MESA_SHADER_FRAGMENT) {
|
||||
NIR_PASS_V(nir, nir_lower_io_to_temporaries,
|
||||
nir_shader_get_entrypoint(nir), true, false);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue