mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-03 06:10:30 +01:00
anv/lower_push_constants: fixup for nir_foreach_block()
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
bb65764a4a
commit
261d62de33
1 changed files with 21 additions and 25 deletions
|
|
@ -23,34 +23,30 @@
|
|||
|
||||
#include "anv_nir.h"
|
||||
|
||||
static bool
|
||||
lower_push_constants_block(nir_block *block, void *void_state)
|
||||
{
|
||||
nir_foreach_instr(block, instr) {
|
||||
if (instr->type != nir_instr_type_intrinsic)
|
||||
continue;
|
||||
|
||||
nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
|
||||
|
||||
/* TODO: Handle indirect push constants */
|
||||
if (intrin->intrinsic != nir_intrinsic_load_push_constant)
|
||||
continue;
|
||||
|
||||
assert(intrin->const_index[0] % 4 == 0);
|
||||
assert(intrin->const_index[1] == 128);
|
||||
|
||||
/* We just turn them into uniform loads with the appropreate offset */
|
||||
intrin->intrinsic = nir_intrinsic_load_uniform;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
anv_nir_lower_push_constants(nir_shader *shader)
|
||||
{
|
||||
nir_foreach_function(shader, function) {
|
||||
if (function->impl)
|
||||
nir_foreach_block_call(function->impl, lower_push_constants_block, NULL);
|
||||
if (!function->impl)
|
||||
continue;
|
||||
|
||||
nir_foreach_block(block, function->impl) {
|
||||
nir_foreach_instr(block, instr) {
|
||||
if (instr->type != nir_instr_type_intrinsic)
|
||||
continue;
|
||||
|
||||
nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
|
||||
|
||||
/* TODO: Handle indirect push constants */
|
||||
if (intrin->intrinsic != nir_intrinsic_load_push_constant)
|
||||
continue;
|
||||
|
||||
assert(intrin->const_index[0] % 4 == 0);
|
||||
assert(intrin->const_index[1] == 128);
|
||||
|
||||
/* We just turn them into uniform loads */
|
||||
intrin->intrinsic = nir_intrinsic_load_uniform;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue