load = nir_intrinsic_instr_create(b->shader, nir_intrinsic_load_input);
load->num_components = 4;
- load->const_index[0] = in->data.driver_location;
+ nir_intrinsic_set_base(load, in->data.driver_location);
load->src[0] = nir_src_for_ssa(nir_imm_int(b, 0));
- nir_ssa_dest_init(&load->instr, &load->dest, 4, NULL);
+ nir_ssa_dest_init(&load->instr, &load->dest, 4, 32, NULL);
nir_builder_instr_insert(b, &load->instr);
return &load->dest.ssa;
}
static bool
-nir_lower_two_sided_color_block(nir_block *block, void *void_state)
+nir_lower_two_sided_color_block(nir_block *block,
+ lower_2side_state *state)
{
- lower_2side_state *state = void_state;
nir_builder *b = &state->b;
- nir_foreach_instr_safe(block, instr) {
+ nir_foreach_instr_safe(instr, block) {
if (instr->type != nir_instr_type_intrinsic)
continue;
for (idx = 0; idx < state->colors_count; idx++) {
unsigned drvloc =
state->colors[idx].front->data.driver_location;
- if (intr->const_index[0] == drvloc) {
+ if (nir_intrinsic_base(intr) == drvloc) {
assert(nir_src_as_const_value(intr->src[0]));
break;
}
nir_builder_init(b, impl);
- nir_foreach_block(impl, nir_lower_two_sided_color_block, state);
+ nir_foreach_block(block, impl) {
+ nir_lower_two_sided_color_block(block, state);
+ }
nir_metadata_preserve(impl, nir_metadata_block_index |
nir_metadata_dominance);
if (setup_inputs(&state) != 0)
return;
- nir_foreach_function(shader, function) {
+ nir_foreach_function(function, shader) {
if (function->impl)
nir_lower_two_sided_color_impl(function->impl, &state);
}