panfrost: Handle PIPE_FORMAT_S8_UINT
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 8 Jul 2020 20:37:00 +0000 (16:37 -0400)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Thu, 9 Jul 2020 16:20:27 +0000 (12:20 -0400)
For wallpaper blits with separate stencil.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5827>

src/panfrost/encoder/pan_format.c
src/panfrost/encoder/pan_texture.c

index d7b0b207babaaef9bda2aa080d751dc2aea83060..67c6fba41641fc639095628b2a1b9160ce835b6d 100644 (file)
@@ -141,6 +141,7 @@ struct panfrost_format panfrost_pipe_format_table[PIPE_FORMAT_COUNT] = {
         [PIPE_FORMAT_Z32_FLOAT]                        = { MALI_R32F, _TZ },
         [PIPE_FORMAT_Z32_FLOAT_S8X24_UINT]     = { MALI_R32F, _TZ },
         [PIPE_FORMAT_X24S8_UINT]               = { MALI_RGBA8UI, _TZ },
+        [PIPE_FORMAT_S8_UINT]                  = { MALI_R8UI, _T },
 
         [PIPE_FORMAT_R32_FIXED]                = { MALI_R32_FIXED, _V },
         [PIPE_FORMAT_R32G32_FIXED]             = { MALI_RG32_FIXED, _V },
index 18f7455442e5c874f8f82e4ec94314101e70fb7a..5aa74d60c2fb55701b09f39990eb3c3042144a6d 100644 (file)
@@ -241,12 +241,19 @@ panfrost_emit_texture_payload(
         }
 }
 
+#define MALI_SWIZZLE_R001 \
+        (MALI_CHANNEL_RED << 0) | \
+        (MALI_CHANNEL_ZERO << 3) | \
+        (MALI_CHANNEL_ZERO << 6) | \
+        (MALI_CHANNEL_ONE << 9)
+
 #define MALI_SWIZZLE_A001 \
         (MALI_CHANNEL_ALPHA << 0) | \
         (MALI_CHANNEL_ZERO << 3) | \
         (MALI_CHANNEL_ZERO << 6) | \
         (MALI_CHANNEL_ONE << 9)
 
+
 void
 panfrost_new_texture(
         void *out,
@@ -283,6 +290,8 @@ panfrost_new_texture(
                 .format = {
                         .swizzle = (format == PIPE_FORMAT_X24S8_UINT) ?
                                 MALI_SWIZZLE_A001 :
+                                (format == PIPE_FORMAT_S8_UINT) ?
+                                MALI_SWIZZLE_R001 :
                                 panfrost_translate_swizzle_4(desc->swizzle),
                         .format = mali_format,
                         .srgb = (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB),