vc4: use intrinsic builders

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8295>
This commit is contained in:
Christian Gmeiner
2021-01-02 08:51:29 +01:00
committed by Marge Bot
parent 3d9c5d8a7d
commit 241fb75485
3 changed files with 15 additions and 41 deletions
+7 -11
View File
@@ -291,19 +291,15 @@ static void *vc4_get_yuv_fs(struct pipe_context *pctx, int cpp)
y_offset = nir_imul(&b, y, stride);
}
nir_intrinsic_instr *load =
nir_intrinsic_instr_create(b.shader, nir_intrinsic_load_ubo);
load->num_components = 1;
nir_ssa_dest_init(&load->instr, &load->dest, load->num_components, 32, NULL);
load->src[0] = nir_src_for_ssa(one);
load->src[1] = nir_src_for_ssa(nir_iadd(&b, x_offset, y_offset));
nir_intrinsic_set_align(load, 4, 0);
nir_intrinsic_set_range_base(load, 0);
nir_intrinsic_set_range(load, ~0);
nir_builder_instr_insert(&b, &load->instr);
nir_ssa_def *load =
nir_load_ubo(&b, 1, 32, one, nir_iadd(&b, x_offset, y_offset),
.align_mul = 4,
.align_offset = 0,
.range_base = 0,
.range = ~0);
nir_store_var(&b, color_out,
nir_unpack_unorm_4x8(&b, &load->dest.ssa),
nir_unpack_unorm_4x8(&b, load),
0xf);
struct pipe_shader_state shader_tmpl = {
+4 -17
View File
@@ -57,15 +57,8 @@ blend_depends_on_dst_color(struct vc4_compile *c)
static nir_ssa_def *
vc4_nir_get_dst_color(nir_builder *b, int sample)
{
nir_intrinsic_instr *load =
nir_intrinsic_instr_create(b->shader,
nir_intrinsic_load_input);
load->num_components = 1;
nir_intrinsic_set_base(load, VC4_NIR_TLB_COLOR_READ_INPUT + sample);
load->src[0] = nir_src_for_ssa(nir_imm_int(b, 0));
nir_ssa_dest_init(&load->instr, &load->dest, 1, 32, NULL);
nir_builder_instr_insert(b, &load->instr);
return &load->dest.ssa;
return nir_load_input(b, 1, 32, nir_imm_int(b, 0),
.base = VC4_NIR_TLB_COLOR_READ_INPUT + sample);
}
static nir_ssa_def *
@@ -522,14 +515,8 @@ vc4_nir_store_sample_mask(struct vc4_compile *c, nir_builder *b,
sample_mask->data.driver_location = c->s->num_outputs++;
sample_mask->data.location = FRAG_RESULT_SAMPLE_MASK;
nir_intrinsic_instr *intr =
nir_intrinsic_instr_create(c->s, nir_intrinsic_store_output);
intr->num_components = 1;
nir_intrinsic_set_base(intr, sample_mask->data.driver_location);
intr->src[0] = nir_src_for_ssa(val);
intr->src[1] = nir_src_for_ssa(nir_imm_int(b, 0));
nir_builder_instr_insert(b, &intr->instr);
nir_store_output(b, val, nir_imm_int(b, 0),
.base = sample_mask->data.driver_location);
}
static void
+4 -13
View File
@@ -188,19 +188,10 @@ vc4_nir_lower_vertex_attr(struct vc4_compile *c, nir_builder *b,
* shader by ntq_setup_inputs().
*/
nir_ssa_def *vpm_reads[4];
for (int i = 0; i < align(attr_size, 4) / 4; i++) {
nir_intrinsic_instr *intr_comp =
nir_intrinsic_instr_create(c->s,
nir_intrinsic_load_input);
intr_comp->num_components = 1;
nir_intrinsic_set_base(intr_comp, nir_intrinsic_base(intr));
nir_intrinsic_set_component(intr_comp, i);
intr_comp->src[0] = nir_src_for_ssa(nir_imm_int(b, 0));
nir_ssa_dest_init(&intr_comp->instr, &intr_comp->dest, 1, 32, NULL);
nir_builder_instr_insert(b, &intr_comp->instr);
vpm_reads[i] = &intr_comp->dest.ssa;
}
for (int i = 0; i < align(attr_size, 4) / 4; i++)
vpm_reads[i] = nir_load_input(b, 1, 32, nir_imm_int(b, 0),
.base = nir_intrinsic_base(intr),
.component = i);
bool format_warned = false;
const struct util_format_description *desc =