[Mesa-dev] [PATCH] anv/blorp: sample input attachments with resolves on BDW

Jason Ekstrand jason at jlekstrand.net
Tue Mar 21 15:14:36 UTC 2017


On Tue, Mar 21, 2017 at 7:23 AM, Samuel Iglesias Gonsálvez <
siglesias at igalia.com> wrote:

> Input attachments are clear-color aware on Sky Lake, so we
> can frequently sample from them with no resolves at all. However
> on Broadwell we still need to do a a resolve between the subpass
> that writes and the subpass that reads.
>

In theory, we shouldn't always need to do a resolve.  Broadwell is supposed
(maybe it doesn't work?) to support sampling from fast-cleared buffers and
I thought it was hooked up correctly.  Is this only an issue for certain
clear colors?  I have a feeling there's something more subtle going on here.


> Fixes 16 tests on BDW:
>
> dEQP-VK.renderpass.formats.*.input.clear.store.self_dep*
>
> Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
> ---
>  src/intel/vulkan/anv_blorp.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
> index 1f4fec5f35b..2fa56f49d18 100644
> --- a/src/intel/vulkan/anv_blorp.c
> +++ b/src/intel/vulkan/anv_blorp.c
> @@ -1504,10 +1504,13 @@ ccs_resolve_attachment(struct anv_cmd_buffer
> *cmd_buffer,
>            */
>        }
>     } else if (usage & ANV_SUBPASS_USAGE_INPUT) {
> -      /* Input attachments are clear-color aware so, at least on Sky
> Lake, we
> -       * can frequently sample from them with no resolves at all.
> +      /* Input attachments are clear-color aware on Sky Lake, so we
> +       * can frequently sample from them with no resolves at all. However
> +       * on Broadwell we still need to do resolves.
>         */
> -      if (att_state->aux_usage != att_state->input_aux_usage) {
> +      if (cmd_buffer->device->info.gen < 9) {
> +         resolve_op = BLORP_FAST_CLEAR_OP_RESOLVE_FULL;
> +      } else if (att_state->aux_usage != att_state->input_aux_usage) {
>           assert(att_state->input_aux_usage == ISL_AUX_USAGE_NONE);
>           resolve_op = BLORP_FAST_CLEAR_OP_RESOLVE_FULL;
>        } else if (!att_state->clear_color_is_zero_one) {
> --
> 2.11.0
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170321/6be4738b/attachment-0001.html>


More information about the mesa-dev mailing list