summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConnor Abbott <cwabbott0@gmail.com>2016-04-08 16:22:13 -0400
committerJason Ekstrand <jason.ekstrand@intel.com>2016-05-05 16:19:41 -0700
commit8a7fe634d254acd7f4d0896449340f528feef826 (patch)
tree3659aa31a111752e645489286224ec86e048ba87
parentb593737ed8349b280fa29242c35f565b59ab3025 (diff)
nir/lower_outputs_to_temporaries: fixup for new foreach_block()
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
-rw-r--r--src/compiler/nir/nir_lower_outputs_to_temporaries.c28
1 files changed, 12 insertions, 16 deletions
diff --git a/src/compiler/nir/nir_lower_outputs_to_temporaries.c b/src/compiler/nir/nir_lower_outputs_to_temporaries.c
index d5a0737cf6..21bc15b70b 100644
--- a/src/compiler/nir/nir_lower_outputs_to_temporaries.c
+++ b/src/compiler/nir/nir_lower_outputs_to_temporaries.c
@@ -58,21 +58,6 @@ emit_output_copies(nir_cursor cursor, struct lower_outputs_state *state)
}
}
-static bool
-emit_output_copies_block(nir_block *block, void *state)
-{
- nir_foreach_instr(instr, block) {
- if (instr->type != nir_instr_type_intrinsic)
- continue;
-
- nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
- if (intrin->intrinsic == nir_intrinsic_emit_vertex)
- emit_output_copies(nir_before_instr(&intrin->instr), state);
- }
-
- return true;
-}
-
void
nir_lower_outputs_to_temporaries(nir_shader *shader, nir_function *entrypoint)
{
@@ -116,7 +101,18 @@ nir_lower_outputs_to_temporaries(nir_shader *shader, nir_function *entrypoint)
/* For geometry shaders, we have to emit the output copies right
* before each EmitVertex call.
*/
- nir_foreach_block_call(function->impl, emit_output_copies_block, &state);
+ nir_foreach_block(block, function->impl) {
+ nir_foreach_instr(instr, block) {
+ if (instr->type != nir_instr_type_intrinsic)
+ continue;
+
+ nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
+ if (intrin->intrinsic == nir_intrinsic_emit_vertex) {
+ emit_output_copies(nir_before_instr(&intrin->instr),
+ &state);
+ }
+ }
+ }
} else if (function == entrypoint) {
/* For all other shader types, we need to do the copies right before
* the jumps to the end block.