mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
i965: Inline store_output helper in quads workaround code.
It's only used in one place, it ignores the offset parameter currently, and I want to add more parameters...at which point, passing in a bunch of integers seems less obvious than writing it out. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
311b1f0a98
commit
31d9de58ab
1 changed files with 10 additions and 14 deletions
|
|
@ -87,18 +87,6 @@ load_output(nir_builder *b, int num_components, int offset)
|
|||
return &load->dest.ssa;
|
||||
}
|
||||
|
||||
static inline void
|
||||
store_output(nir_builder *b, nir_ssa_def *value, int offset, unsigned comps)
|
||||
{
|
||||
nir_intrinsic_instr *store =
|
||||
nir_intrinsic_instr_create(b->shader, nir_intrinsic_store_output);
|
||||
store->num_components = comps;
|
||||
nir_intrinsic_set_write_mask(store, (1u << comps) - 1);
|
||||
store->src[0] = nir_src_for_ssa(value);
|
||||
store->src[1] = nir_src_for_ssa(nir_imm_int(b, 0));
|
||||
nir_builder_instr_insert(b, &store->instr);
|
||||
}
|
||||
|
||||
static void
|
||||
emit_quads_workaround(nir_builder *b, nir_block *block)
|
||||
{
|
||||
|
|
@ -118,8 +106,16 @@ emit_quads_workaround(nir_builder *b, nir_block *block)
|
|||
/* Fill out the new then-block */
|
||||
b->cursor = nir_after_cf_list(&if_stmt->then_list);
|
||||
|
||||
store_output(b, nir_bcsel(b, nir_fge(b, nir_imm_float(b, 1.0f), inner),
|
||||
nir_imm_float(b, 2.0f), inner), 0, 2);
|
||||
inner = nir_bcsel(b, nir_fge(b, nir_imm_float(b, 1.0f), inner),
|
||||
nir_imm_float(b, 2.0f), inner);
|
||||
|
||||
nir_intrinsic_instr *store =
|
||||
nir_intrinsic_instr_create(b->shader, nir_intrinsic_store_output);
|
||||
store->num_components = 2;
|
||||
nir_intrinsic_set_write_mask(store, WRITEMASK_XY);
|
||||
store->src[0] = nir_src_for_ssa(inner);
|
||||
store->src[1] = nir_src_for_ssa(nir_imm_int(b, 0));
|
||||
nir_builder_instr_insert(b, &store->instr);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue