From 261d62de33b6192ec31f034a9897d034a37fa582 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 19 Apr 2016 21:20:26 -0700 Subject: [PATCH] anv/lower_push_constants: fixup for nir_foreach_block() Signed-off-by: Jason Ekstrand --- .../vulkan/anv_nir_lower_push_constants.c | 46 +++++++++---------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/intel/vulkan/anv_nir_lower_push_constants.c b/src/intel/vulkan/anv_nir_lower_push_constants.c index 7f875eba97c..2d841009c6f 100644 --- a/src/intel/vulkan/anv_nir_lower_push_constants.c +++ b/src/intel/vulkan/anv_nir_lower_push_constants.c @@ -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; + } + } } }