[igt-dev] [V5, i-g-t, 22/81] tests/i915/kms_frontbuffer_tracking: Document each subtest for testplan

Joshi, Kunal1 kunal1.joshi at intel.com
Thu Aug 10 06:25:51 UTC 2023


On 6/29/2023 8:18 PM, Bhanuprakash Modem wrote:
> Add documentation for all kms tests which is used by IGT testplan
> documentation.
>
> Note: This documentation is generated by the script & made changes
> on top of it.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
> ---
>   tests/i915/kms_frontbuffer_tracking.c | 808 ++++++++++++++++++++++++++
>   1 file changed, 808 insertions(+)
>
> diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c
> index b2183b08e..64f9b9412 100644
> --- a/tests/i915/kms_frontbuffer_tracking.c
> +++ b/tests/i915/kms_frontbuffer_tracking.c
> @@ -24,6 +24,11 @@
>    *
>    */
>   
> +/**
> + * TEST: kms frontbuffer tracking
> + * Category: Display
> + * Description: Test the Kernel's frontbuffer tracking mechanism and its related features: FBC, PSR and DRRS
> + */
>   #include <sys/types.h>
>   #include <sys/stat.h>
>   #include <fcntl.h>
> @@ -1952,6 +1957,28 @@ static void prepare_subtest(const struct test_mode *t,
>   	prepare_subtest_screens(t);
>   }
>   
> +/**
> + * SUBTEST: %s-%dp-rte
> + * Description: Sanity test to enable %arg[1] with %arg[2] panels.
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *

In Functionality can we have PSR, DRRS and FBC and FBT as well?
Applicable almost on all test except basic
Apart from that
Reviewed-by: Kunal Joshi <kunal1.joshi at intel.com>

> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + */
> +
>   /*
>    * rte - the basic sanity test
>    *
> @@ -2012,6 +2039,308 @@ static bool op_disables_psr(const struct test_mode *t,
>   	return false;
>   }
>   
> +/**
> + * SUBTEST: %s-1p-offscren-pri-%s-draw-%s
> + * Description: Draw a set of rectangles on the screen using the provided method
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @indfb:          Individual fb
> + * @shrfb:          Shared fb
> + *
> + * arg[3]:
> + *
> + * @blt:            Blitter
> + * @mmap-wc:        MMAP-WC
> + * @render:         Render
> + */
> +
> +/**
> + * SUBTEST: %s-1p-offscren-pri-%s-draw-%s
> + * Description: Draw a set of rectangles on the screen using the provided method
> + * Driver requirement: i915
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @indfb:          Individual fb
> + * @shrfb:          Shared fb
> + *
> + * arg[3]:
> + *
> + * @mmap-cpu:       MMAP-CPU
> + * @mmap-gtt:       MMAP-GTT
> + * @pwrite:         PWRITE
> + */
> +
> +/**
> + * SUBTEST: %s-%dp-primscrn-%s-indfb-draw-%s
> + * Description: Draw a set of rectangles on the screen using the provided method
> + * Driver requirement: i915
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + *
> + * arg[3]:
> + *
> + * @cur:            Cursor plane
> + * @pri:            Primary plane
> + * @spr:            Sprite plane
> + *
> + * arg[4]:
> + *
> + * @mmap-cpu:       MMAP-CPU
> + * @mmap-gtt:       MMAP-GTT
> + * @pwrite:         PWRITE
> + */
> +
> +/**
> + * SUBTEST: %s-%dp-primscrn-%s-indfb-draw-%s
> + * Description: Draw a set of rectangles on the screen using the provided method
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + *
> + * arg[3]:
> + *
> + * @cur:            Cursor plane
> + * @pri:            Primary plane
> + * @spr:            Sprite plane
> + *
> + * arg[4]:
> + *
> + * @blt:            Blitter
> + * @mmap-wc:        MMAP-WC
> + * @render:         Render
> + */
> +
> +/**
> + * SUBTEST: %s-%dp-primscrn-pri-shrfb-draw-%s
> + * Description: Draw a set of rectangles on the screen using the provided method
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + *
> + * arg[3]:
> + *
> + * @blt:            Blitter
> + * @mmap-wc:        MMAP-WC
> + * @render:         Render
> + */
> +
> +/**
> + * SUBTEST: %s-%dp-primscrn-pri-shrfb-draw-%s
> + * Description: Draw a set of rectangles on the screen using the provided method
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + *
> + * arg[3]:
> + *
> + * @mmap-cpu:       MMAP-CPU
> + * @mmap-gtt:       MMAP-GTT
> + * @pwrite:         PWRITE
> + */
> +
> +/**
> + * SUBTEST: %s-2p-scndscrn-%s-indfb-draw-%s
> + * Description: Draw a set of rectangles on the screen using the provided method
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @cur:            Cursor plane
> + * @pri:            Primary plane
> + * @spr:            Sprite plane
> + *
> + * arg[3]:
> + *
> + * @blt:            Blitter
> + * @mmap-wc:        MMAP-WC
> + * @render:         Render
> + */
> +
> +/**
> + * SUBTEST: %s-2p-scndscrn-%s-indfb-draw-%s
> + * Description: Draw a set of rectangles on the screen using the provided method
> + * Driver requirement: i915
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @cur:            Cursor plane
> + * @pri:            Primary plane
> + * @spr:            Sprite plane
> + *
> + * arg[3]:
> + *
> + * @mmap-cpu:       MMAP-CPU
> + * @mmap-gtt:       MMAP-GTT
> + * @pwrite:         PWRITE
> + */
> +
> +/**
> + * SUBTEST: %s-2p-scndscrn-pri-shrfb-draw-%s
> + * Description: Draw a set of rectangles on the screen using the provided method
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @blt:            Blitter
> + * @mmap-wc:        MMAP-WC
> + * @render:         Render
> + */
> +
> +/**
> + * SUBTEST: %s-2p-scndscrn-pri-shrfb-draw-%s
> + * Description: Draw a set of rectangles on the screen using the provided method
> + * Driver requirement: i915
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @mmap-cpu:       MMAP-CPU
> + * @mmap-gtt:       MMAP-GTT
> + * @pwrite:         PWRITE
> + */
> +
>   /*
>    * draw - draw a set of rectangles on the screen using the provided method
>    *
> @@ -2085,6 +2414,28 @@ static void draw_subtest(const struct test_mode *t)
>   	}
>   }
>   
> +/**
> + * SUBTEST: %s-%dp-pri-indfb-multidraw
> + * Description: Draw a set of rectangles on the screen using alternated drawing methods
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + */
> +
>   /*
>    * multidraw - draw a set of rectangles on the screen using alternated drawing
>    *             methods
> @@ -2233,6 +2584,68 @@ static void badformat_subtest(const struct test_mode *t)
>   	do_assertions(assertions);
>   }
>   
> +/**
> + * SUBTEST: %s-%s-draw-%s
> + * Description: Test pixel formats (%arg[2]) that are not FORMAT_DEFAULT
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @rgb101010:      FORMAT_RGB101010
> + * @rgb565:         FORMAT_RGB565
> + *
> + * arg[3]:
> + *
> + * @blt:            Blitter
> + * @mmap-wc:        MMAP-WC
> + * @render:         Render
> + */
> +
> +/**
> + * SUBTEST: %s-%s-draw-%s
> + * Description: Test pixel formats (%arg[2]) that are not FORMAT_DEFAULT
> + * Driver requirement: i915
> + * Functionality: kms_core, gtt
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @rgb101010:      FORMAT_RGB101010
> + * @rgb565:         FORMAT_RGB565
> + *
> + * arg[3]:
> + *
> + * @mmap-cpu:       MMAP-CPU
> + * @mmap-gtt:       MMAP-GTT
> + * @pwrite:         PWRITE
> + */
> +
>   /*
>    * format_draw - test pixel formats that are not FORMAT_DEFAULT
>    *
> @@ -2276,6 +2689,25 @@ static bool tiling_is_valid(int feature_flags, enum tiling_type tiling)
>   	}
>   }
>   
> +/**
> + * SUBTEST: %s-slowdraw
> + * Description: Sleep a little bit between drawing operations with %arg[1]
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + */
> +
>   /*
>    * slow_draw - sleep a little bit between drawing operations
>    *
> @@ -2382,6 +2814,70 @@ static void page_flip_for_params(struct modeset_params *params,
>   	}
>   }
>   
> +/**
> + * SUBTEST: %s-%dp-primscrn-%s-%sflip-blt
> + * Description: Just exercise page flips with the patterns we have
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + *
> + * arg[3]:
> + *
> + * @indfb:          Individual fb
> + * @shrfb:          Shared fb
> + *
> + * arg[4]:
> + *
> + * @ms:             Modeset
> + * @pg:             Page flip
> + * @pl:             Plane change
> + */
> +
> +/**
> + * SUBTEST: %s-2p-scndscrn-%s-%sflip-blt
> + * Description: Just exercise page flips with the patterns we have
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @indfb:          Individual fb
> + * @shrfb:          Shared fb
> + *
> + * arg[3]:
> + *
> + * @ms:             Modeset
> + * @pg:             Page flip
> + * @pl:             Plane change
> + */
> +
>   /*
>    * flip - just exercise page flips with the patterns we have
>    *
> @@ -2442,6 +2938,30 @@ static void flip_subtest(const struct test_mode *t)
>   	igt_remove_fb(drm.fd, &fb2);
>   }
>   
> +/**
> + * SUBTEST: %s-%dp-%s-fliptrack-mmap-gtt
> + * Description: Check if the hardware tracking works after page flips
> + * Driver requirement: i915
> + * Functionality: fbc, gtt, kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @fbc:            FBC
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + *
> + * arg[3]:
> + *
> + * @indfb:          Individual fb
> + * @shrfb:          Shared fb
> + */
> +
>   /*
>    * fliptrack - check if the hardware tracking works after page flips
>    *
> @@ -2490,6 +3010,58 @@ static void fliptrack_subtest(const struct test_mode *t, enum flip_type type)
>   	igt_remove_fb(drm.fd, &fb2);
>   }
>   
> +/**
> + * SUBTEST: %s-%dp-primscrn-%s-indfb-move
> + * Description: Just move the %arg[3] around
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + *
> + * arg[3]:
> + *
> + * @spr:            Sprite plane
> + * @cur:            Cursor plane
> + */
> +
> +/**
> + * SUBTEST: %s-2p-scndscrn-%s-indfb-move
> + * Description: Just move the %arg[2] around
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @spr:            Sprite plane
> + * @cur:            Cursor plane
> + */
> +
>   /*
>    * move - just move the sprite or cursor around
>    *
> @@ -2543,6 +3115,58 @@ static void move_subtest(const struct test_mode *t)
>   	}
>   }
>   
> +/**
> + * SUBTEST: %s-%dp-primscrn-%s-indfb-onoff
> + * Description: Just enable and disable the %arg[3] a few times
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + *
> + * arg[3]:
> + *
> + * @spr:            Sprite plane
> + * @cur:            Cursor plane
> + */
> +
> +/**
> + * SUBTEST: %s-2p-scndscrn-%s-indfb-onoff
> + * Description: Just enable and disable the %arg[2] a few times
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @spr:            Sprite plane
> + * @cur:            Cursor plane
> + */
> +
>   /*
>    * onoff - just enable and disable the sprite or cursor plane a few times
>    *
> @@ -2602,6 +3226,36 @@ static bool prim_plane_disabled(void)
>   	return !prim_mode_params.primary.plane->values[IGT_PLANE_FB_ID];
>   }
>   
> +/**
> + * SUBTEST: %s-%dp-primscrn-spr-indfb-fullscreen
> + * Description: Put a fullscreen plane covering the whole screen
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: %s-2p-scndscrn-spr-indfb-fullscreen
> + * Description: Put a fullscreen plane covering the whole screen
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2].values:   1, 2
> + */
> +
>   /*
>    * fullscreen_plane - put a fullscreen plane covering the whole screen
>    *
> @@ -2663,6 +3317,31 @@ static void fullscreen_plane_subtest(const struct test_mode *t)
>   	igt_remove_fb(drm.fd, &fullscreen_fb);
>   }
>   
> +/**
> + * SUBTEST: %s-%s-scaledprimary
> + * Description: Try different primary plane scaling strategies
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @indfb:          Individual fb
> + * @shrfb:          Shared fb
> + */
> +
>   /*
>    * scaledprimary - try different primary plane scaling strategies
>    *
> @@ -2768,6 +3447,27 @@ static void scaledprimary_subtest(const struct test_mode *t)
>   
>   	igt_remove_fb(drm.fd, &new_fb);
>   }
> +
> +/**
> + * SUBTEST: %s-modesetfrombusy
> + * Description: Modeset from a busy buffer to a non-busy buffer with %arg[1]
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + */
> +
>   /**
>    * modesetfrombusy - modeset from a busy buffer to a non-busy buffer
>    *
> @@ -2811,6 +3511,26 @@ static void modesetfrombusy_subtest(const struct test_mode *t)
>   	igt_remove_fb(drm.fd, &fb2);
>   }
>   
> +/**
> + * SUBTEST: %s-suspend
> + * Description: Make sure suspend/resume keeps us on the same state of %arg[1]
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + */
> +
>   /**
>    * suspend - make sure suspend/resume keeps us on the same state
>    *
> @@ -2843,6 +3563,26 @@ static void suspend_subtest(const struct test_mode *t)
>   	do_assertions(0);
>   }
>   
> +/**
> + * SUBTEST: %s-farfromfence-mmap-gtt
> + * Description: Test drawing as far from the fence start as possible
> + * Driver requirement: i915
> + * Functionality: gtt, kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @drrs:           DRRS
> + * @fbc:            FBC
> + * @psr:            PSR
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @psrdrrs:        PSR and DRRS
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + */
> +
>   /**
>    * farfromfence - test drawing as far from the fence start as possible
>    *
> @@ -2939,6 +3679,23 @@ static void try_invalid_strides(void)
>   	gem_close(drm.fd, gem_handle);
>   }
>   
> +/**
> + * SUBTEST: %s-badstride
> + * Description: Try to use buffers with strides that are not supported
> + * Driver requirement: any
> + * Functionality: fbc, kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @fbc:            FBC
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + */
> +
>   /**
>    * badstride - try to use buffers with strides that are not supported
>    *
> @@ -3007,6 +3764,23 @@ static void badstride_subtest(const struct test_mode *t)
>   	igt_remove_fb(drm.fd, &wide_fb);
>   }
>   
> +/**
> + * SUBTEST: %s-stridechange
> + * Description: Change the frontbuffer stride by doing a modeset
> + * Driver requirement: any
> + * Functionality: fbc, kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @fbc:            FBC
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + */
> +
>   /**
>    * stridechange - change the frontbuffer stride by doing a modeset
>    *
> @@ -3071,6 +3845,30 @@ static void stridechange_subtest(const struct test_mode *t)
>   	do_assertions(rc ? 0 : DONT_ASSERT_FBC_STATUS);
>   }
>   
> +/**
> + * SUBTEST: %s-tiling-%s
> + * Description: Test %arg[2] formats, if the tiling format supports FBC do the
> + *              basic drawing test, else set the mode & test if FBC is disabled
> + * Driver requirement: any
> + * Functionality: fbc, kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @fbc:            FBC
> + * @fbcdrrs:        FBC and DRRS
> + * @fbcpsr:         FBC and PSR
> + * @fbcpsrdrrs:     All features (DRRS, FBC & PSR)
> + *
> + * arg[2]:
> + *
> + * @4:              4 tiling
> + * @linear:         Linear tiling
> + * @y:              Y tiling
> + */
> +
>   /**
>    * tiling_disable_fbc_subtest - Check if tiling is unsupported by FBC
>    *
> @@ -3120,6 +3918,16 @@ static void tiling_disable_fbc_subtest(const struct test_mode *t)
>   	igt_remove_fb(drm.fd, &new_fb);
>   }
>   
> +/**
> + * SUBTEST: basic
> + * Description: Do some basic operations regardless of which features are enabled
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + */
> +
>   /*
>    * basic - do some basic operations regardless of which features are enabled
>    *


More information about the igt-dev mailing list