mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-30 16:30:10 +01:00
nir/lower_shader_calls: Remat derefs earlier
spill_ssa_defs_and_lower_shader_calls can insert phis as well which can
make nir_opt_shrink_stores crash.
Fixes: 200e551c ("nir/lower_shader_calls: Remat derefs before lowering resumes")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9003
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23007>
This commit is contained in:
parent
c0a3954538
commit
40653f0783
1 changed files with 7 additions and 7 deletions
|
|
@ -1179,13 +1179,6 @@ lower_resume(nir_shader *shader, int call_idx)
|
|||
nir_function_impl *impl = nir_shader_get_entrypoint(shader);
|
||||
nir_instr *resume_instr = find_resume_instr(impl, call_idx);
|
||||
|
||||
/* Deref chains contain metadata information that is needed by other passes
|
||||
* after this one. If we don't rematerialize the derefs in the blocks where
|
||||
* they're used here, the following lowerings will insert phis which can
|
||||
* prevent other passes from chasing deref chains.
|
||||
*/
|
||||
nir_rematerialize_derefs_in_use_blocks_impl(impl);
|
||||
|
||||
if (duplicate_loop_bodies(impl, resume_instr)) {
|
||||
nir_validate_shader(shader, "after duplicate_loop_bodies in "
|
||||
"nir_lower_shader_calls");
|
||||
|
|
@ -1941,6 +1934,13 @@ nir_lower_shader_calls(nir_shader *shader,
|
|||
NIR_PASS(progress, shader, nir_opt_cse);
|
||||
}
|
||||
|
||||
/* Deref chains contain metadata information that is needed by other passes
|
||||
* after this one. If we don't rematerialize the derefs in the blocks where
|
||||
* they're used here, the following lowerings will insert phis which can
|
||||
* prevent other passes from chasing deref chains.
|
||||
*/
|
||||
nir_rematerialize_derefs_in_use_blocks_impl(impl);
|
||||
|
||||
/* Save the start point of the call stack in scratch */
|
||||
unsigned start_call_scratch = shader->scratch_size;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue