diff options
author | Connor Abbott <[email protected]> | 2016-04-08 16:22:13 -0400 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-05-05 16:19:41 -0700 |
commit | 8a7fe634d254acd7f4d0896449340f528feef826 (patch) | |
tree | 3659aa31a111752e645489286224ec86e048ba87 | |
parent | b593737ed8349b280fa29242c35f565b59ab3025 (diff) |
nir/lower_outputs_to_temporaries: fixup for new foreach_block()
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
-rw-r--r-- | src/compiler/nir/nir_lower_outputs_to_temporaries.c | 28 |
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 d5a0737cf6a..21bc15b70b8 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. |