From 8f0b5b4b19ccdc6885df4aeac02cd86aec4eebce Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 25 Jan 2022 19:56:42 -0500 Subject: [PATCH] pan/bi: Clean up quirks NO_PRELOAD isn't actually used. The other quirks are used, but they're implementation details only affecting a few older models. So we can default to no quirks and clean up a lot. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/bi_quirks.h | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/src/panfrost/bifrost/bi_quirks.h b/src/panfrost/bifrost/bi_quirks.h index d4e030ed537..d6727895577 100644 --- a/src/panfrost/bifrost/bi_quirks.h +++ b/src/panfrost/bifrost/bi_quirks.h @@ -28,16 +28,10 @@ * may be errata requiring a workaround, or features. We're trying to be * quirk-positive here; quirky is the best! */ -/* Whether this GPU lacks support for the preload mechanism. New GPUs can have - * varyings and textures preloaded into the fragment shader to amortize the I/O - * cost; early Bifrost models lacked this feature. */ - -#define BIFROST_NO_PRELOAD (1 << 0) - /* Whether this GPU lacks support for fp32 transcendentals, requiring backend * lowering to low-precision lookup tables and polynomial approximation */ -#define BIFROST_NO_FP32_TRANSCENDENTALS (1 << 1) +#define BIFROST_NO_FP32_TRANSCENDENTALS (1 << 0) /* Whether this GPU lacks support for the full form of the CLPER instruction. * These GPUs use a simple encoding of CLPER that does not support @@ -45,33 +39,19 @@ * lowering to additional ALU instructions. The encoding forces inactive_result * = zero, subgroup_size = subgroup4, and lane_op = none. */ -#define BIFROST_LIMITED_CLPER (1 << 2) +#define BIFROST_LIMITED_CLPER (1 << 1) static inline unsigned bifrost_get_quirks(unsigned product_id) { switch (product_id >> 8) { - case 0x60: - return BIFROST_NO_PRELOAD | BIFROST_NO_FP32_TRANSCENDENTALS | - BIFROST_LIMITED_CLPER; - case 0x62: - return BIFROST_NO_PRELOAD | BIFROST_LIMITED_CLPER; + case 0x60: /* G71 */ + return BIFROST_NO_FP32_TRANSCENDENTALS | BIFROST_LIMITED_CLPER; + case 0x62: /* G72 */ case 0x70: /* G31 */ return BIFROST_LIMITED_CLPER; - case 0x71: - case 0x72: - case 0x73: - case 0x74: - return 0; - case 0x90: - case 0x91: - case 0x92: - case 0x93: - case 0x94: - case 0x95: - return BIFROST_NO_PRELOAD; default: - unreachable("Unknown Bifrost/Valhall GPU ID"); + return 0; } }