mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 02:58:05 +02:00
nir: consider push constant loads as always dynamically uniform
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12444>
This commit is contained in:
parent
a3110c308f
commit
884ac52eaa
1 changed files with 7 additions and 1 deletions
|
|
@ -1355,12 +1355,18 @@ nir_src_is_dynamically_uniform(nir_src src)
|
|||
if (src.ssa->parent_instr->type == nir_instr_type_load_const)
|
||||
return true;
|
||||
|
||||
/* As are uniform variables */
|
||||
if (src.ssa->parent_instr->type == nir_instr_type_intrinsic) {
|
||||
nir_intrinsic_instr *intr = nir_instr_as_intrinsic(src.ssa->parent_instr);
|
||||
/* As are uniform variables */
|
||||
if (intr->intrinsic == nir_intrinsic_load_uniform &&
|
||||
nir_src_is_dynamically_uniform(intr->src[0]))
|
||||
return true;
|
||||
/* Push constant loads always use uniform offsets. */
|
||||
if (intr->intrinsic == nir_intrinsic_load_push_constant)
|
||||
return true;
|
||||
if (intr->intrinsic == nir_intrinsic_load_deref &&
|
||||
nir_deref_mode_is(nir_src_as_deref(intr->src[0]), nir_var_mem_push_const))
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Operating together dynamically uniform expressions produces a
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue