drm/panfrost: Remove features meant for userspace
Early versions of the legacy kernel driver included comprehensive feature lists for every GPU, even though most of the enumerated features only matter to userspace. For example, HW_FEATURE_INTERPIPE_REG_ALIASING was a feature bit indicating that a GPU had "interpipe register aliasing": arithmetic, load/store, and texture instruction all use common general-purpose registers. GPUs without this feature bit have dedicated load/store and texture "registers". Whether a GPU has this feature or not is irrelevant to the kernel; it only matters in the userspace compiler's register allocator. It's silly to enumerate it in kernel space, and the information is understandably unused. To underscore the point, this feature only makes sense in the context of the Midgard instruction set. Bifrost never had dedicated load/store or texture registers, so the feature bit was vacuously set for all Bifrost hardware, even though this conveys no useful information. To clean up the feature list, delete feature bits which could not possibly matter to the kernel, leaving only those which do affect the register-level operation of the chip. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Steven Price <steven.price@arm.com> Signed-off-by: Steven Price <steven.price@arm.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220109170920.2921-2-alyssa.rosenzweig@collabora.com
This commit is contained in:
parent
44ab30b056
commit
16a89697a3
|
@ -12,24 +12,6 @@ enum panfrost_hw_feature {
|
|||
HW_FEATURE_JOBCHAIN_DISAMBIGUATION,
|
||||
HW_FEATURE_PWRON_DURING_PWROFF_TRANS,
|
||||
HW_FEATURE_XAFFINITY,
|
||||
HW_FEATURE_OUT_OF_ORDER_EXEC,
|
||||
HW_FEATURE_MRT,
|
||||
HW_FEATURE_BRNDOUT_CC,
|
||||
HW_FEATURE_INTERPIPE_REG_ALIASING,
|
||||
HW_FEATURE_LD_ST_TILEBUFFER,
|
||||
HW_FEATURE_MSAA_16X,
|
||||
HW_FEATURE_32_BIT_UNIFORM_ADDRESS,
|
||||
HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL,
|
||||
HW_FEATURE_OPTIMIZED_COVERAGE_MASK,
|
||||
HW_FEATURE_T7XX_PAIRING_RULES,
|
||||
HW_FEATURE_LD_ST_LEA_TEX,
|
||||
HW_FEATURE_LINEAR_FILTER_FLOAT,
|
||||
HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4,
|
||||
HW_FEATURE_IMAGES_IN_FRAGMENT_SHADERS,
|
||||
HW_FEATURE_TEST4_DATUM_MODE,
|
||||
HW_FEATURE_NEXT_INSTRUCTION_TYPE,
|
||||
HW_FEATURE_BRNDOUT_KILL,
|
||||
HW_FEATURE_WARPING,
|
||||
HW_FEATURE_V4,
|
||||
HW_FEATURE_FLUSH_REDUCTION,
|
||||
HW_FEATURE_PROTECTED_MODE,
|
||||
|
@ -42,27 +24,15 @@ enum panfrost_hw_feature {
|
|||
};
|
||||
|
||||
#define hw_features_t600 (\
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
|
||||
BIT_ULL(HW_FEATURE_V4))
|
||||
|
||||
#define hw_features_t620 (\
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
|
||||
BIT_ULL(HW_FEATURE_V4))
|
||||
|
||||
#define hw_features_t720 (\
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
|
||||
BIT_ULL(HW_FEATURE_OPTIMIZED_COVERAGE_MASK) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
|
||||
BIT_ULL(HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4) | \
|
||||
BIT_ULL(HW_FEATURE_WARPING) | \
|
||||
BIT_ULL(HW_FEATURE_V4))
|
||||
|
||||
|
||||
|
@ -70,17 +40,6 @@ enum panfrost_hw_feature {
|
|||
BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
|
||||
BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
|
||||
BIT_ULL(HW_FEATURE_XAFFINITY) | \
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_MRT) | \
|
||||
BIT_ULL(HW_FEATURE_MSAA_16X) | \
|
||||
BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
|
||||
|
||||
// T860
|
||||
|
@ -88,19 +47,6 @@ enum panfrost_hw_feature {
|
|||
BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
|
||||
BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
|
||||
BIT_ULL(HW_FEATURE_XAFFINITY) | \
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_MRT) | \
|
||||
BIT_ULL(HW_FEATURE_MSAA_16X) | \
|
||||
BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
|
||||
BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
|
||||
|
||||
#define hw_features_t880 hw_features_t860
|
||||
|
@ -109,61 +55,18 @@ enum panfrost_hw_feature {
|
|||
BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
|
||||
BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
|
||||
BIT_ULL(HW_FEATURE_XAFFINITY) | \
|
||||
BIT_ULL(HW_FEATURE_WARPING) | \
|
||||
BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_MRT) | \
|
||||
BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
|
||||
BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
|
||||
|
||||
#define hw_features_t820 (\
|
||||
BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
|
||||
BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
|
||||
BIT_ULL(HW_FEATURE_XAFFINITY) | \
|
||||
BIT_ULL(HW_FEATURE_WARPING) | \
|
||||
BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_MRT) | \
|
||||
BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
|
||||
BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
|
||||
|
||||
#define hw_features_g71 (\
|
||||
BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
|
||||
BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
|
||||
BIT_ULL(HW_FEATURE_XAFFINITY) | \
|
||||
BIT_ULL(HW_FEATURE_WARPING) | \
|
||||
BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_MRT) | \
|
||||
BIT_ULL(HW_FEATURE_MSAA_16X) | \
|
||||
BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
|
||||
BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
|
||||
BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
|
||||
BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
|
||||
|
@ -173,21 +76,6 @@ enum panfrost_hw_feature {
|
|||
BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
|
||||
BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
|
||||
BIT_ULL(HW_FEATURE_XAFFINITY) | \
|
||||
BIT_ULL(HW_FEATURE_WARPING) | \
|
||||
BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_MRT) | \
|
||||
BIT_ULL(HW_FEATURE_MSAA_16X) | \
|
||||
BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
|
||||
BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
|
||||
BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
|
||||
BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
|
||||
|
@ -198,21 +86,6 @@ enum panfrost_hw_feature {
|
|||
BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
|
||||
BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
|
||||
BIT_ULL(HW_FEATURE_XAFFINITY) | \
|
||||
BIT_ULL(HW_FEATURE_WARPING) | \
|
||||
BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_MRT) | \
|
||||
BIT_ULL(HW_FEATURE_MSAA_16X) | \
|
||||
BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
|
||||
BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
|
||||
BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
|
||||
BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
|
||||
|
@ -223,21 +96,6 @@ enum panfrost_hw_feature {
|
|||
BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
|
||||
BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
|
||||
BIT_ULL(HW_FEATURE_XAFFINITY) | \
|
||||
BIT_ULL(HW_FEATURE_WARPING) | \
|
||||
BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_MRT) | \
|
||||
BIT_ULL(HW_FEATURE_MSAA_16X) | \
|
||||
BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
|
||||
BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
|
||||
BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
|
||||
BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
|
||||
|
@ -248,21 +106,6 @@ enum panfrost_hw_feature {
|
|||
BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
|
||||
BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
|
||||
BIT_ULL(HW_FEATURE_XAFFINITY) | \
|
||||
BIT_ULL(HW_FEATURE_WARPING) | \
|
||||
BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_MRT) | \
|
||||
BIT_ULL(HW_FEATURE_MSAA_16X) | \
|
||||
BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
|
||||
BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
|
||||
BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
|
||||
BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
|
||||
|
@ -276,21 +119,6 @@ enum panfrost_hw_feature {
|
|||
BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
|
||||
BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
|
||||
BIT_ULL(HW_FEATURE_XAFFINITY) | \
|
||||
BIT_ULL(HW_FEATURE_WARPING) | \
|
||||
BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
|
||||
BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
|
||||
BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
|
||||
BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
|
||||
BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
|
||||
BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
|
||||
BIT_ULL(HW_FEATURE_MRT) | \
|
||||
BIT_ULL(HW_FEATURE_MSAA_16X) | \
|
||||
BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
|
||||
BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
|
||||
BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
|
||||
BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
|
||||
BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
|
||||
BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
|
||||
BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
|
||||
|
|
Loading…
Reference in New Issue