mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
pan/bi: Skip nir_opt_move/sink for blend shaders
Otherwise the dual-source input load is moved further down in the shader, so the registers can get clobbered before then. Fixes text not being visible in Alacritty. Fixes:52863f2e60("pan/bi: Enable all nir_opt_move/sink optimizations") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10089> (cherry picked from commitab3a72cc20)
This commit is contained in:
parent
7a8e3ca3be
commit
a24924bb60
2 changed files with 9 additions and 6 deletions
|
|
@ -463,7 +463,7 @@
|
|||
"description": "pan/bi: Skip nir_opt_move/sink for blend shaders",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "52863f2e60fae865ef6a2a2e5a385b252c73364c"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2814,7 +2814,7 @@ should_split_wrmask(const nir_instr *instr, UNUSED const void *data)
|
|||
}
|
||||
|
||||
static void
|
||||
bi_optimize_nir(nir_shader *nir)
|
||||
bi_optimize_nir(nir_shader *nir, bool is_blend)
|
||||
{
|
||||
bool progress;
|
||||
unsigned lower_flrp = 16 | 32 | 64;
|
||||
|
|
@ -2908,13 +2908,16 @@ bi_optimize_nir(nir_shader *nir)
|
|||
NIR_PASS(progress, nir, nir_lower_alu_to_scalar, NULL, NULL);
|
||||
|
||||
/* Backend scheduler is purely local, so do some global optimizations
|
||||
* to reduce register pressure */
|
||||
* to reduce register pressure. Skip the passes for blend shaders to
|
||||
* workaround the lack of precolouring. */
|
||||
nir_move_options move_all =
|
||||
nir_move_const_undef | nir_move_load_ubo | nir_move_load_input |
|
||||
nir_move_comparisons | nir_move_copies | nir_move_load_ssbo;
|
||||
|
||||
NIR_PASS_V(nir, nir_opt_sink, move_all);
|
||||
NIR_PASS_V(nir, nir_opt_move, move_all);
|
||||
if (!is_blend) {
|
||||
NIR_PASS_V(nir, nir_opt_sink, move_all);
|
||||
NIR_PASS_V(nir, nir_opt_move, move_all);
|
||||
}
|
||||
|
||||
NIR_PASS(progress, nir, nir_lower_load_const_to_scalar);
|
||||
|
||||
|
|
@ -3046,7 +3049,7 @@ bifrost_compile_shader_nir(nir_shader *nir,
|
|||
// TODO: re-enable when fp16 is flipped on
|
||||
// NIR_PASS_V(nir, nir_lower_mediump_outputs);
|
||||
|
||||
bi_optimize_nir(nir);
|
||||
bi_optimize_nir(nir, ctx->inputs->is_blend);
|
||||
|
||||
NIR_PASS_V(nir, pan_nir_reorder_writeout);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue