From: Kenneth Graunke Date: Wed, 14 Dec 2016 03:50:25 +0000 (-0800) Subject: i965: Inline store_output helper in quads workaround code. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=31d9de58abbe25229956355b622b9699dffd2f7f;p=mesa.git 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 Reviewed-by: Jason Ekstrand --- diff --git a/src/mesa/drivers/dri/i965/brw_nir_tcs_workarounds.c b/src/mesa/drivers/dri/i965/brw_nir_tcs_workarounds.c index 3f94f631f73..154be3b1125 100644 --- a/src/mesa/drivers/dri/i965/brw_nir_tcs_workarounds.c +++ b/src/mesa/drivers/dri/i965/brw_nir_tcs_workarounds.c @@ -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