Mesa (main): panfrost: Remove MIDGARD_SFBD quirk

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jan 26 02:01:50 UTC 2022


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

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Tue Jan 25 17:49:08 2022 -0500

panfrost: Remove MIDGARD_SFBD quirk

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

---

 src/gallium/drivers/panfrost/pan_screen.c | 6 +++---
 src/panfrost/include/panfrost-quirks.h    | 9 +++------
 src/panfrost/vulkan/panvk_device.c        | 2 +-
 3 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/src/gallium/drivers/panfrost/pan_screen.c b/src/gallium/drivers/panfrost/pan_screen.c
index 8abe47255c4..9386c9e467f 100644
--- a/src/gallium/drivers/panfrost/pan_screen.c
+++ b/src/gallium/drivers/panfrost/pan_screen.c
@@ -98,8 +98,8 @@ panfrost_get_param(struct pipe_screen *screen, enum pipe_cap param)
         /* Our GL 3.x implementation is WIP */
         bool is_gl3 = dev->debug & (PAN_DBG_GL3 | PAN_DBG_DEQP);
 
-        /* Don't expose MRT related CAPs on GPUs that don't implement them */
-        bool has_mrt = !(dev->quirks & MIDGARD_SFBD);
+        /* Native MRT is introduced with v5 */
+        bool has_mrt = (dev->arch >= 5);
 
         /* Only kernel drivers >= 1.1 can allocate HEAP BOs */
         bool has_heap = dev->kernel_version->version_major > 1 ||
@@ -551,7 +551,7 @@ panfrost_is_format_supported( struct pipe_screen *screen,
                 return false;
 
         /* Z16 causes dEQP failures on t720 */
-        if (format == PIPE_FORMAT_Z16_UNORM && dev->quirks & MIDGARD_SFBD)
+        if (format == PIPE_FORMAT_Z16_UNORM && dev->arch <= 4)
                 return false;
 
         /* Check we support the format with the given bind */
diff --git a/src/panfrost/include/panfrost-quirks.h b/src/panfrost/include/panfrost-quirks.h
index def79e183a9..2b871ecab2b 100644
--- a/src/panfrost/include/panfrost-quirks.h
+++ b/src/panfrost/include/panfrost-quirks.h
@@ -34,10 +34,7 @@
 
 #define MIDGARD_NO_HIER_TILING (1 << 0)
 
-/* Whether this GPU lacks native multiple render target support and accordingly
- * needs SFBDs instead, with complex lowering with ES3 */
-
-#define MIDGARD_SFBD (1 << 1)
+/* bit 1 unused */
 
 /* Whether fp16 is broken in the compiler. Hopefully this quirk will go away
  * over time */
@@ -80,12 +77,12 @@ panfrost_get_quirks(unsigned gpu_id, unsigned gpu_revision)
         switch (gpu_id) {
         case 0x600:
         case 0x620:
-                return MIDGARD_QUIRKS | MIDGARD_SFBD
+                return MIDGARD_QUIRKS
                         | MIDGARD_NO_TYPED_BLEND_LOADS
                         | NO_BLEND_PACKS | NO_TILE_ENABLE_MAP;
 
         case 0x720:
-                return MIDGARD_QUIRKS | MIDGARD_SFBD | MIDGARD_NO_HIER_TILING
+                return MIDGARD_QUIRKS | MIDGARD_NO_HIER_TILING
                         | NO_TILE_ENABLE_MAP;
 
         case 0x820:
diff --git a/src/panfrost/vulkan/panvk_device.c b/src/panfrost/vulkan/panvk_device.c
index 516c7501c2a..8941c4b3592 100644
--- a/src/panfrost/vulkan/panvk_device.c
+++ b/src/panfrost/vulkan/panvk_device.c
@@ -314,7 +314,7 @@ panvk_physical_device_init(struct panvk_physical_device *device,
    panfrost_open_device(NULL, fd, &device->pdev);
    fd = -1;
 
-   if (device->pdev.quirks & MIDGARD_SFBD) {
+   if (device->pdev.arch < 5) {
       result = vk_errorf(instance, VK_ERROR_INCOMPATIBLE_DRIVER,
                          "%s not supported",
                          panfrost_model_name(device->pdev.gpu_id));



More information about the mesa-commit mailing list