[Mesa-dev] [PATCH 08/12] panfrost: Support linear depth textures

Tomeu Vizoso tomeu at tomeuvizoso.net
Mon Mar 11 14:21:32 UTC 2019


Reviewed-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>

On Sun, 10 Mar 2019 at 07:50, Alyssa Rosenzweig <alyssa at rosenzweig.io> wrote:
>
> This combination has not yet been seen "in the wild" in traces, but to
> support linear depth FBOs, ~bruteforce reveals this bit pattern is
> necessary. It's not yet clear why the meanings of 0x1 and 0x2 are
> essentially flipped (tiled vs linear for colour, linear vs some sort of
> tiled for depth).
>
> Signed-off-by: Alyssa Rosenzweig <alyssa at rosenzweig.io>
> ---
>  src/gallium/drivers/panfrost/pan_context.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
> index 9db667d8287..099d6d0389b 100644
> --- a/src/gallium/drivers/panfrost/pan_context.c
> +++ b/src/gallium/drivers/panfrost/pan_context.c
> @@ -2289,17 +2289,19 @@ panfrost_create_sampler_view(
>
>          enum mali_format format = panfrost_find_format(desc);
>
> +        bool is_depth = desc->format == PIPE_FORMAT_Z32_UNORM;
> +
>          unsigned usage2_layout = 0x10;
>
>          switch (prsrc->bo->layout) {
>                  case PAN_AFBC:
> -                        usage2_layout |= 0xc;
> +                        usage2_layout |= 0x8 | 0x4;
>                          break;
>                  case PAN_TILED:
>                          usage2_layout |= 0x1;
>                          break;
>                  case PAN_LINEAR:
> -                        usage2_layout |= 0x2;
> +                        usage2_layout |= is_depth ? 0x1 : 0x2;
>                          break;
>                  default:
>                          assert(0);
> --
> 2.20.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list