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));