Message ID | 20220109170920.2921-2-alyssa.rosenzweig@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/panfrost: Clean up our feature lists | expand |
On 09/01/2022 17:09, Alyssa Rosenzweig wrote: > 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> (although it's a good thing kbase never did this cleanup - it's a useful source of public information ;) ) Steve > --- > drivers/gpu/drm/panfrost/panfrost_features.h | 172 ------------------- > 1 file changed, 172 deletions(-) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h > index 5056777c7744..f557fad5d5ff 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_features.h > +++ b/drivers/gpu/drm/panfrost/panfrost_features.h > @@ -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) | \ >
> (although it's a good thing kbase never did this cleanup - it's a useful > source of public information ;) ) Haha, yes. Actually, kbase did do the clean up recently (Valhall era kbase, I guess). To be fair, I still don't know what some of these were, like "T7xx pairing rules"... Presumably something dreadfully Midgard-compiler specific.
diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h index 5056777c7744..f557fad5d5ff 100644 --- a/drivers/gpu/drm/panfrost/panfrost_features.h +++ b/drivers/gpu/drm/panfrost/panfrost_features.h @@ -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) | \
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> --- drivers/gpu/drm/panfrost/panfrost_features.h | 172 ------------------- 1 file changed, 172 deletions(-)