<html><head></head><body><div>On Wed, 2018-05-16 at 08:44 -0700, Jason Ekstrand wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, May 16, 2018 at 4:00 AM, Iago Toral <span dir="ltr"><<a href="mailto:itoral@igalia.com" target="_blank">itoral@igalia.com</a>></span> wrote:<br><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Tue, 2018-05-15 at 15:28 -0700, Jason Ekstrand wrote:<br>
> Now that anv uses blorp_ccs_op for everything, we no longer need to<br>
> expose the ccs_ambiguate function directly.  It's much better tucked<br>
> away as an implementation detail.<br>
> ---<br>
>  src/intel/blorp/blorp.h       |  5 -----<br>
>  src/intel/blorp/blorp_clear.c | 21 ++++++++++-----------<br>
>  2 files changed, 10 insertions(+), 16 deletions(-)<br>
> <br>
> diff --git a/src/intel/blorp/blorp.h b/src/intel/blorp/blorp.h<br>
> index 8c775bf..e27ea7e 100644<br>
> --- a/src/intel/blorp/blorp.h<br>
> +++ b/src/intel/blorp/blorp.h<br>
> @@ -208,11 +208,6 @@ blorp_ccs_op(struct blorp_batch *batch,<br>
>               enum isl_aux_op ccs_op);<br>
>  <br>
>  void<br>
> -blorp_ccs_ambiguate(struct blorp_batch *batch,<br>
> -                    struct blorp_surf *surf,<br>
> -                    uint32_t level, uint32_t layer);<br>
> -<br>
> -void<br>
>  blorp_mcs_partial_resolve(<wbr>struct blorp_batch *batch,<br>
>                            struct blorp_surf *surf,<br>
>                            enum isl_format format,<br>
> diff --git a/src/intel/blorp/blorp_clear.<wbr>c<br>
> b/src/intel/blorp/blorp_clear.<wbr>c<br>
> index 6f5549f..39bc0c6 100644<br>
> --- a/src/intel/blorp/blorp_clear.<wbr>c<br>
> +++ b/src/intel/blorp/blorp_clear.<wbr>c<br>
> @@ -814,6 +814,11 @@ blorp_clear_attachments(struct blorp_batch<br>
> *batch,<br>
>     batch->blorp->exec(batch, &params);<br>
>  }<br>
>  <br>
> +static void<br>
> +blorp_legacy_ccs_ambiguate(<wbr>struct blorp_batch *batch,<br>
> +                           struct blorp_surf *surf,<br>
> +                           uint32_t level, uint32_t layer);<br>
> +<br>
>  void<br>
>  blorp_ccs_op(struct blorp_batch *batch,<br>
>               struct blorp_surf *surf, uint32_t level,<br>
> @@ -835,7 +840,7 @@ blorp_ccs_op(struct blorp_batch *batch,<br>
>         * mess to another function.<br>
>         */<br>
>        for (uint32_t a = 0; a < num_layers; a++)<br>
> -         blorp_ccs_ambiguate(batch, surf, level, start_layer + a);<br>
> +         blorp_legacy_ccs_ambiguate(<wbr>batch, surf, level, start_layer<br>
> + a);<br>
>        return;<br>
>     }<br>
>  <br>
> @@ -1022,17 +1027,11 @@ blorp_mcs_partial_resolve(<wbr>struct blorp_batch<br>
> *batch,<br>
>   * for a given layer/level of a surface to 0x0 which is the<br>
> "uncompressed"<br>
>   * state which tells the sampler to go look at the main surface.<br>
>   */<br>
> -void<br>
> -blorp_ccs_ambiguate(struct blorp_batch *batch,<br>
> -                    struct blorp_surf *surf,<br>
> -                    uint32_t level, uint32_t layer)<br>
> +static void<br>
> +blorp_legacy_ccs_ambiguate(<wbr>struct blorp_batch *batch,<br>
> +                           struct blorp_surf *surf,<br>
> +                           uint32_t level, uint32_t layer)<br>
>  {<br>
> -   if (ISL_DEV_GEN(batch->blorp-><wbr>isl_dev) >= 10) {<br>
> -      /* On gen10 and above, we have a hardware resolve op for this<br>
> */<br>
> -      return blorp_ccs_op(batch, surf, level, layer, 1,<br>
> -                          surf->surf->format, ISL_AUX_OP_AMBIGUATE);<br>
> -   }<br>
> -<br>
<br>
</div></div>Since we don't want to call this in gen10+, would it make sense to an<br>
assert for gen < 10?<br></blockquote><div><br></div><div>It does work on gen10 and 11 (and we used it on gen 10 for a while).  I'll make it gen < 12.<br></div></div></div></div>
</blockquote><div><br></div><div>My point was that even if it works, we don't want this to be called for these generations... maybe an assert would be too much for this?</div><div><br></div><div>Iago</div></body></html>