summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-04-19 21:19:56 -0700
committerJason Ekstrand <[email protected]>2016-04-28 15:52:17 -0700
commitbb65764a4ad5a70a4b48975480cf29e7e274a178 (patch)
tree553e6c52ba969e1673087ef77214fe1317b4d173 /src
parent621cbc0c147f67ef64255c180b84df82c692448c (diff)
anv/apply_pipeline_layout: fixup for nir_foreach_block()
Signed-off-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/intel/vulkan/anv_nir_apply_pipeline_layout.c41
1 files changed, 19 insertions, 22 deletions
diff --git a/src/intel/vulkan/anv_nir_apply_pipeline_layout.c b/src/intel/vulkan/anv_nir_apply_pipeline_layout.c
index 6b231fdaaef..dc3f989fcd0 100644
--- a/src/intel/vulkan/anv_nir_apply_pipeline_layout.c
+++ b/src/intel/vulkan/anv_nir_apply_pipeline_layout.c
@@ -50,11 +50,10 @@ add_var_binding(struct apply_pipeline_layout_state *state, nir_variable *var)
add_binding(state, var->data.descriptor_set, var->data.binding);
}
-static bool
-get_used_bindings_block(nir_block *block, void *void_state)
+static void
+get_used_bindings_block(nir_block *block,
+ struct apply_pipeline_layout_state *state)
{
- struct apply_pipeline_layout_state *state = void_state;
-
nir_foreach_instr_safe(block, instr) {
switch (instr->type) {
case nir_instr_type_intrinsic: {
@@ -97,8 +96,6 @@ get_used_bindings_block(nir_block *block, void *void_state)
continue;
}
}
-
- return true;
}
static void
@@ -211,11 +208,10 @@ lower_tex(nir_tex_instr *tex, struct apply_pipeline_layout_state *state)
tex->sampler = NULL;
}
-static bool
-apply_pipeline_layout_block(nir_block *block, void *void_state)
+static void
+apply_pipeline_layout_block(nir_block *block,
+ struct apply_pipeline_layout_state *state)
{
- struct apply_pipeline_layout_state *state = void_state;
-
nir_foreach_instr_safe(block, instr) {
switch (instr->type) {
case nir_instr_type_intrinsic: {
@@ -232,8 +228,6 @@ apply_pipeline_layout_block(nir_block *block, void *void_state)
continue;
}
}
-
- return true;
}
static void
@@ -274,9 +268,11 @@ anv_nir_apply_pipeline_layout(struct anv_pipeline *pipeline,
}
nir_foreach_function(shader, function) {
- if (function->impl)
- nir_foreach_block_call(function->impl, get_used_bindings_block,
- &state);
+ if (!function->impl)
+ continue;
+
+ nir_foreach_block(block, function->impl)
+ get_used_bindings_block(block, &state);
}
for (uint32_t set = 0; set < layout->num_sets; set++) {
@@ -332,13 +328,14 @@ anv_nir_apply_pipeline_layout(struct anv_pipeline *pipeline,
}
nir_foreach_function(shader, function) {
- if (function->impl) {
- nir_builder_init(&state.builder, function->impl);
- nir_foreach_block_call(function->impl, apply_pipeline_layout_block,
- &state);
- nir_metadata_preserve(function->impl, nir_metadata_block_index |
- nir_metadata_dominance);
- }
+ if (!function->impl)
+ continue;
+
+ nir_builder_init(&state.builder, function->impl);
+ nir_foreach_block(block, function->impl)
+ apply_pipeline_layout_block(block, &state);
+ nir_metadata_preserve(function->impl, nir_metadata_block_index |
+ nir_metadata_dominance);
}
if (map->image_count > 0) {