[PATCH v3 2/2] tests/intel/kms_frontbuffer_tracking: Enable the tests support variations based on the WAs
Govindapillai, Vinod
vinod.govindapillai at intel.com
Fri May 30 10:15:55 UTC 2025
On Fri, 2025-05-30 at 13:28 +0530, Mohammed Thasleem wrote:
> This update stops skipping fbc-* tests support variations based on the WAs.
>
> v2: Use WA_FBC_DISABLED instead CHECK_WA. (Vinod)
> Update igt_skip_on_f discription. (Vinod)
> v3: Remove platform check and make it for xe specific. (Vinod)
> Rename function name with is_fbc_support. (Vinod)
My is_fbc_supported() suggestion was for
static bool is_fbc_supported(int devid, const struct test_mode *t)
{
int wa;
wa = igt_has_intel_wa(drm.fd, WA_FBC_DISABLED);
igt_assert_f(wa >= 0, "WA path not found on GTs\n");
return wa != 1;
}
And in subtests, skip if FBC not supported.
igt_skip_on_f(t->feature == FEATURE_FBC && !is_fbc_supported(...), "WA has disabled FBC on BMG\n");
Otherwise, please keep the original name as check_fbc_supppor()
With that changing back, this patch handling for kms_frontbuffer_tracking tests looks ok.
Reviewed-by: Vinod Govindapillai <vinod.govindapillai at intel.com>
PS: But please note, you need to add similar checks to kms_dirtyfb and kms_fbcon_fbt tests as well
probably as separate patches.
>
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem at intel.com>
> ---
> tests/intel/kms_frontbuffer_tracking.c | 24 ++++++++++++++++++------
> 1 file changed, 18 insertions(+), 6 deletions(-)
>
> diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
> index 0809352cb..fd35cbd88 100644
> --- a/tests/intel/kms_frontbuffer_tracking.c
> +++ b/tests/intel/kms_frontbuffer_tracking.c
> @@ -781,6 +781,7 @@
> */
>
> #define TIME SLOW_QUICK(1000, 10000)
> +#define WA_FBC_DISABLED "16023588340"
>
> IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and "
> "its related features: FBC, PSR and DRRS");
> @@ -2248,6 +2249,20 @@ static void do_flush(const struct test_mode *t)
>
> #define ASSERT_NO_IDLE_GPU (1 << 11)
>
> +static void is_fbc_support(int devid, const struct test_mode *t)
> +{
> + int wa;
> +
> + if (t->feature != FEATURE_FBC)
> + return;
> +
> + wa = igt_has_intel_wa(drm.fd, WA_FBC_DISABLED);
> +
> + igt_assert_f(wa >= 0, "WA path not found on GTs\n");
> +
> + igt_skip_on_f(wa == 1, "WA has disabled FBC\n");
> +}
> +
> static int adjust_assertion_flags(const struct test_mode *t, int flags)
> {
> if (!(flags & DONT_ASSERT_FEATURE_STATUS)) {
> @@ -2610,8 +2625,7 @@ static void prepare_subtest_data(const struct test_mode *t,
> static void prepare_subtest_screens(const struct test_mode *t)
> {
> /* FBC disabled: Wa_16023588340 */
> - igt_skip_on_f((IS_BATTLEMAGE(drm.devid) && t->feature == FEATURE_FBC),
> - "FBC isn't supported on BMG\n");
> + is_fbc_support(drm.devid, t);
>
> if (t->pipes == PIPE_DUAL)
> enable_both_screens_and_wait(t);
> @@ -2658,8 +2672,7 @@ static void prepare_subtest(const struct test_mode *t,
> static void rte_subtest(const struct test_mode *t)
> {
> /* FBC disabled: Wa_16023588340 */
> - igt_skip_on_f((IS_BATTLEMAGE(drm.devid) && t->feature == FEATURE_FBC),
> - "FBC isn't supported on BMG\n");
> + is_fbc_support(drm.devid, t);
>
> prepare_subtest_data(t, NULL);
>
> @@ -4157,8 +4170,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
> t.tiling = opt.tiling;
>
> /* FBC disabled: Wa_16023588340 */
> - igt_skip_on_f((IS_BATTLEMAGE(drm.devid) && t.feature == FEATURE_FBC),
> - "FBC isn't supported on BMG\n");
> + is_fbc_support(drm.devid, &t);
>
> for_each_pipe(&drm.display, pipe) {
> if (pipe == default_pipe) {
More information about the igt-dev
mailing list