[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