[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