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

Bhanuprakash Modem bhanuprakash.modem at intel.com
Thu Jun 29 14:48:11 UTC 2023


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
+ *
+ * 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
  *
-- 
2.40.0



More information about the igt-dev mailing list