/* What it says on the tin */
#define HAS_SWIZZLES (1 << 4)
-/* Support for setting shader to NULL for masking out colour (while allowing
- * Z/S updates to proceed) */
-
-#define MIDGARD_SHADERLESS (1 << 5)
+/* bit 5 unused */
/* Whether this GPU lacks support for any typed stores in blend shader,
* requiring packing instead */
/* Has some missing formats for typed loads */
#define MIDGARD_MISSING_LOADS (1 << 9)
+/* Lack support for AFBC */
+#define MIDGARD_NO_AFBC (1 << 10)
+
/* Quirk collections common to particular uarchs */
#define MIDGARD_QUIRKS (MIDGARD_BROKEN_FP16 | HAS_SWIZZLES \
| MIDGARD_NO_TYPED_BLEND_STORES \
| MIDGARD_MISSING_LOADS)
-#define BIFROST_QUIRKS (IS_BIFROST | NO_BLEND_PACKS)
+/* TODO: AFBC on Bifrost */
+#define BIFROST_QUIRKS (IS_BIFROST | NO_BLEND_PACKS | MIDGARD_NO_AFBC)
static inline unsigned
panfrost_get_quirks(unsigned gpu_id)
case 0x620:
return MIDGARD_QUIRKS | MIDGARD_SFBD
| MIDGARD_NO_TYPED_BLEND_LOADS
- | NO_BLEND_PACKS;
+ | NO_BLEND_PACKS | MIDGARD_NO_AFBC;
case 0x720:
- return MIDGARD_QUIRKS | MIDGARD_SFBD | MIDGARD_NO_HIER_TILING;
+ return MIDGARD_QUIRKS | MIDGARD_SFBD | MIDGARD_NO_HIER_TILING
+ | MIDGARD_NO_AFBC;
case 0x820:
case 0x830:
case 0x750:
/* Someone should investigate the broken loads? */
return MIDGARD_QUIRKS | MIDGARD_NO_TYPED_BLEND_LOADS
- | NO_BLEND_PACKS | MIDGARD_SHADERLESS;
+ | NO_BLEND_PACKS;
case 0x860:
case 0x880:
- return MIDGARD_QUIRKS | MIDGARD_SHADERLESS;
+ return MIDGARD_QUIRKS;
case 0x6000: /* G71 */
return BIFROST_QUIRKS | HAS_SWIZZLES;