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 <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14726>
This commit is contained in:
Alyssa Rosenzweig 2022-01-25 19:56:42 -05:00 committed by Marge Bot
parent 94bb229c46
commit 8f0b5b4b19
1 changed files with 6 additions and 26 deletions

View File

@ -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;
}
}