[Mesa-dev] [PATCH 7/8] i965: Inline store_output helper in quads workaround code.
Jason Ekstrand
jason at jlekstrand.net
Wed Jan 4 16:52:34 UTC 2017
I need to read 8 for real but the rest seems sensible. 1-7 are
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
On Jan 4, 2017 10:49, "Jason Ekstrand" <jason at jlekstrand.net> wrote:
> On Jan 4, 2017 05:08, "Kenneth Graunke" <kenneth at whitecape.org> wrote:
>
> 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 at whitecape.org>
> ---
> .../drivers/dri/i965/brw_nir_tcs_workarounds.c | 25
> ++++++++++------------
> 1 file changed, 11 insertions(+), 14 deletions(-)
>
> 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..caf5c393a5e 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,17 @@ 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);
> +
>
>
> Extra newline?
>
> }
>
> void
> --
> 2.11.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170104/7adf7aa4/attachment.html>
More information about the mesa-dev
mailing list