mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 15:40:11 +01:00
spirv/cfg: Make the builder fully capable for both walks
We were only initializing vtn_builder::func for the pre-walk where we build the CFG. We were only initializing the nir_builder for the later walk through the instructions even though were were setting b->cursor for the pre-walk. Let's set both both places so that everything is consistent. This useful because we handle OpFunctionParameter in the pre-walk and we're going to need to be able to emit instructions. Acked-by: Rob Clark <robdclark@gmail.com> Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
3fc3798677
commit
58799b6a5b
1 changed files with 2 additions and 0 deletions
|
|
@ -95,6 +95,7 @@ vtn_cfg_handle_prepass_instruction(struct vtn_builder *b, SpvOp opcode,
|
|||
func->return_type = func_type->return_type->type;
|
||||
|
||||
b->func->impl = nir_function_impl_create(func);
|
||||
nir_builder_init(&b->nb, func->impl);
|
||||
b->nb.cursor = nir_before_cf_list(&b->func->impl->body);
|
||||
|
||||
b->func_param_idx = 0;
|
||||
|
|
@ -891,6 +892,7 @@ vtn_function_emit(struct vtn_builder *b, struct vtn_function *func,
|
|||
vtn_instruction_handler instruction_handler)
|
||||
{
|
||||
nir_builder_init(&b->nb, func->impl);
|
||||
b->func = func;
|
||||
b->nb.cursor = nir_after_cf_list(&func->impl->body);
|
||||
b->has_loop_continue = false;
|
||||
b->phi_table = _mesa_hash_table_create(b, _mesa_hash_pointer,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue