nir: Make nir_lower_io_to_temporaries store an impl internally.
This changes the pass internals to work with a nir_function_impl directly rather than a nir_function. The next patch will change the API. v2: Rebase after framebuffer fetch landed. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
parent
da85b5a9f1
commit
8479b03c58
|
@ -34,7 +34,7 @@
|
|||
|
||||
struct lower_io_state {
|
||||
nir_shader *shader;
|
||||
nir_function *entrypoint;
|
||||
nir_function_impl *entrypoint;
|
||||
struct exec_list old_outputs;
|
||||
struct exec_list old_inputs;
|
||||
};
|
||||
|
@ -93,7 +93,7 @@ emit_output_copies_impl(struct lower_io_state *state, nir_function_impl *impl)
|
|||
}
|
||||
}
|
||||
}
|
||||
} else if (impl->function == state->entrypoint) {
|
||||
} else if (impl == state->entrypoint) {
|
||||
nir_cursor cursor = nir_before_block(nir_start_block(impl));
|
||||
emit_copies(cursor, state->shader, &state->old_outputs,
|
||||
&state->shader->outputs);
|
||||
|
@ -114,7 +114,7 @@ emit_output_copies_impl(struct lower_io_state *state, nir_function_impl *impl)
|
|||
static void
|
||||
emit_input_copies_impl(struct lower_io_state *state, nir_function_impl *impl)
|
||||
{
|
||||
if (impl->function == state->entrypoint) {
|
||||
if (impl == state->entrypoint) {
|
||||
nir_cursor cursor = nir_before_block(nir_start_block(impl));
|
||||
emit_copies(cursor, state->shader, &state->old_inputs,
|
||||
&state->shader->inputs);
|
||||
|
@ -157,7 +157,7 @@ nir_lower_io_to_temporaries(nir_shader *shader, nir_function *entrypoint,
|
|||
return;
|
||||
|
||||
state.shader = shader;
|
||||
state.entrypoint = entrypoint;
|
||||
state.entrypoint = entrypoint->impl;
|
||||
|
||||
if (inputs)
|
||||
exec_list_move_nodes_to(&shader->inputs, &state.old_inputs);
|
||||
|
|
Loading…
Reference in New Issue