[Mesa-dev] [PATCH 01/10] gallium/util: add util_texrange_covers_whole_level from radeon

Marek Olšák maraeo at gmail.com
Tue May 31 14:39:21 UTC 2016


Ping

On Thu, May 19, 2016 at 12:59 PM, Marek Olšák <maraeo at gmail.com> wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> ---
>  src/gallium/auxiliary/util/u_inlines.h    | 12 ++++++++++++
>  src/gallium/drivers/radeon/r600_texture.c | 23 ++++++-----------------
>  2 files changed, 18 insertions(+), 17 deletions(-)
>
> diff --git a/src/gallium/auxiliary/util/u_inlines.h b/src/gallium/auxiliary/util/u_inlines.h
> index 07c058a..b733c9f 100644
> --- a/src/gallium/auxiliary/util/u_inlines.h
> +++ b/src/gallium/auxiliary/util/u_inlines.h
> @@ -650,6 +650,18 @@ util_max_layer(const struct pipe_resource *r, unsigned level)
>     }
>  }
>
> +static inline bool
> +util_texrange_covers_whole_level(const struct pipe_resource *tex,
> +                                 unsigned level, unsigned x, unsigned y,
> +                                 unsigned z, unsigned width,
> +                                 unsigned height, unsigned depth)
> +{
> +   return x == 0 && y == 0 && z == 0 &&
> +          width == u_minify(tex->width0, level) &&
> +          height == u_minify(tex->height0, level) &&
> +          depth == util_max_layer(tex, level) + 1;
> +}
> +
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c
> index e2955aa..db63beb 100644
> --- a/src/gallium/drivers/radeon/r600_texture.c
> +++ b/src/gallium/drivers/radeon/r600_texture.c
> @@ -38,17 +38,6 @@ static void r600_texture_discard_cmask(struct r600_common_screen *rscreen,
>                                        struct r600_texture *rtex);
>
>
> -static bool range_covers_whole_texture(struct pipe_resource *tex,
> -                                      unsigned level, unsigned x, unsigned y,
> -                                      unsigned z, unsigned width,
> -                                      unsigned height, unsigned depth)
> -{
> -       return x == 0 && y == 0 && z == 0 &&
> -              width == u_minify(tex->width0, level) &&
> -              height == u_minify(tex->height0, level) &&
> -              depth == util_max_layer(tex, level) + 1;
> -}
> -
>  bool r600_prepare_for_dma_blit(struct r600_common_context *rctx,
>                                struct r600_texture *rdst,
>                                unsigned dst_level, unsigned dstx,
> @@ -87,9 +76,9 @@ bool r600_prepare_for_dma_blit(struct r600_common_context *rctx,
>         if (rdst->dcc_offset) {
>                 /* We can't discard DCC if the texture has been exported. */
>                 if (rdst->resource.is_shared ||
> -                   !range_covers_whole_texture(&rdst->resource.b.b, dst_level,
> -                                               dstx, dsty, dstz, src_box->width,
> -                                               src_box->height, src_box->depth))
> +                   !util_texrange_covers_whole_level(&rdst->resource.b.b, dst_level,
> +                                                     dstx, dsty, dstz, src_box->width,
> +                                                     src_box->height, src_box->depth))
>                         return false;
>
>                 r600_texture_discard_dcc(rctx->screen, rdst);
> @@ -101,9 +90,9 @@ bool r600_prepare_for_dma_blit(struct r600_common_context *rctx,
>          *        SDMA. Otherwise, use the 3D path.
>          */
>         if (rdst->cmask.size && rdst->dirty_level_mask & (1 << dst_level)) {
> -               if (!range_covers_whole_texture(&rdst->resource.b.b, dst_level,
> -                                               dstx, dsty, dstz, src_box->width,
> -                                               src_box->height, src_box->depth))
> +               if (!util_texrange_covers_whole_level(&rdst->resource.b.b, dst_level,
> +                                                     dstx, dsty, dstz, src_box->width,
> +                                                     src_box->height, src_box->depth))
>                         return false;
>
>                 r600_texture_discard_cmask(rctx->screen, rdst);
> --
> 2.7.4
>


More information about the mesa-dev mailing list