Module: Mesa
Branch: main
Commit: ba7e87a03d6796e4c677164fee42fe7eb9927618
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba7e87a03d6796e4c677164fee42fe7eb9927618

Author: Erik Faye-Lund <[email protected]>
Date:   Wed Aug 10 14:35:21 2022 +0200

panfrost: do not fake rgtc-support

Panfrost doesn't expose LATC format support at all, so RGTC
state-tracker level RGTC support is sufficient to drop the fake RGTC
flag on Panfrost.

Reviewed-by: Alyssa Rosenzweig <[email protected]>
Acked-by: Eric Engestrom <[email protected]>
Tested-by: Eric Engestrom <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18248>

---

 src/gallium/drivers/panfrost/pan_cmdstream.c | 12 ------------
 src/gallium/drivers/panfrost/pan_resource.c  |  7 +------
 src/gallium/drivers/panfrost/pan_screen.c    |  8 ++------
 3 files changed, 3 insertions(+), 24 deletions(-)

diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c 
b/src/gallium/drivers/panfrost/pan_cmdstream.c
index 89e042c6268..8d086d5d2de 100644
--- a/src/gallium/drivers/panfrost/pan_cmdstream.c
+++ b/src/gallium/drivers/panfrost/pan_cmdstream.c
@@ -1671,18 +1671,6 @@ panfrost_create_sampler_view_bo(struct 
panfrost_sampler_view *so,
                 format = PIPE_FORMAT_Z32_FLOAT;
         }
 
-        const struct util_format_description *desc = 
util_format_description(format);
-
-        bool fake_rgtc = !panfrost_supports_compressed_format(device, 
MALI_BC4_UNORM);
-
-        if (desc->layout == UTIL_FORMAT_LAYOUT_RGTC && fake_rgtc) {
-                if (desc->is_snorm)
-                        format = PIPE_FORMAT_R8G8B8A8_SNORM;
-                else
-                        format = PIPE_FORMAT_R8G8B8A8_UNORM;
-                desc = util_format_description(format);
-        }
-
         so->texture_bo = prsrc->image.data.bo->ptr.gpu;
         so->modifier = prsrc->image.layout.modifier;
 
diff --git a/src/gallium/drivers/panfrost/pan_resource.c 
b/src/gallium/drivers/panfrost/pan_resource.c
index 228e4520135..2fce5bbb77e 100644
--- a/src/gallium/drivers/panfrost/pan_resource.c
+++ b/src/gallium/drivers/panfrost/pan_resource.c
@@ -1449,10 +1449,6 @@ static const struct u_transfer_vtbl transfer_vtbl = {
 void
 panfrost_resource_screen_init(struct pipe_screen *pscreen)
 {
-        struct panfrost_device *dev = pan_device(pscreen);
-
-        bool fake_rgtc = !panfrost_supports_compressed_format(dev, 
MALI_BC4_UNORM);
-
         pscreen->resource_create_with_modifiers =
                 panfrost_resource_create_with_modifiers;
         pscreen->resource_create = u_transfer_helper_resource_create;
@@ -1462,8 +1458,7 @@ panfrost_resource_screen_init(struct pipe_screen *pscreen)
         pscreen->resource_get_param = panfrost_resource_get_param;
         pscreen->transfer_helper = u_transfer_helper_create(&transfer_vtbl,
                                         U_TRANSFER_HELPER_SEPARATE_Z32S8 |
-                                        U_TRANSFER_HELPER_MSAA_MAP |
-                                        (fake_rgtc ? 
U_TRANSFER_HELPER_FAKE_RGTC : 0));
+                                        U_TRANSFER_HELPER_MSAA_MAP);
 }
 void
 panfrost_resource_screen_destroy(struct pipe_screen *pscreen)
diff --git a/src/gallium/drivers/panfrost/pan_screen.c 
b/src/gallium/drivers/panfrost/pan_screen.c
index f44d0fdc2ce..d123330e708 100644
--- a/src/gallium/drivers/panfrost/pan_screen.c
+++ b/src/gallium/drivers/panfrost/pan_screen.c
@@ -529,7 +529,6 @@ panfrost_is_format_supported( struct pipe_screen *screen,
                               unsigned bind)
 {
         struct panfrost_device *dev = pan_device(screen);
-        const struct util_format_description *format_desc;
 
         assert(target == PIPE_BUFFER ||
                target == PIPE_TEXTURE_1D ||
@@ -541,8 +540,6 @@ panfrost_is_format_supported( struct pipe_screen *screen,
                target == PIPE_TEXTURE_CUBE ||
                target == PIPE_TEXTURE_CUBE_ARRAY);
 
-        format_desc = util_format_description(format);
-
         /* MSAA 2x gets rounded up to 4x. MSAA 8x/16x only supported on v5+.
          * TODO: debug MSAA 8x/16x */
 
@@ -578,13 +575,12 @@ panfrost_is_format_supported( struct pipe_screen *screen,
 
         /* Also check that compressed texture formats are supported on this
          * particular chip. They may not be depending on system integration
-         * differences. RGTC can be emulated so is always supported. */
+         * differences. */
 
-        bool is_rgtc = format_desc->layout == UTIL_FORMAT_LAYOUT_RGTC;
         bool supported = panfrost_supports_compressed_format(dev,
                         MALI_EXTRACT_INDEX(fmt.hw));
 
-        if (!is_rgtc && !supported)
+        if (!supported)
                 return false;
 
         return MALI_EXTRACT_INDEX(fmt.hw) && ((relevant_bind & ~fmt.bind) == 
0);

Reply via email to