* [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset
@ 2023-12-07 6:48 Bhanuprakash Modem
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 01/10] tests/kms_vrr: Use lib helper to print connector modes Bhanuprakash Modem
` (11 more replies)
0 siblings, 12 replies; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:48 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani
Add new subtests to
- Toggle the VRR enabled
- Switch between low refresh rate to high refresh rate and vice versa
seamlessly without modeset.
V2: Minor cleanups
V3: Fix few condition checks
V4: Fix Negative subtest
V5: Different tests for VRR & DRRS
V6: Include VRR-fastset as part of this series.
Bhanuprakash Modem (10):
tests/kms_vrr: Use lib helper to print connector modes
tests/kms_vrr: Clear VRR before exit
tests/kms_vrr: Move all config constaints to new function
tests/kms_vrr: Fix bigjoiner constraint
tests/kms_vrr: Fix the logic to calculate expected rate
tests/kms_vrr: Add a helper to get the low refresh mode
tests/kms_vrr: Add new subtest to switch RR without modeset
tests/kms_vrr: Add new subtest for DRRS without modeset
tests/kms_vrr: New subtest for toggle VRR during fastsets
HAX: DO_NOT_MERGE: test only vrr tests
tests/intel-ci/fast-feedback.testlist | 180 +--------------
tests/intel-ci/xe-fast-feedback.testlist | 267 +----------------------
tests/kms_vrr.c | 243 +++++++++++++++++----
3 files changed, 213 insertions(+), 477 deletions(-)
--
2.40.0
^ permalink raw reply [flat|nested] 22+ messages in thread
* [igt-dev] [i-g-t V6 01/10] tests/kms_vrr: Use lib helper to print connector modes
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
@ 2023-12-07 6:48 ` Bhanuprakash Modem
2023-12-07 14:08 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 02/10] tests/kms_vrr: Clear VRR before exit Bhanuprakash Modem
` (10 subsequent siblings)
11 siblings, 1 reply; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:48 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani
Instead of writing a new logic at test level, use library helper
to print connector modes.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_vrr.c | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index 5c190cd8c..bbdb54682 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -65,13 +65,6 @@
*/
#define TEST_DURATION_NS (5000000000ull)
-#define DRM_MODE_FMT "\"%s\": %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
-#define DRM_MODE_ARG(m) \
- (m)->name, (m)->vrefresh, (m)->clock, \
- (m)->hdisplay, (m)->hsync_start, (m)->hsync_end, (m)->htotal, \
- (m)->vdisplay, (m)->vsync_start, (m)->vsync_end, (m)->vtotal, \
- (m)->type, (m)->flags
-
enum {
TEST_BASIC = 1 << 0,
TEST_DPMS = 1 << 1,
@@ -162,14 +155,16 @@ output_mode_with_maxrate(igt_output_t *output, unsigned int vrr_max)
drmModeConnectorPtr connector = output->config.connector;
drmModeModeInfo mode = *igt_output_get_mode(output);
- igt_debug("Default Mode " DRM_MODE_FMT "\n", DRM_MODE_ARG(&mode));
+ igt_info("Default Mode: ");
+ kmstest_dump_mode(&mode);
for (i = 0; i < connector->count_modes; i++)
if (connector->modes[i].vrefresh > mode.vrefresh &&
connector->modes[i].vrefresh <= vrr_max)
mode = connector->modes[i];
- igt_debug("Override Mode " DRM_MODE_FMT "\n", DRM_MODE_ARG(&mode));
+ igt_info("Override Mode: ");
+ kmstest_dump_mode(&mode);
return mode;
}
--
2.40.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [i-g-t V6 02/10] tests/kms_vrr: Clear VRR before exit
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 01/10] tests/kms_vrr: Use lib helper to print connector modes Bhanuprakash Modem
@ 2023-12-07 6:48 ` Bhanuprakash Modem
2023-12-07 14:12 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 03/10] tests/kms_vrr: Move all config constaints to new function Bhanuprakash Modem
` (9 subsequent siblings)
11 siblings, 1 reply; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:48 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani
Before exiting the subtest, make sure to clear the VRR.
V2: - New function for cleanup
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_vrr.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index bbdb54682..13e7f3ca6 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -469,8 +469,11 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
igt_assert_f(result < 10,
"Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold exceeded, result was %u%%\n",
((range.max + range.min) / 2), rate, (flags & TEST_NEGATIVE)? "on" : "off", result);
+}
- /* Clean-up */
+static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
+{
+ igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED, false);
igt_plane_set_fb(data->primary, NULL);
igt_output_set_pipe(output, PIPE_NONE);
igt_output_override_mode(output, NULL);
@@ -510,6 +513,9 @@ run_vrr_test(data_t *data, test_t test, uint32_t flags)
igt_dynamic_f("pipe-%s-%s",
kmstest_pipe_name(pipe), output->name)
test(data, pipe, output, flags);
+
+ test_cleanup(data, pipe, output);
+
break;
}
}
--
2.40.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [i-g-t V6 03/10] tests/kms_vrr: Move all config constaints to new function
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 01/10] tests/kms_vrr: Use lib helper to print connector modes Bhanuprakash Modem
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 02/10] tests/kms_vrr: Clear VRR before exit Bhanuprakash Modem
@ 2023-12-07 6:48 ` Bhanuprakash Modem
2023-12-07 16:04 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 04/10] tests/kms_vrr: Fix bigjoiner constraint Bhanuprakash Modem
` (8 subsequent siblings)
11 siblings, 1 reply; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:48 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani
No functional change, cleanup only. Move all config checks
to new function.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_vrr.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index 13e7f3ca6..df241aa6c 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -483,6 +483,21 @@ static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
igt_remove_fb(data->drm_fd, &data->fb0);
}
+static bool config_constraint(igt_output_t *output, uint32_t flags)
+{
+ if (!has_vrr(output))
+ return false;
+
+ /* For Negative tests, panel should be non-vrr. */
+ if ((flags & TEST_NEGATIVE) && vrr_capable(output))
+ return false;
+
+ if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output))
+ return false;
+
+ return true;
+}
+
/* Runs tests on outputs that are VRR capable. */
static void
run_vrr_test(data_t *data, test_t test, uint32_t flags)
@@ -492,14 +507,7 @@ run_vrr_test(data_t *data, test_t test, uint32_t flags)
for_each_connected_output(&data->display, output) {
enum pipe pipe;
- if (!has_vrr(output))
- continue;
-
- /* For Negative tests, panel should be non-vrr. */
- if ((flags & TEST_NEGATIVE) && vrr_capable(output))
- continue;
-
- if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output))
+ if (!config_constraint(output, flags))
continue;
for_each_pipe(&data->display, pipe) {
--
2.40.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [i-g-t V6 04/10] tests/kms_vrr: Fix bigjoiner constraint
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
` (2 preceding siblings ...)
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 03/10] tests/kms_vrr: Move all config constaints to new function Bhanuprakash Modem
@ 2023-12-07 6:48 ` Bhanuprakash Modem
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 05/10] tests/kms_vrr: Fix the logic to calculate expected rate Bhanuprakash Modem
` (7 subsequent siblings)
11 siblings, 0 replies; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:48 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani
Before starting the subtest, we are checking the selected pipe/output
combo validity with default mode, but inside the subtest we are using
the mode with highest resolution.
Few panels exposing 4K as a default mode even though it supports 8K,
in this scenario test may misbehave due to the bigjoiner involvement.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_vrr.c | 62 +++++++++++++++++++++++++++++++------------------
1 file changed, 39 insertions(+), 23 deletions(-)
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index df241aa6c..4540d8b4b 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -163,9 +163,6 @@ output_mode_with_maxrate(igt_output_t *output, unsigned int vrr_max)
connector->modes[i].vrefresh <= vrr_max)
mode = connector->modes[i];
- igt_info("Override Mode: ");
- kmstest_dump_mode(&mode);
-
return mode;
}
@@ -233,21 +230,7 @@ static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
drmModeModeInfo mode;
cairo_t *cr;
- /* Reset output */
- igt_display_reset(&data->display);
- igt_output_set_pipe(output, pipe);
-
- /* Capture VRR range */
- data->range = get_vrr_range(data, output);
-
- /* Override mode with max vrefresh.
- * - vrr_min range should be less than the override mode vrefresh.
- * - Limit the vrr_max range with the override mode vrefresh.
- */
- mode = output_mode_with_maxrate(output, data->range.max);
- igt_require(mode.vrefresh > data->range.min);
- data->range.max = mode.vrefresh;
- igt_output_override_mode(output, &mode);
+ mode = *igt_output_get_mode(output);
/* Prepare resources */
igt_create_color_fb(data->drm_fd, mode.hdisplay, mode.vdisplay,
@@ -483,7 +466,36 @@ static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
igt_remove_fb(data->drm_fd, &data->fb0);
}
-static bool config_constraint(igt_output_t *output, uint32_t flags)
+static bool output_constraint(data_t *data, igt_output_t *output)
+{
+ drmModeModeInfo mode;
+
+ /* Reset output */
+ igt_display_reset(&data->display);
+
+ /* Capture VRR range */
+ data->range = get_vrr_range(data, output);
+
+ /*
+ * Override mode with max vrefresh.
+ * - vrr_min range should be less than the override mode vrefresh.
+ * - Limit the vrr_max range with the override mode vrefresh.
+ */
+ mode = output_mode_with_maxrate(output, data->range.max);
+ if (mode.vrefresh < data->range.min)
+ return false;
+
+ data->range.max = mode.vrefresh;
+
+ igt_info("Override Mode: ");
+ kmstest_dump_mode(&mode);
+
+ igt_output_override_mode(output, &mode);
+
+ return true;
+}
+
+static bool config_constraint(data_t *data, igt_output_t *output, uint32_t flags)
{
if (!has_vrr(output))
return false;
@@ -495,6 +507,9 @@ static bool config_constraint(igt_output_t *output, uint32_t flags)
if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output))
return false;
+ if (!output_constraint(data, output))
+ return false;
+
return true;
}
@@ -507,16 +522,17 @@ run_vrr_test(data_t *data, test_t test, uint32_t flags)
for_each_connected_output(&data->display, output) {
enum pipe pipe;
- if (!config_constraint(output, flags))
+ if (!config_constraint(data, output, flags))
continue;
for_each_pipe(&data->display, pipe) {
if (igt_pipe_connector_valid(pipe, output)) {
- igt_display_reset(&data->display);
-
igt_output_set_pipe(output, pipe);
- if (!intel_pipe_output_combo_valid(&data->display))
+
+ if (!intel_pipe_output_combo_valid(&data->display)) {
+ igt_output_set_pipe(output, PIPE_NONE);
continue;
+ }
igt_dynamic_f("pipe-%s-%s",
kmstest_pipe_name(pipe), output->name)
--
2.40.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [i-g-t V6 05/10] tests/kms_vrr: Fix the logic to calculate expected rate
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
` (3 preceding siblings ...)
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 04/10] tests/kms_vrr: Fix bigjoiner constraint Bhanuprakash Modem
@ 2023-12-07 6:48 ` Bhanuprakash Modem
2023-12-11 6:56 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 06/10] tests/kms_vrr: Add a helper to get the low refresh mode Bhanuprakash Modem
` (6 subsequent siblings)
11 siblings, 1 reply; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:48 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani
Fix the condition check to measure the expected refresh rate.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_vrr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index 4540d8b4b..db82cd008 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -329,7 +329,7 @@ flip_and_measure(data_t *data, igt_output_t *output, enum pipe pipe,
* difference between 144Hz and 143Hz which should give this
* enough accuracy for most use cases.
*/
- if ((rate_ns < vtest_ns.min) && (rate_ns >= vtest_ns.max))
+ if ((rate_ns <= vtest_ns.min) && (rate_ns >= vtest_ns.max))
diff_ns = rate_ns;
else
diff_ns = vtest_ns.max;
--
2.40.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [i-g-t V6 06/10] tests/kms_vrr: Add a helper to get the low refresh mode
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
` (4 preceding siblings ...)
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 05/10] tests/kms_vrr: Fix the logic to calculate expected rate Bhanuprakash Modem
@ 2023-12-07 6:48 ` Bhanuprakash Modem
2023-12-07 14:42 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 07/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
` (5 subsequent siblings)
11 siblings, 1 reply; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:48 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani
To switch the refresh rate seamlessly, add a new helper to
identify the mode with the same resolution but low vrefresh
and clock.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_vrr.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index db82cd008..f3cd18dcd 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -166,6 +166,24 @@ output_mode_with_maxrate(igt_output_t *output, unsigned int vrr_max)
return mode;
}
+static drmModeModeInfo
+low_rr_mode_with_same_res(igt_output_t *output, unsigned int vrr_min)
+{
+ int i;
+ drmModeConnectorPtr connector = output->config.connector;
+ drmModeModeInfo mode = *igt_output_get_mode(output);
+
+ for (i = 0; i < connector->count_modes; i++)
+ if (connector->modes[i].hdisplay == mode.hdisplay &&
+ connector->modes[i].vdisplay == mode.vdisplay &&
+ connector->modes[i].clock < mode.clock &&
+ connector->modes[i].vrefresh < mode.vrefresh &&
+ connector->modes[i].vrefresh >= vrr_min)
+ mode = connector->modes[i];
+
+ return mode;
+}
+
/* Read min and max vrr range from the connector debugfs. */
static range_t
get_vrr_range(data_t *data, igt_output_t *output)
--
2.40.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [i-g-t V6 07/10] tests/kms_vrr: Add new subtest to switch RR without modeset
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
` (5 preceding siblings ...)
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 06/10] tests/kms_vrr: Add a helper to get the low refresh mode Bhanuprakash Modem
@ 2023-12-07 6:48 ` Bhanuprakash Modem
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 08/10] tests/kms_vrr: Add new subtest for DRRS " Bhanuprakash Modem
` (4 subsequent siblings)
11 siblings, 0 replies; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:48 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani
Add new subtest to switch between low refresh rate to high
refresh rate and vice versa seamlessly without modeset.
Below are the sequence of operations to perform:
1. Use High RR mode + VRR On -> Measure vblank timings
2. Switch to Low RR mode -> Measure vblank timings
3. Switch back to High RR mode -> Measure vblank timings
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>
---
tests/kms_vrr.c | 95 +++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 85 insertions(+), 10 deletions(-)
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index f3cd18dcd..6cb5a9b10 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -53,6 +53,10 @@
* SUBTEST: flipline
* Description: Make sure that flips happen at flipline decision boundary.
*
+ * SUBTEST: seamless-rr-switch-vrr
+ * Description: Test to switch RR seamlessly without modeset.
+ * Functionality: adaptive_sync, lrr
+ *
* SUBTEST: negative-basic
* Description: Make sure that VRR should not be enabled on the Non-VRR panel.
*/
@@ -70,7 +74,14 @@ enum {
TEST_DPMS = 1 << 1,
TEST_SUSPEND = 1 << 2,
TEST_FLIPLINE = 1 << 3,
- TEST_NEGATIVE = 1 << 4,
+ TEST_SEAMLESS_VRR = 1 << 4,
+ TEST_NEGATIVE = 1 << 5,
+};
+
+enum {
+ HIGH_RR_MODE,
+ LOW_RR_MODE,
+ RR_MODES_COUNT,
};
typedef struct range {
@@ -85,6 +96,7 @@ typedef struct data {
igt_fb_t fb0;
igt_fb_t fb1;
range_t range;
+ drmModeModeInfo switch_modes[RR_MODES_COUNT];
} data_t;
typedef struct vtest_ns {
@@ -397,6 +409,8 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
igt_info("VRR Test execution on %s, PIPE_%s with VRR range: (%u-%u) Hz\n",
output->name, kmstest_pipe_name(pipe), range.min, range.max);
+ igt_info("Override Mode: ");
+ kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
set_vrr_on_pipe(data, pipe, true);
@@ -472,6 +486,53 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
((range.max + range.min) / 2), rate, (flags & TEST_NEGATIVE)? "on" : "off", result);
}
+static void
+test_seamless_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
+{
+ uint32_t result;
+ vtest_ns_t vtest_ns;
+ uint64_t rate;
+
+ igt_info("Use HIGH_RR Mode as default: ");
+ kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
+
+ prepare_test(data, output, pipe);
+ vtest_ns = get_test_rate_ns(data->range);
+
+ igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED, true);
+ igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
+
+ rate = vtest_ns.max;
+ result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
+ igt_assert_f(result > 75,
+ "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
+ data->range.max, rate, result);
+
+ /* Switch to low rr mode without modeset. */
+ igt_info("Switch to LOW_RR Mode: ");
+ kmstest_dump_mode(&data->switch_modes[LOW_RR_MODE]);
+ igt_output_override_mode(output, &data->switch_modes[LOW_RR_MODE]);
+ igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
+
+ rate = vtest_ns.min;
+ result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
+ igt_assert_f(result > 75,
+ "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
+ data->range.min, rate, result);
+
+ /* Switch back to high rr mode without modeset. */
+ igt_info("Switch back to HIGH_RR Mode: ");
+ kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
+ igt_output_override_mode(output, &data->switch_modes[HIGH_RR_MODE]);
+ igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
+
+ rate = vtest_ns.mid;
+ result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
+ igt_assert_f(result > 75,
+ "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
+ ((data->range.max + data->range.min) / 2), rate, result);
+}
+
static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
{
igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED, false);
@@ -484,9 +545,11 @@ static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
igt_remove_fb(data->drm_fd, &data->fb0);
}
-static bool output_constraint(data_t *data, igt_output_t *output)
+static bool output_constraint(data_t *data, igt_output_t *output, uint32_t flags)
{
- drmModeModeInfo mode;
+ if ((flags & TEST_SEAMLESS_VRR) &&
+ output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
+ return false;
/* Reset output */
igt_display_reset(&data->display);
@@ -499,16 +562,22 @@ static bool output_constraint(data_t *data, igt_output_t *output)
* - vrr_min range should be less than the override mode vrefresh.
* - Limit the vrr_max range with the override mode vrefresh.
*/
- mode = output_mode_with_maxrate(output, data->range.max);
- if (mode.vrefresh < data->range.min)
+ data->switch_modes[HIGH_RR_MODE] = output_mode_with_maxrate(output, data->range.max);
+ if (data->switch_modes[HIGH_RR_MODE].vrefresh < data->range.min)
return false;
- data->range.max = mode.vrefresh;
+ data->range.max = data->switch_modes[HIGH_RR_MODE].vrefresh;
+ igt_output_override_mode(output, &data->switch_modes[HIGH_RR_MODE]);
- igt_info("Override Mode: ");
- kmstest_dump_mode(&mode);
+ /* Search for a low refresh rate mode. */
+ if (!(flags & TEST_SEAMLESS_VRR))
+ return true;
- igt_output_override_mode(output, &mode);
+ data->switch_modes[LOW_RR_MODE] = low_rr_mode_with_same_res(output, data->range.min);
+ if (data->switch_modes[LOW_RR_MODE].vrefresh == data->switch_modes[HIGH_RR_MODE].vrefresh)
+ return false;
+
+ data->range.min = data->switch_modes[LOW_RR_MODE].vrefresh;
return true;
}
@@ -525,7 +594,7 @@ static bool config_constraint(data_t *data, igt_output_t *output, uint32_t flags
if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output))
return false;
- if (!output_constraint(data, output))
+ if (!output_constraint(data, output, flags))
return false;
return true;
@@ -601,6 +670,12 @@ igt_main
igt_subtest_with_dynamic("negative-basic")
run_vrr_test(&data, test_basic, TEST_NEGATIVE);
+ igt_describe("Test to switch RR seamlessly without modeset.");
+ igt_subtest_with_dynamic("seamless-rr-switch-vrr"){
+ igt_require_intel(data.drm_fd);
+ run_vrr_test(&data, test_seamless_rr_basic, TEST_SEAMLESS_VRR);
+ }
+
igt_fixture {
igt_display_fini(&data.display);
drm_close_driver(data.drm_fd);
--
2.40.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [i-g-t V6 08/10] tests/kms_vrr: Add new subtest for DRRS without modeset
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
` (6 preceding siblings ...)
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 07/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
@ 2023-12-07 6:48 ` Bhanuprakash Modem
2023-12-11 8:35 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 09/10] tests/kms_vrr: New subtest for toggle VRR during fastsets Bhanuprakash Modem
` (3 subsequent siblings)
11 siblings, 1 reply; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:48 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani
This test is same as 'kms_vrr@seamless-rr-switch-vrr' but
performs on DRRS panel without enabling the VRR.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>
---
tests/kms_vrr.c | 69 +++++++++++++++++++++++++++++++++++--------------
1 file changed, 49 insertions(+), 20 deletions(-)
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index 6cb5a9b10..de2ee13c7 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -31,6 +31,7 @@
*/
#include "igt.h"
+#include "i915/intel_drrs.h"
#include "sw_sync.h"
#include <fcntl.h>
#include <signal.h>
@@ -57,6 +58,10 @@
* Description: Test to switch RR seamlessly without modeset.
* Functionality: adaptive_sync, lrr
*
+ * SUBTEST: seamless-rr-switch-drrs
+ * Description: Test to switch RR seamlessly without modeset.
+ * Functionality: adaptive_sync, drrs
+ *
* SUBTEST: negative-basic
* Description: Make sure that VRR should not be enabled on the Non-VRR panel.
*/
@@ -75,7 +80,8 @@ enum {
TEST_SUSPEND = 1 << 2,
TEST_FLIPLINE = 1 << 3,
TEST_SEAMLESS_VRR = 1 << 4,
- TEST_NEGATIVE = 1 << 5,
+ TEST_SEAMLESS_DRRS = 1 << 5,
+ TEST_NEGATIVE = 1 << 6,
};
enum {
@@ -492,24 +498,27 @@ test_seamless_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint3
uint32_t result;
vtest_ns_t vtest_ns;
uint64_t rate;
+ bool vrr = !!(flags & TEST_SEAMLESS_VRR);
- igt_info("Use HIGH_RR Mode as default: ");
+ igt_info("Use HIGH_RR Mode as default (VRR: %s): ", vrr ? "ON" : "OFF");
kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
prepare_test(data, output, pipe);
vtest_ns = get_test_rate_ns(data->range);
- igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED, true);
- igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
+ if (vrr) {
+ igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED, true);
+ igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
+ }
rate = vtest_ns.max;
result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
igt_assert_f(result > 75,
- "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
- data->range.max, rate, result);
+ "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold not reached, result was %u%%\n",
+ data->range.max, rate, vrr ? "on" : "off", result);
/* Switch to low rr mode without modeset. */
- igt_info("Switch to LOW_RR Mode: ");
+ igt_info("Switch to LOW_RR Mode (VRR: %s): ", vrr ? "ON" : "OFF");
kmstest_dump_mode(&data->switch_modes[LOW_RR_MODE]);
igt_output_override_mode(output, &data->switch_modes[LOW_RR_MODE]);
igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
@@ -517,25 +526,28 @@ test_seamless_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint3
rate = vtest_ns.min;
result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
igt_assert_f(result > 75,
- "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
- data->range.min, rate, result);
+ "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold not reached, result was %u%%\n",
+ data->range.min, rate, vrr ? "on" : "off", result);
/* Switch back to high rr mode without modeset. */
- igt_info("Switch back to HIGH_RR Mode: ");
+ igt_info("Switch back to HIGH_RR Mode (VRR: %s): ", vrr ? "ON" : "OFF");
kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
igt_output_override_mode(output, &data->switch_modes[HIGH_RR_MODE]);
igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
rate = vtest_ns.mid;
result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
- igt_assert_f(result > 75,
- "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
- ((data->range.max + data->range.min) / 2), rate, result);
+ igt_assert_f(vrr ? (result > 75) : (result < 10),
+ "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold %s, result was %u%%\n",
+ ((data->range.max + data->range.min) / 2), rate,
+ vrr ? "on" : "off", vrr ? "not reached" : "exceeded", result);
}
static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
{
- igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED, false);
+ if (vrr_capable(output))
+ igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED, false);
+
igt_plane_set_fb(data->primary, NULL);
igt_output_set_pipe(output, PIPE_NONE);
igt_output_override_mode(output, NULL);
@@ -547,10 +559,16 @@ static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
static bool output_constraint(data_t *data, igt_output_t *output, uint32_t flags)
{
- if ((flags & TEST_SEAMLESS_VRR) &&
+ if ((flags & (TEST_SEAMLESS_VRR | TEST_SEAMLESS_DRRS)) &&
output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
return false;
+ if ((flags & TEST_SEAMLESS_DRRS) &&
+ !intel_output_has_drrs(data->drm_fd, output)) {
+ igt_info("Selected panel won't support DRRS.\n");
+ return false;
+ }
+
/* Reset output */
igt_display_reset(&data->display);
@@ -570,7 +588,7 @@ static bool output_constraint(data_t *data, igt_output_t *output, uint32_t flags
igt_output_override_mode(output, &data->switch_modes[HIGH_RR_MODE]);
/* Search for a low refresh rate mode. */
- if (!(flags & TEST_SEAMLESS_VRR))
+ if (!(flags & (TEST_SEAMLESS_VRR | TEST_SEAMLESS_DRRS)))
return true;
data->switch_modes[LOW_RR_MODE] = low_rr_mode_with_same_res(output, data->range.min);
@@ -587,6 +605,9 @@ static bool config_constraint(data_t *data, igt_output_t *output, uint32_t flags
if (!has_vrr(output))
return false;
+ if (flags & TEST_SEAMLESS_DRRS)
+ goto out;
+
/* For Negative tests, panel should be non-vrr. */
if ((flags & TEST_NEGATIVE) && vrr_capable(output))
return false;
@@ -594,6 +615,7 @@ static bool config_constraint(data_t *data, igt_output_t *output, uint32_t flags
if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output))
return false;
+out:
if (!output_constraint(data, output, flags))
return false;
@@ -670,10 +692,17 @@ igt_main
igt_subtest_with_dynamic("negative-basic")
run_vrr_test(&data, test_basic, TEST_NEGATIVE);
- igt_describe("Test to switch RR seamlessly without modeset.");
- igt_subtest_with_dynamic("seamless-rr-switch-vrr"){
- igt_require_intel(data.drm_fd);
- run_vrr_test(&data, test_seamless_rr_basic, TEST_SEAMLESS_VRR);
+ igt_subtest_group {
+ igt_fixture
+ igt_require_intel(data.drm_fd);
+
+ igt_describe("Test to switch RR seamlessly without modeset.");
+ igt_subtest_with_dynamic("seamless-rr-switch-vrr")
+ run_vrr_test(&data, test_seamless_rr_basic, TEST_SEAMLESS_VRR);
+
+ igt_describe("Test to switch RR seamlessly without modeset.");
+ igt_subtest_with_dynamic("seamless-rr-switch-drrs")
+ run_vrr_test(&data, test_seamless_rr_basic, TEST_SEAMLESS_DRRS);
}
igt_fixture {
--
2.40.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [i-g-t V6 09/10] tests/kms_vrr: New subtest for toggle VRR during fastsets
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
` (7 preceding siblings ...)
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 08/10] tests/kms_vrr: Add new subtest for DRRS " Bhanuprakash Modem
@ 2023-12-07 6:48 ` Bhanuprakash Modem
2023-12-07 10:40 ` Srinivas, Vidya
2023-12-07 6:49 ` [igt-dev] [i-g-t V6 10/10] HAX: DO_NOT_MERGE: test only vrr tests Bhanuprakash Modem
` (2 subsequent siblings)
11 siblings, 1 reply; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:48 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani; +Cc: Nidhi Gupta
Allow VRR to be toggled during fastsets, without full modeset.
This patch enables 'kms_vrr@flip-basic' subtest to verify fastset
too.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
tests/kms_vrr.c | 30 +++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index de2ee13c7..1ace970a5 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -41,6 +41,10 @@
* Description: Tests that VRR is enabled and that the difference between flip
* timestamps converges to the requested rate
*
+ * SUBTEST: flip-basic-fastset
+ * Description: Tests that VRR is enabled without modeset and that the difference
+ * between flip timestamps converges to the requested rate
+ *
* SUBTEST: flip-dpms
* Description: Tests with DPMS that VRR is enabled and that the difference
* between flip timestamps converges to the requested rate.
@@ -81,7 +85,8 @@ enum {
TEST_FLIPLINE = 1 << 3,
TEST_SEAMLESS_VRR = 1 << 4,
TEST_SEAMLESS_DRRS = 1 << 5,
- TEST_NEGATIVE = 1 << 6,
+ TEST_FASTSET = 1 << 6,
+ TEST_NEGATIVE = 1 << 7,
};
enum {
@@ -253,11 +258,15 @@ static bool vrr_capable(igt_output_t *output)
}
/* Toggles variable refresh rate on the pipe. */
-static void set_vrr_on_pipe(data_t *data, enum pipe pipe, bool enabled)
+static void set_vrr_on_pipe(data_t *data, enum pipe pipe,
+ bool need_modeset, bool enabled)
{
igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED,
enabled);
- igt_display_commit2(&data->display, COMMIT_ATOMIC);
+
+ igt_assert(igt_display_try_commit_atomic(&data->display,
+ need_modeset ? DRM_MODE_ATOMIC_ALLOW_MODESET : 0,
+ NULL) == 0);
}
/* Prepare the display for testing on the given pipe. */
@@ -418,7 +427,7 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
igt_info("Override Mode: ");
kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
- set_vrr_on_pipe(data, pipe, true);
+ set_vrr_on_pipe(data, pipe, !(flags & TEST_FASTSET), true);
/*
* Do a short run with VRR, but don't check the result.
@@ -484,7 +493,7 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
* modeset. And the expected behavior is the same as disabling VRR on
* a VRR capable panel.
*/
- set_vrr_on_pipe(data, pipe, (flags & TEST_NEGATIVE)? true : false);
+ set_vrr_on_pipe(data, pipe, !(flags & TEST_FASTSET), (flags & TEST_NEGATIVE) ? true : false);
rate = vtest_ns.mid;
result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
igt_assert_f(result < 10,
@@ -506,10 +515,8 @@ test_seamless_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint3
prepare_test(data, output, pipe);
vtest_ns = get_test_rate_ns(data->range);
- if (vrr) {
- igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED, true);
- igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
- }
+ if (vrr)
+ set_vrr_on_pipe(data, pipe, false, true);
rate = vtest_ns.max;
result = flip_and_measure(data, output, pipe, rate, TEST_DURATION_NS);
@@ -703,6 +710,11 @@ igt_main
igt_describe("Test to switch RR seamlessly without modeset.");
igt_subtest_with_dynamic("seamless-rr-switch-drrs")
run_vrr_test(&data, test_seamless_rr_basic, TEST_SEAMLESS_DRRS);
+
+ igt_describe("Tests that VRR is enabled without modeset and that the difference "
+ "between flip timestamps converges to the requested rate");
+ igt_subtest_with_dynamic("flip-basic-fastset")
+ run_vrr_test(&data, test_basic, TEST_FASTSET);
}
igt_fixture {
--
2.40.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [i-g-t V6 10/10] HAX: DO_NOT_MERGE: test only vrr tests
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
` (8 preceding siblings ...)
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 09/10] tests/kms_vrr: New subtest for toggle VRR during fastsets Bhanuprakash Modem
@ 2023-12-07 6:49 ` Bhanuprakash Modem
2023-12-07 7:59 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_vrr: Add new subtest to switch RR without modeset (rev7) Patchwork
2023-12-07 8:01 ` [igt-dev] ✗ CI.xeBAT: " Patchwork
11 siblings, 0 replies; 22+ messages in thread
From: Bhanuprakash Modem @ 2023-12-07 6:49 UTC (permalink / raw)
To: igt-dev, ville.syrjala, mitulkumar.ajitkumar.golani
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/intel-ci/fast-feedback.testlist | 180 +--------------
tests/intel-ci/xe-fast-feedback.testlist | 267 +----------------------
2 files changed, 12 insertions(+), 435 deletions(-)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index aeba0ab29..5bed5310e 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -1,177 +1,9 @@
# Try to load the driver if it's not available yet.
igt@i915_module_load@load
-# Keep alphabetically sorted by default
-igt@core_auth@basic-auth
-igt@debugfs_test@read_all_entries
-igt@debugfs_test@basic-hwmon
-igt@fbdev@eof
-igt@fbdev@info
-igt@fbdev@nullptr
-igt@fbdev@read
-igt@fbdev@write
-igt@gem_basic@bad-close
-igt@gem_basic@create-close
-igt@gem_basic@create-fd-close
-igt@gem_busy@busy@all-engines
-igt@gem_close_race@basic-process
-igt@gem_close_race@basic-threads
-igt@gem_ctx_create@basic
-igt@gem_ctx_create@basic-files
-igt@gem_ctx_exec@basic
-igt@gem_exec_basic@basic
-igt@gem_exec_create@basic
-igt@gem_exec_fence@basic-busy
-igt@gem_exec_fence@basic-wait
-igt@gem_exec_fence@basic-await
-igt@gem_exec_fence@nb-await
-igt@gem_exec_gttfill@basic
-igt@gem_exec_parallel@engines
-igt@gem_exec_store@basic
-igt@gem_flink_basic@bad-flink
-igt@gem_flink_basic@bad-open
-igt@gem_flink_basic@basic
-igt@gem_flink_basic@double-flink
-igt@gem_flink_basic@flink-lifetime
-igt@gem_huc_copy@huc-copy
-igt@gem_linear_blits@basic
-igt@gem_mmap@basic
-igt@gem_mmap_gtt@basic
-igt@gem_render_linear_blits@basic
-igt@gem_render_tiled_blits@basic
-igt@gem_ringfill@basic-all
-igt@gem_softpin@allocator-basic
-igt@gem_softpin@allocator-basic-reserve
-igt@gem_softpin@safe-alignment
-igt@gem_sync@basic-all
-igt@gem_sync@basic-each
-igt@gem_tiled_blits@basic
-igt@gem_tiled_fence_blits@basic
-igt@gem_tiled_pread_basic
-igt@gem_wait@busy@all-engines
-igt@gem_wait@wait@all-engines
-igt@i915_getparams_basic@basic-eu-total
-igt@i915_getparams_basic@basic-subslice-total
-igt@i915_hangman@error-state-basic
-igt@i915_pciid
-igt@kms_addfb_basic@addfb25-4-tiled
-igt@kms_addfb_basic@addfb25-bad-modifier
-igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling
-igt@kms_addfb_basic@addfb25-modifier-no-flag
-igt@kms_addfb_basic@addfb25-x-tiled-legacy
-igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy
-igt@kms_addfb_basic@addfb25-yf-tiled-legacy
-igt@kms_addfb_basic@addfb25-y-tiled-legacy
-igt@kms_addfb_basic@addfb25-y-tiled-small-legacy
-igt@kms_addfb_basic@bad-pitch-0
-igt@kms_addfb_basic@bad-pitch-1024
-igt@kms_addfb_basic@bad-pitch-128
-igt@kms_addfb_basic@bad-pitch-256
-igt@kms_addfb_basic@bad-pitch-32
-igt@kms_addfb_basic@bad-pitch-63
-igt@kms_addfb_basic@bad-pitch-65536
-igt@kms_addfb_basic@bad-pitch-999
-igt@kms_addfb_basic@basic
-igt@kms_addfb_basic@basic-x-tiled-legacy
-igt@kms_addfb_basic@basic-y-tiled-legacy
-igt@kms_addfb_basic@bo-too-small
-igt@kms_addfb_basic@bo-too-small-due-to-tiling
-igt@kms_addfb_basic@clobberred-modifier
-igt@kms_addfb_basic@framebuffer-vs-set-tiling
-igt@kms_addfb_basic@invalid-get-prop
-igt@kms_addfb_basic@invalid-get-prop-any
-igt@kms_addfb_basic@invalid-set-prop
-igt@kms_addfb_basic@invalid-set-prop-any
-igt@kms_addfb_basic@no-handle
-igt@kms_addfb_basic@size-max
-igt@kms_addfb_basic@small-bo
-igt@kms_addfb_basic@tile-pitch-mismatch
-igt@kms_addfb_basic@too-high
-igt@kms_addfb_basic@too-wide
-igt@kms_addfb_basic@unused-handle
-igt@kms_addfb_basic@unused-modifier
-igt@kms_addfb_basic@unused-offsets
-igt@kms_addfb_basic@unused-pitches
-igt@kms_busy@basic
-igt@kms_prop_blob@basic
-igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic
-igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy
-igt@kms_cursor_legacy@basic-flip-after-cursor-atomic
-igt@kms_cursor_legacy@basic-flip-after-cursor-legacy
-igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size
-igt@kms_cursor_legacy@basic-flip-before-cursor-atomic
-igt@kms_cursor_legacy@basic-flip-before-cursor-legacy
-igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size
-igt@kms_dsc@dsc-basic
-igt@kms_flip@basic-flip-vs-dpms
-igt@kms_flip@basic-flip-vs-modeset
-igt@kms_flip@basic-flip-vs-wf_vblank
-igt@kms_flip@basic-plain-flip
-igt@kms_force_connector_basic@force-connector-state
-igt@kms_force_connector_basic@force-edid
-igt@kms_force_connector_basic@force-load-detect
-igt@kms_force_connector_basic@prune-stale-modes
-igt@kms_frontbuffer_tracking@basic
-igt@kms_hdmi_inject@inject-audio
-igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24
-igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12
-igt@kms_pipe_crc_basic@hang-read-crc
-igt@kms_pipe_crc_basic@nonblocking-crc
-igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence
-igt@kms_pipe_crc_basic@read-crc
-igt@kms_pipe_crc_basic@read-crc-frame-sequence
-igt@kms_pm_backlight@basic-brightness
-igt@kms_pm_rpm@basic-pci-d3-state
-igt@kms_pm_rpm@basic-rte
-igt@kms_psr@psr_primary_page_flip
-igt@kms_psr@psr_cursor_plane_move
-igt@kms_psr@psr_sprite_plane_onoff
-igt@kms_psr@psr_primary_mmap_gtt
-igt@kms_setmode@basic-clone-single-crtc
-igt@i915_pm_rps@basic-api
-igt@prime_self_import@basic-llseek-bad
-igt@prime_self_import@basic-llseek-size
-igt@prime_self_import@basic-with_fd_dup
-igt@prime_self_import@basic-with_one_bo
-igt@prime_self_import@basic-with_one_bo_two_files
-igt@prime_self_import@basic-with_two_bos
-igt@prime_vgem@basic-fence-flip
-igt@prime_vgem@basic-fence-mmap
-igt@prime_vgem@basic-fence-read
-igt@prime_vgem@basic-gtt
-igt@prime_vgem@basic-read
-igt@prime_vgem@basic-write
-igt@vgem_basic@setversion
-igt@vgem_basic@create
-igt@vgem_basic@debugfs
-igt@vgem_basic@dmabuf-export
-igt@vgem_basic@dmabuf-fence
-igt@vgem_basic@dmabuf-fence-before
-igt@vgem_basic@dmabuf-mmap
-igt@vgem_basic@mmap
-igt@vgem_basic@second-client
-igt@vgem_basic@sysfs
-
-# All tests that do module unloading and reloading are executed last.
-# They will sometimes reveal issues of earlier tests leaving the
-# driver in a broken state that is not otherwise noticed in that test.
-
-igt@core_hotunplug@unbind-rebind
-igt@vgem_basic@unload
-igt@i915_module_load@reload
-igt@gem_lmem_swapping@basic
-igt@gem_lmem_swapping@parallel-random-engines
-igt@gem_lmem_swapping@random-engines
-igt@gem_lmem_swapping@verify-random
-igt@i915_pm_rpm@module-reload
-
-# Kernel selftests
-igt@i915_selftest@live
-igt@dmabuf@all-tests
-
-# System wide suspend tests
-igt@i915_suspend@basic-s2idle-without-i915
-igt@i915_suspend@basic-s3-without-i915
-igt@gem_exec_suspend@basic-s0
-igt@gem_exec_suspend@basic-s3
-igt@kms_pipe_crc_basic@suspend-read-crc
+igt@kms_vrr@flip-basic
+igt@kms_vrr@flip-basic-fastset
+igt@kms_vrr@seamless-rr-switch-drrs
+igt@kms_vrr@seamless-rr-switch-vrr
+igt@kms_vrr@flipline
+igt@kms_vrr@negative-basic
diff --git a/tests/intel-ci/xe-fast-feedback.testlist b/tests/intel-ci/xe-fast-feedback.testlist
index f48e8fb67..47cb97781 100644
--- a/tests/intel-ci/xe-fast-feedback.testlist
+++ b/tests/intel-ci/xe-fast-feedback.testlist
@@ -1,264 +1,9 @@
# Should be the first test
igt@xe_module_load@load
-igt@xe_compute@compute-square
-igt@xe_create@create-execqueues-noleak
-igt@xe_create@create-execqueues-leak
-igt@xe_create@create-massive-size
-igt@xe_debugfs@base
-igt@xe_debugfs@gt
-igt@xe_debugfs@forcewake
-igt@xe_dma_buf_sync@export-dma-buf-once
-igt@xe_dma_buf_sync@export-dma-buf-once-read-sync
-igt@xe_evict@evict-beng-mixed-threads-small-multi-vm
-igt@xe_evict@evict-beng-small
-igt@xe_evict@evict-beng-small-cm
-igt@xe_evict@evict-beng-small-external
-igt@xe_evict@evict-beng-small-external-cm
-igt@xe_evict@evict-beng-small-multi-vm
-igt@xe_evict@evict-cm-threads-small
-igt@xe_evict@evict-mixed-threads-small
-igt@xe_evict@evict-mixed-threads-small-multi-vm
-igt@xe_evict@evict-small
-igt@xe_evict@evict-small-cm
-igt@xe_evict@evict-small-external
-igt@xe_evict@evict-small-external-cm
-igt@xe_evict@evict-small-multi-vm
-igt@xe_evict@evict-small-multi-vm-cm
-igt@xe_evict@evict-threads-small
-igt@xe_evict_ccs@evict-overcommit-simple
-igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd
-igt@xe_exec_balancer@twice-virtual-basic
-igt@xe_exec_balancer@no-exec-virtual-basic
-igt@xe_exec_balancer@twice-cm-virtual-basic
-igt@xe_exec_balancer@no-exec-cm-virtual-basic
-igt@xe_exec_balancer@twice-virtual-userptr
-igt@xe_exec_balancer@twice-cm-virtual-userptr
-igt@xe_exec_balancer@twice-virtual-rebind
-igt@xe_exec_balancer@twice-cm-virtual-rebind
-igt@xe_exec_balancer@twice-virtual-userptr-rebind
-igt@xe_exec_balancer@twice-cm-virtual-userptr-rebind
-igt@xe_exec_balancer@twice-virtual-userptr-invalidate
-igt@xe_exec_balancer@twice-cm-virtual-userptr-invalidate
-igt@xe_exec_balancer@twice-parallel-basic
-igt@xe_exec_balancer@no-exec-parallel-basic
-igt@xe_exec_balancer@twice-parallel-userptr
-igt@xe_exec_balancer@twice-parallel-rebind
-igt@xe_exec_balancer@twice-parallel-userptr-rebind
-igt@xe_exec_balancer@twice-parallel-userptr-invalidate
-igt@xe_exec_basic@twice-basic
-igt@xe_exec_basic@no-exec-basic
-igt@xe_exec_basic@twice-basic-defer-mmap
-igt@xe_exec_basic@twice-basic-defer-bind
-igt@xe_exec_basic@twice-userptr
-igt@xe_exec_basic@twice-rebind
-igt@xe_exec_basic@twice-userptr-rebind
-igt@xe_exec_basic@twice-userptr-invalidate
-igt@xe_exec_basic@no-exec-userptr-invalidate
-igt@xe_exec_basic@twice-bindexecqueue
-igt@xe_exec_basic@no-exec-bindexecqueue
-igt@xe_exec_basic@twice-bindexecqueue-userptr
-igt@xe_exec_basic@twice-bindexecqueue-rebind
-igt@xe_exec_basic@twice-bindexecqueue-userptr-rebind
-igt@xe_exec_basic@twice-bindexecqueue-userptr-invalidate
-igt@xe_exec_compute_mode@twice-basic
-igt@xe_exec_compute_mode@twice-preempt-fence-early
-igt@xe_exec_compute_mode@twice-userptr
-igt@xe_exec_compute_mode@twice-rebind
-igt@xe_exec_compute_mode@twice-userptr-rebind
-igt@xe_exec_compute_mode@twice-userptr-invalidate
-igt@xe_exec_compute_mode@twice-bindexecqueue
-igt@xe_exec_compute_mode@twice-bindexecqueue-userptr
-igt@xe_exec_compute_mode@twice-bindexecqueue-rebind
-igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-rebind
-igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-invalidate
-igt@xe_exec_reset@close-fd-no-exec
-igt@xe_exec_reset@cm-close-fd-no-exec
-igt@xe_exec_reset@virtual-close-fd-no-exec
-igt@xe_exec_store@basic-store
-igt@xe_exec_threads@threads-basic
-igt@xe_exec_threads@threads-mixed-basic
-igt@xe_exec_threads@threads-mixed-shared-vm-basic
-igt@xe_exec_threads@threads-mixed-fd-basic
-igt@xe_exec_threads@threads-mixed-userptr-invalidate
-igt@xe_exec_threads@threads-mixed-shared-vm-userptr-invalidate-race
-igt@xe_gpgpu_fill@basic
-igt@xe_guc_pc@freq_basic_api
-igt@xe_guc_pc@freq_fixed_idle
-igt@xe_guc_pc@freq_range_idle
-igt@xe_huc_copy@huc_copy
-igt@xe_intel_bb@add-remove-objects
-igt@xe_intel_bb@bb-with-allocator
-igt@xe_intel_bb@blit-reloc
-igt@xe_intel_bb@blit-simple
-igt@xe_intel_bb@create-in-region
-igt@xe_intel_bb@delta-check
-igt@xe_intel_bb@destroy-bb
-igt@xe_intel_bb@intel-bb-blit-none
-igt@xe_intel_bb@intel-bb-blit-x
-igt@xe_intel_bb@intel-bb-blit-y
-igt@xe_intel_bb@lot-of-buffers
-igt@xe_intel_bb@offset-control
-igt@xe_intel_bb@purge-bb
-igt@xe_intel_bb@render
-igt@xe_intel_bb@reset-bb
-igt@xe_intel_bb@simple-bb
-igt@xe_intel_bb@simple-bb-ctx
-igt@xe_mmap@bad-extensions
-igt@xe_mmap@bad-flags
-igt@xe_mmap@bad-object
-igt@xe_mmap@cpu-caching
-igt@xe_mmap@system
-igt@xe_mmap@vram
-igt@xe_mmap@vram-system
-igt@xe_pm_residency@gt-c6-on-idle
-igt@xe_prime_self_import@basic-with_one_bo
-igt@xe_prime_self_import@basic-with_fd_dup
-#igt@xe_prime_self_import@basic-llseek-size
-igt@xe_query@query-engines
-igt@xe_query@query-mem-usage
-igt@xe_query@query-gt-list
-igt@xe_query@query-config
-igt@xe_query@query-hwconfig
-igt@xe_query@query-topology
-igt@xe_query@query-invalid-extension
-igt@xe_query@query-invalid-query
-igt@xe_query@query-invalid-size
-igt@xe_spin_batch@spin-basic
-igt@xe_spin_batch@spin-batch
-igt@xe_sysfs_defaults@engine-defaults
-igt@xe_sysfs_scheduler@preempt_timeout_us-invalid
-igt@xe_sysfs_scheduler@preempt_timeout_us-min-max
-igt@xe_sysfs_scheduler@timeslice_duration_us-invalid
-igt@xe_sysfs_scheduler@timeslice_duration_us-min-max
-igt@xe_sysfs_scheduler@job_timeout_ms-invalid
-igt@xe_sysfs_scheduler@job_timeout_ms-min-max
-#igt@xe_vm@bind-once
-#igt@xe_vm@scratch
-igt@xe_vm@shared-pte-page
-igt@xe_vm@shared-pde-page
-igt@xe_vm@shared-pde2-page
-igt@xe_vm@shared-pde3-page
-igt@xe_vm@bind-execqueues-independent
-igt@xe_vm@munmap-style-unbind-one-partial
-igt@xe_vm@munmap-style-unbind-end
-igt@xe_vm@munmap-style-unbind-front
-igt@xe_vm@munmap-style-unbind-userptr-one-partial
-igt@xe_vm@munmap-style-unbind-userptr-end
-igt@xe_vm@munmap-style-unbind-userptr-front
-igt@xe_vm@munmap-style-unbind-userptr-inval-end
-igt@xe_vm@munmap-style-unbind-userptr-inval-front
-igt@xe_pat@userptr-coh-none
-igt@xe_pat@prime-self-import-coh
-igt@xe_pat@prime-external-import-coh
-igt@xe_pat@pat-index-all
-igt@xe_pat@pat-index-xelp
-igt@xe_pat@pat-index-xehpc
-igt@xe_pat@pat-index-xelpg
-igt@xe_pat@pat-index-xe2
-igt@xe_waitfence@abstime
-igt@xe_waitfence@engine
-igt@xe_waitfence@reltime
-igt@kms_addfb_basic@addfb25-4-tiled
-igt@kms_addfb_basic@addfb25-bad-modifier
-igt@kms_addfb_basic@addfb25-modifier-no-flag
-igt@kms_addfb_basic@addfb25-x-tiled-legacy
-igt@kms_addfb_basic@addfb25-yf-tiled-legacy
-igt@kms_addfb_basic@addfb25-y-tiled-legacy
-igt@kms_addfb_basic@addfb25-y-tiled-small-legacy
-igt@kms_addfb_basic@bad-pitch-0
-igt@kms_addfb_basic@bad-pitch-1024
-igt@kms_addfb_basic@bad-pitch-128
-igt@kms_addfb_basic@bad-pitch-256
-igt@kms_addfb_basic@bad-pitch-32
-igt@kms_addfb_basic@bad-pitch-63
-igt@kms_addfb_basic@bad-pitch-65536
-igt@kms_addfb_basic@bad-pitch-999
-igt@kms_addfb_basic@basic
-igt@kms_addfb_basic@basic-x-tiled-legacy
-igt@kms_addfb_basic@bo-too-small
-igt@kms_addfb_basic@invalid-get-prop
-igt@kms_addfb_basic@invalid-get-prop-any
-igt@kms_addfb_basic@invalid-set-prop
-igt@kms_addfb_basic@invalid-set-prop-any
-igt@kms_addfb_basic@no-handle
-igt@kms_addfb_basic@size-max
-igt@kms_addfb_basic@small-bo
-igt@kms_addfb_basic@too-high
-igt@kms_addfb_basic@too-wide
-igt@kms_addfb_basic@unused-handle
-igt@kms_addfb_basic@unused-modifier
-igt@kms_addfb_basic@unused-offsets
-igt@kms_addfb_basic@unused-pitches
-igt@kms_cursor_legacy@basic-flip-after-cursor-atomic
-igt@kms_cursor_legacy@basic-flip-after-cursor-legacy
-igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size
-igt@kms_cursor_legacy@basic-flip-before-cursor-atomic
-igt@kms_cursor_legacy@basic-flip-before-cursor-legacy
-igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size
-igt@kms_dsc@dsc-basic
-igt@kms_flip@basic-flip-vs-dpms
-igt@kms_flip@basic-flip-vs-modeset
-igt@kms_flip@basic-flip-vs-wf_vblank
-igt@kms_flip@basic-plain-flip
-igt@kms_force_connector_basic@force-connector-state
-igt@kms_force_connector_basic@force-edid
-igt@kms_force_connector_basic@prune-stale-modes
-igt@kms_frontbuffer_tracking@basic
-igt@kms_hdmi_inject@inject-audio
-igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24
-igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12
-igt@kms_pipe_crc_basic@hang-read-crc
-igt@kms_pipe_crc_basic@nonblocking-crc
-igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence
-igt@kms_pipe_crc_basic@read-crc
-igt@kms_pipe_crc_basic@read-crc-frame-sequence
-igt@kms_prop_blob@basic
-igt@kms_psr@psr_primary_page_flip
-igt@kms_psr@psr_cursor_plane_move
-igt@kms_psr@psr_sprite_plane_onoff
-
-# All tests that do module unloading and reloading are executed last.
-# They will sometimes reveal issues of earlier tests leaving the
-# driver in a broken state that is not otherwise noticed in that test.
-igt@core_hotunplug@unbind-rebind
-
-# Run KUnit tests at the end
-igt@xe_live_ktest@bo
-igt@xe_live_ktest@dmabuf
-igt@xe_live_ktest@migrate
-
-# Move fault_mode tests at the end to unblock execution
-igt@xe_exec_fault_mode@twice-basic
-igt@xe_exec_fault_mode@many-basic
-igt@xe_exec_fault_mode@twice-userptr
-igt@xe_exec_fault_mode@twice-rebind
-igt@xe_exec_fault_mode@twice-userptr-rebind
-igt@xe_exec_fault_mode@twice-userptr-invalidate
-igt@xe_exec_fault_mode@twice-bindexecqueue
-igt@xe_exec_fault_mode@twice-bindexecqueue-userptr
-igt@xe_exec_fault_mode@twice-bindexecqueue-rebind
-igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-rebind
-igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate
-igt@xe_exec_fault_mode@twice-basic-imm
-igt@xe_exec_fault_mode@twice-userptr-imm
-igt@xe_exec_fault_mode@twice-rebind-imm
-igt@xe_exec_fault_mode@twice-userptr-rebind-imm
-igt@xe_exec_fault_mode@twice-userptr-invalidate-imm
-igt@xe_exec_fault_mode@twice-bindexecqueue-imm
-igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-imm
-igt@xe_exec_fault_mode@twice-bindexecqueue-rebind-imm
-igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-rebind-imm
-igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate-imm
-igt@xe_exec_fault_mode@twice-basic-prefetch
-igt@xe_exec_fault_mode@twice-userptr-prefetch
-igt@xe_exec_fault_mode@twice-rebind-prefetch
-igt@xe_exec_fault_mode@twice-userptr-rebind-prefetch
-igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch
-igt@xe_exec_fault_mode@twice-bindexecqueue-prefetch
-igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-prefetch
-igt@xe_exec_fault_mode@twice-bindexecqueue-rebind-prefetch
-igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-rebind-prefetch
-igt@xe_exec_fault_mode@twice-bindexecqueue-userptr-invalidate-prefetch
-igt@xe_exec_fault_mode@twice-invalid-fault
-igt@xe_exec_fault_mode@twice-invalid-userptr-fault
+igt@kms_vrr@flip-basic
+igt@kms_vrr@flip-basic-fastset
+igt@kms_vrr@seamless-rr-switch-drrs
+igt@kms_vrr@seamless-rr-switch-vrr
+igt@kms_vrr@flipline
+igt@kms_vrr@negative-basic
--
2.40.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_vrr: Add new subtest to switch RR without modeset (rev7)
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
` (9 preceding siblings ...)
2023-12-07 6:49 ` [igt-dev] [i-g-t V6 10/10] HAX: DO_NOT_MERGE: test only vrr tests Bhanuprakash Modem
@ 2023-12-07 7:59 ` Patchwork
2023-12-07 8:01 ` [igt-dev] ✗ CI.xeBAT: " Patchwork
11 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2023-12-07 7:59 UTC (permalink / raw)
To: Bhanuprakash Modem; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 12620 bytes --]
== Series Details ==
Series: tests/kms_vrr: Add new subtest to switch RR without modeset (rev7)
URL : https://patchwork.freedesktop.org/series/127047/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_13990 -> IGTPW_10364
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_10364 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_10364, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/index.html
Participating hosts (37 -> 36)
------------------------------
Additional (1): bat-dg2-8
Missing (2): bat-atsm-1 fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_10364:
### IGT changes ###
#### Possible regressions ####
* igt@kms_vrr@flip-basic-fastset (NEW):
- bat-dg1-7: NOTRUN -> [SKIP][1] +2 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg1-7/igt@kms_vrr@flip-basic-fastset.html
- bat-jsl-3: NOTRUN -> [SKIP][2] +2 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-jsl-3/igt@kms_vrr@flip-basic-fastset.html
- bat-dg2-11: NOTRUN -> [SKIP][3] +2 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg2-11/igt@kms_vrr@flip-basic-fastset.html
- bat-adln-1: NOTRUN -> [SKIP][4] +1 other test skip
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-adln-1/igt@kms_vrr@flip-basic-fastset.html
- bat-rplp-1: NOTRUN -> [SKIP][5] +1 other test skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-rplp-1/igt@kms_vrr@flip-basic-fastset.html
- fi-tgl-1115g4: NOTRUN -> [SKIP][6] +2 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-tgl-1115g4/igt@kms_vrr@flip-basic-fastset.html
* {igt@kms_vrr@seamless-rr-switch-drrs} (NEW):
- {bat-dg2-14}: NOTRUN -> [SKIP][7] +2 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg2-14/igt@kms_vrr@seamless-rr-switch-drrs.html
- fi-rkl-11600: NOTRUN -> [SKIP][8] +2 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-rkl-11600/igt@kms_vrr@seamless-rr-switch-drrs.html
- bat-adls-5: NOTRUN -> [SKIP][9] +1 other test skip
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-adls-5/igt@kms_vrr@seamless-rr-switch-drrs.html
- bat-dg1-5: NOTRUN -> [SKIP][10] +2 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg1-5/igt@kms_vrr@seamless-rr-switch-drrs.html
- bat-dg2-9: NOTRUN -> [SKIP][11] +2 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg2-9/igt@kms_vrr@seamless-rr-switch-drrs.html
- bat-adlp-11: NOTRUN -> [SKIP][12] +2 other tests skip
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-adlp-11/igt@kms_vrr@seamless-rr-switch-drrs.html
- bat-mtlp-8: NOTRUN -> [SKIP][13] +2 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-mtlp-8/igt@kms_vrr@seamless-rr-switch-drrs.html
- bat-dg2-8: NOTRUN -> [SKIP][14] +2 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg2-8/igt@kms_vrr@seamless-rr-switch-drrs.html
* {igt@kms_vrr@seamless-rr-switch-vrr} (NEW):
- bat-adlp-9: NOTRUN -> [SKIP][15] +1 other test skip
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-adlp-9/igt@kms_vrr@seamless-rr-switch-vrr.html
- bat-jsl-1: NOTRUN -> [SKIP][16] +2 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-jsl-1/igt@kms_vrr@seamless-rr-switch-vrr.html
- bat-adlp-6: NOTRUN -> [SKIP][17]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-adlp-6/igt@kms_vrr@seamless-rr-switch-vrr.html
New tests
---------
New tests have been introduced between CI_DRM_13990 and IGTPW_10364:
### New IGT tests (7) ###
* igt@kms_vrr@flip-basic-fastset:
- Statuses : 32 skip(s)
- Exec time: [0.0] s
* igt@kms_vrr@flip-basic-fastset@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [10.40] s
* igt@kms_vrr@flip-basic-fastset@pipe-a-dp-3:
- Statuses : 1 pass(s)
- Exec time: [10.90] s
* igt@kms_vrr@flip-basic-fastset@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [10.39] s
* igt@kms_vrr@seamless-rr-switch-drrs:
- Statuses : 32 skip(s)
- Exec time: [0.0] s
* igt@kms_vrr@seamless-rr-switch-drrs@pipe-a-edp-1:
- Statuses : 3 pass(s)
- Exec time: [15.17, 16.34] s
* igt@kms_vrr@seamless-rr-switch-vrr:
- Statuses : 35 skip(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in IGTPW_10364 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_vrr@flip-basic:
- fi-rkl-11600: NOTRUN -> [SKIP][18] ([i915#3555]) +2 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-rkl-11600/igt@kms_vrr@flip-basic.html
- fi-cfl-guc: NOTRUN -> [SKIP][19] ([fdo#109271]) +5 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-cfl-guc/igt@kms_vrr@flip-basic.html
- bat-jsl-3: NOTRUN -> [SKIP][20] ([i915#3555]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-jsl-3/igt@kms_vrr@flip-basic.html
- bat-dg2-9: NOTRUN -> [SKIP][21] ([i915#3555]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg2-9/igt@kms_vrr@flip-basic.html
- fi-kbl-x1275: NOTRUN -> [SKIP][22] ([fdo#109271]) +5 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-kbl-x1275/igt@kms_vrr@flip-basic.html
- bat-adlp-11: NOTRUN -> [SKIP][23] ([i915#3555]) +2 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-adlp-11/igt@kms_vrr@flip-basic.html
- fi-cfl-8109u: NOTRUN -> [SKIP][24] ([fdo#109271]) +5 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-cfl-8109u/igt@kms_vrr@flip-basic.html
- bat-adln-1: NOTRUN -> [SKIP][25] ([i915#3555]) +1 other test skip
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-adln-1/igt@kms_vrr@flip-basic.html
- bat-mtlp-8: NOTRUN -> [SKIP][26] ([i915#3555] / [i915#8808]) +1 other test skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-mtlp-8/igt@kms_vrr@flip-basic.html
- bat-dg2-8: NOTRUN -> [SKIP][27] ([i915#3555]) +1 other test skip
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg2-8/igt@kms_vrr@flip-basic.html
- fi-kbl-guc: NOTRUN -> [SKIP][28] ([fdo#109271]) +5 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-kbl-guc/igt@kms_vrr@flip-basic.html
- fi-ilk-650: NOTRUN -> [SKIP][29] ([fdo#109271]) +5 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-ilk-650/igt@kms_vrr@flip-basic.html
- bat-jsl-1: NOTRUN -> [SKIP][30] ([i915#3555]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-jsl-1/igt@kms_vrr@flip-basic.html
- fi-tgl-1115g4: NOTRUN -> [SKIP][31] ([i915#3555]) +2 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-tgl-1115g4/igt@kms_vrr@flip-basic.html
* igt@kms_vrr@flip-basic-fastset (NEW):
- fi-pnv-d510: NOTRUN -> [SKIP][32] ([fdo#109271]) +5 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-pnv-d510/igt@kms_vrr@flip-basic-fastset.html
- fi-glk-j4005: NOTRUN -> [SKIP][33] ([fdo#109271]) +5 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-glk-j4005/igt@kms_vrr@flip-basic-fastset.html
- fi-kbl-7567u: NOTRUN -> [SKIP][34] ([fdo#109271]) +5 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-kbl-7567u/igt@kms_vrr@flip-basic-fastset.html
- fi-ivb-3770: NOTRUN -> [SKIP][35] ([fdo#109271]) +5 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-ivb-3770/igt@kms_vrr@flip-basic-fastset.html
- fi-elk-e7500: NOTRUN -> [SKIP][36] ([fdo#109271]) +5 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-elk-e7500/igt@kms_vrr@flip-basic-fastset.html
- bat-mtlp-6: NOTRUN -> [SKIP][37] ([i915#9792]) +5 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-mtlp-6/igt@kms_vrr@flip-basic-fastset.html
* igt@kms_vrr@flipline:
- fi-skl-guc: NOTRUN -> [SKIP][38] ([fdo#109271]) +5 other tests skip
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-skl-guc/igt@kms_vrr@flipline.html
- bat-rplp-1: NOTRUN -> [SKIP][39] ([i915#3555]) +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-rplp-1/igt@kms_vrr@flipline.html
* igt@kms_vrr@negative-basic:
- bat-kbl-2: NOTRUN -> [SKIP][40] ([fdo#109271]) +5 other tests skip
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-kbl-2/igt@kms_vrr@negative-basic.html
- fi-skl-6600u: NOTRUN -> [SKIP][41] ([fdo#109271]) +5 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-skl-6600u/igt@kms_vrr@negative-basic.html
- bat-adls-5: NOTRUN -> [SKIP][42] ([i915#3555])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-adls-5/igt@kms_vrr@negative-basic.html
- fi-apl-guc: NOTRUN -> [SKIP][43] ([fdo#109271]) +5 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-apl-guc/igt@kms_vrr@negative-basic.html
- bat-dg1-5: NOTRUN -> [SKIP][44] ([i915#3555]) +2 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg1-5/igt@kms_vrr@negative-basic.html
- bat-dg1-7: NOTRUN -> [SKIP][45] ([i915#3555]) +2 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg1-7/igt@kms_vrr@negative-basic.html
- bat-dg2-11: NOTRUN -> [SKIP][46] ([i915#3555]) +2 other tests skip
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-dg2-11/igt@kms_vrr@negative-basic.html
- bat-adlp-9: NOTRUN -> [SKIP][47] ([i915#3555])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/bat-adlp-9/igt@kms_vrr@negative-basic.html
* {igt@kms_vrr@seamless-rr-switch-drrs} (NEW):
- fi-cfl-8700k: NOTRUN -> [SKIP][48] ([fdo#109271]) +5 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-cfl-8700k/igt@kms_vrr@seamless-rr-switch-drrs.html
- fi-blb-e6850: NOTRUN -> [SKIP][49] ([fdo#109271]) +5 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-blb-e6850/igt@kms_vrr@seamless-rr-switch-drrs.html
- fi-bsw-nick: NOTRUN -> [SKIP][50] ([fdo#109271]) +5 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/fi-bsw-nick/igt@kms_vrr@seamless-rr-switch-drrs.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#8808]: https://gitlab.freedesktop.org/drm/intel/issues/8808
[i915#9792]: https://gitlab.freedesktop.org/drm/intel/issues/9792
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7626 -> IGTPW_10364
CI-20190529: 20190529
CI_DRM_13990: 85d33d0ad82a5c1a71492f14a5ceb67ada6a22d8 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_10364: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/index.html
IGT_7626: 154b7288552cd7ed3033f8ef396e88d0bd1b7646 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@kms_vrr@flip-basic-fastset
+igt@kms_vrr@seamless-rr-switch-drrs
+igt@kms_vrr@seamless-rr-switch-vrr
-igt@xe_exec_basic@zero-execs
-igt@xe_vm@zero-binds
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/index.html
[-- Attachment #2: Type: text/html, Size: 16291 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* [igt-dev] ✗ CI.xeBAT: failure for tests/kms_vrr: Add new subtest to switch RR without modeset (rev7)
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
` (10 preceding siblings ...)
2023-12-07 7:59 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_vrr: Add new subtest to switch RR without modeset (rev7) Patchwork
@ 2023-12-07 8:01 ` Patchwork
11 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2023-12-07 8:01 UTC (permalink / raw)
To: Bhanuprakash Modem; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 3684 bytes --]
== Series Details ==
Series: tests/kms_vrr: Add new subtest to switch RR without modeset (rev7)
URL : https://patchwork.freedesktop.org/series/127047/
State : failure
== Summary ==
CI Bug Log - changes from XEIGT_7626_BAT -> XEIGTPW_10364_BAT
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with XEIGTPW_10364_BAT absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in XEIGTPW_10364_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in XEIGTPW_10364_BAT:
### IGT changes ###
#### Possible regressions ####
* igt@kms_vrr@flip-basic-fastset (NEW):
- bat-atsm-2: NOTRUN -> [SKIP][1] +5 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10364/bat-atsm-2/igt@kms_vrr@flip-basic-fastset.html
* {igt@kms_vrr@seamless-rr-switch-drrs} (NEW):
- bat-pvc-2: NOTRUN -> [SKIP][2] +5 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10364/bat-pvc-2/igt@kms_vrr@seamless-rr-switch-drrs.html
New tests
---------
New tests have been introduced between XEIGT_7626_BAT and XEIGTPW_10364_BAT:
### New IGT tests (4) ###
* igt@kms_vrr@flip-basic-fastset:
- Statuses : 1 pass(s) 3 skip(s)
- Exec time: [0.0, 10.64] s
* igt@kms_vrr@flip-basic-fastset@pipe-a-dp-3:
- Statuses : 1 pass(s)
- Exec time: [10.55] s
* igt@kms_vrr@seamless-rr-switch-drrs:
- Statuses : 4 skip(s)
- Exec time: [0.0, 0.00] s
* igt@kms_vrr@seamless-rr-switch-vrr:
- Statuses : 4 skip(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in XEIGTPW_10364_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_vrr@flip-basic:
- bat-adlp-7: NOTRUN -> [SKIP][3] ([Intel XE#455]) +4 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10364/bat-adlp-7/igt@kms_vrr@flip-basic.html
- bat-dg2-oem2: NOTRUN -> [FAIL][4] ([Intel XE#465]) +1 other test fail
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10364/bat-dg2-oem2/igt@kms_vrr@flip-basic.html
* igt@kms_vrr@negative-basic:
- bat-dg2-oem2: NOTRUN -> [SKIP][5] ([Intel XE#455]) +2 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10364/bat-dg2-oem2/igt@kms_vrr@negative-basic.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#465]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/465
Build changes
-------------
* IGT: IGT_7626 -> IGTPW_10364
* Linux: xe-556-d33ebd7511c2b53c5dc006e2daa25214fc8a5921 -> xe-557-668d13abebbbc3812de86be1f8477475e1d90728
IGTPW_10364: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10364/index.html
IGT_7626: 154b7288552cd7ed3033f8ef396e88d0bd1b7646 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-556-d33ebd7511c2b53c5dc006e2daa25214fc8a5921: d33ebd7511c2b53c5dc006e2daa25214fc8a5921
xe-557-668d13abebbbc3812de86be1f8477475e1d90728: 668d13abebbbc3812de86be1f8477475e1d90728
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10364/index.html
[-- Attachment #2: Type: text/html, Size: 4606 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [igt-dev] [i-g-t V6 09/10] tests/kms_vrr: New subtest for toggle VRR during fastsets
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 09/10] tests/kms_vrr: New subtest for toggle VRR during fastsets Bhanuprakash Modem
@ 2023-12-07 10:40 ` Srinivas, Vidya
2023-12-11 8:51 ` Golani, Mitulkumar Ajitkumar
0 siblings, 1 reply; 22+ messages in thread
From: Srinivas, Vidya @ 2023-12-07 10:40 UTC (permalink / raw)
To: Modem, Bhanuprakash, igt-dev@lists.freedesktop.org,
ville.syrjala@linux.intel.com, Golani, Mitulkumar Ajitkumar
Cc: Gupta, Nidhi1
Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>
> -----Original Message-----
> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of
> Bhanuprakash Modem
> Sent: Thursday, December 7, 2023 12:19 PM
> To: igt-dev@lists.freedesktop.org; ville.syrjala@linux.intel.com; Golani,
> Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
> Cc: Gupta, Nidhi1 <nidhi1.gupta@intel.com>
> Subject: [igt-dev] [i-g-t V6 09/10] tests/kms_vrr: New subtest for toggle VRR
> during fastsets
>
> Allow VRR to be toggled during fastsets, without full modeset.
> This patch enables 'kms_vrr@flip-basic' subtest to verify fastset too.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
> ---
> tests/kms_vrr.c | 30 +++++++++++++++++++++---------
> 1 file changed, 21 insertions(+), 9 deletions(-)
>
> diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index de2ee13c7..1ace970a5
> 100644
> --- a/tests/kms_vrr.c
> +++ b/tests/kms_vrr.c
> @@ -41,6 +41,10 @@
> * Description: Tests that VRR is enabled and that the difference between flip
> * timestamps converges to the requested rate
> *
> + * SUBTEST: flip-basic-fastset
> + * Description: Tests that VRR is enabled without modeset and that the
> difference
> + * between flip timestamps converges to the requested rate
> + *
> * SUBTEST: flip-dpms
> * Description: Tests with DPMS that VRR is enabled and that the difference
> * between flip timestamps converges to the requested rate.
> @@ -81,7 +85,8 @@ enum {
> TEST_FLIPLINE = 1 << 3,
> TEST_SEAMLESS_VRR = 1 << 4,
> TEST_SEAMLESS_DRRS = 1 << 5,
> - TEST_NEGATIVE = 1 << 6,
> + TEST_FASTSET = 1 << 6,
> + TEST_NEGATIVE = 1 << 7,
> };
>
> enum {
> @@ -253,11 +258,15 @@ static bool vrr_capable(igt_output_t *output) }
>
> /* Toggles variable refresh rate on the pipe. */ -static void
> set_vrr_on_pipe(data_t *data, enum pipe pipe, bool enabled)
> +static void set_vrr_on_pipe(data_t *data, enum pipe pipe,
> + bool need_modeset, bool enabled)
> {
> igt_pipe_set_prop_value(&data->display, pipe,
> IGT_CRTC_VRR_ENABLED,
> enabled);
> - igt_display_commit2(&data->display, COMMIT_ATOMIC);
> +
> + igt_assert(igt_display_try_commit_atomic(&data->display,
> + need_modeset ?
> DRM_MODE_ATOMIC_ALLOW_MODESET : 0,
> + NULL) == 0);
> }
>
> /* Prepare the display for testing on the given pipe. */ @@ -418,7 +427,7
> @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t
> flags)
> igt_info("Override Mode: ");
> kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
>
> - set_vrr_on_pipe(data, pipe, true);
> + set_vrr_on_pipe(data, pipe, !(flags & TEST_FASTSET), true);
>
> /*
> * Do a short run with VRR, but don't check the result.
> @@ -484,7 +493,7 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t
> *output, uint32_t flags)
> * modeset. And the expected behavior is the same as disabling VRR
> on
> * a VRR capable panel.
> */
> - set_vrr_on_pipe(data, pipe, (flags & TEST_NEGATIVE)? true : false);
> + set_vrr_on_pipe(data, pipe, !(flags & TEST_FASTSET), (flags &
> +TEST_NEGATIVE) ? true : false);
> rate = vtest_ns.mid;
> result = flip_and_measure(data, output, pipe, rate,
> TEST_DURATION_NS);
> igt_assert_f(result < 10,
> @@ -506,10 +515,8 @@ test_seamless_rr_basic(data_t *data, enum pipe
> pipe, igt_output_t *output, uint3
> prepare_test(data, output, pipe);
> vtest_ns = get_test_rate_ns(data->range);
>
> - if (vrr) {
> - igt_pipe_set_prop_value(&data->display, pipe,
> IGT_CRTC_VRR_ENABLED, true);
> - igt_assert(igt_display_try_commit_atomic(&data->display, 0,
> NULL) == 0);
> - }
> + if (vrr)
> + set_vrr_on_pipe(data, pipe, false, true);
>
> rate = vtest_ns.max;
> result = flip_and_measure(data, output, pipe, rate,
> TEST_DURATION_NS); @@ -703,6 +710,11 @@ igt_main
> igt_describe("Test to switch RR seamlessly without
> modeset.");
> igt_subtest_with_dynamic("seamless-rr-switch-drrs")
> run_vrr_test(&data, test_seamless_rr_basic,
> TEST_SEAMLESS_DRRS);
> +
> + igt_describe("Tests that VRR is enabled without modeset and
> that the difference "
> + "between flip timestamps converges to the
> requested rate");
> + igt_subtest_with_dynamic("flip-basic-fastset")
> + run_vrr_test(&data, test_basic, TEST_FASTSET);
> }
>
> igt_fixture {
> --
> 2.40.0
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [i-g-t V6 01/10] tests/kms_vrr: Use lib helper to print connector modes
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 01/10] tests/kms_vrr: Use lib helper to print connector modes Bhanuprakash Modem
@ 2023-12-07 14:08 ` Golani, Mitulkumar Ajitkumar
0 siblings, 0 replies; 22+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2023-12-07 14:08 UTC (permalink / raw)
To: Modem, Bhanuprakash, igt-dev@lists.freedesktop.org
> -----Original Message-----
> From: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Sent: Thursday, December 7, 2023 12:19 PM
> To: igt-dev@lists.freedesktop.org; ville.syrjala@linux.intel.com; Golani,
> Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
> Cc: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Subject: [i-g-t V6 01/10] tests/kms_vrr: Use lib helper to print connector
> modes
>
> Instead of writing a new logic at test level, use library helper to print
> connector modes.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/kms_vrr.c | 13 ++++---------
> 1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index 5c190cd8c..bbdb54682
> 100644
> --- a/tests/kms_vrr.c
> +++ b/tests/kms_vrr.c
> @@ -65,13 +65,6 @@
> */
> #define TEST_DURATION_NS (5000000000ull)
>
> -#define DRM_MODE_FMT "\"%s\": %d %d %d %d %d %d %d %d %d %d
> 0x%x 0x%x"
> -#define DRM_MODE_ARG(m) \
> - (m)->name, (m)->vrefresh, (m)->clock, \
> - (m)->hdisplay, (m)->hsync_start, (m)->hsync_end, (m)->htotal, \
> - (m)->vdisplay, (m)->vsync_start, (m)->vsync_end, (m)->vtotal, \
> - (m)->type, (m)->flags
> -
> enum {
> TEST_BASIC = 1 << 0,
> TEST_DPMS = 1 << 1,
> @@ -162,14 +155,16 @@ output_mode_with_maxrate(igt_output_t
> *output, unsigned int vrr_max)
> drmModeConnectorPtr connector = output->config.connector;
> drmModeModeInfo mode = *igt_output_get_mode(output);
>
> - igt_debug("Default Mode " DRM_MODE_FMT "\n",
> DRM_MODE_ARG(&mode));
> + igt_info("Default Mode: ");
> + kmstest_dump_mode(&mode);
>
> for (i = 0; i < connector->count_modes; i++)
> if (connector->modes[i].vrefresh > mode.vrefresh &&
> connector->modes[i].vrefresh <= vrr_max)
> mode = connector->modes[i];
>
> - igt_debug("Override Mode " DRM_MODE_FMT "\n",
> DRM_MODE_ARG(&mode));
> + igt_info("Override Mode: ");
> + kmstest_dump_mode(&mode);
Change LGTM. Thanks
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
>
> return mode;
> }
> --
> 2.40.0
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [i-g-t V6 02/10] tests/kms_vrr: Clear VRR before exit
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 02/10] tests/kms_vrr: Clear VRR before exit Bhanuprakash Modem
@ 2023-12-07 14:12 ` Golani, Mitulkumar Ajitkumar
0 siblings, 0 replies; 22+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2023-12-07 14:12 UTC (permalink / raw)
To: Modem, Bhanuprakash, igt-dev@lists.freedesktop.org
> -----Original Message-----
> From: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Sent: Thursday, December 7, 2023 12:19 PM
> To: igt-dev@lists.freedesktop.org; ville.syrjala@linux.intel.com; Golani,
> Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
> Cc: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Subject: [i-g-t V6 02/10] tests/kms_vrr: Clear VRR before exit
>
> Before exiting the subtest, make sure to clear the VRR.
>
> V2: - New function for cleanup
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/kms_vrr.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index bbdb54682..13e7f3ca6
> 100644
> --- a/tests/kms_vrr.c
> +++ b/tests/kms_vrr.c
> @@ -469,8 +469,11 @@ test_basic(data_t *data, enum pipe pipe,
> igt_output_t *output, uint32_t flags)
> igt_assert_f(result < 10,
> "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s
> threshold exceeded, result was %u%%\n",
> ((range.max + range.min) / 2), rate, (flags &
> TEST_NEGATIVE)? "on" : "off", result);
> +}
>
> - /* Clean-up */
> +static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t
> +*output) {
> + igt_pipe_set_prop_value(&data->display, pipe,
Change LGTM. Thanks
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> IGT_CRTC_VRR_ENABLED,
> +false);
> igt_plane_set_fb(data->primary, NULL);
> igt_output_set_pipe(output, PIPE_NONE);
> igt_output_override_mode(output, NULL); @@ -510,6 +513,9 @@
> run_vrr_test(data_t *data, test_t test, uint32_t flags)
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(pipe),
> output->name)
> test(data, pipe, output, flags);
> +
> + test_cleanup(data, pipe, output);
> +
> break;
> }
> }
> --
> 2.40.0
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [i-g-t V6 06/10] tests/kms_vrr: Add a helper to get the low refresh mode
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 06/10] tests/kms_vrr: Add a helper to get the low refresh mode Bhanuprakash Modem
@ 2023-12-07 14:42 ` Golani, Mitulkumar Ajitkumar
0 siblings, 0 replies; 22+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2023-12-07 14:42 UTC (permalink / raw)
To: Modem, Bhanuprakash, igt-dev@lists.freedesktop.org
> -----Original Message-----
> From: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Sent: Thursday, December 7, 2023 12:19 PM
> To: igt-dev@lists.freedesktop.org; ville.syrjala@linux.intel.com; Golani,
> Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
> Cc: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Subject: [i-g-t V6 06/10] tests/kms_vrr: Add a helper to get the low refresh
> mode
>
> To switch the refresh rate seamlessly, add a new helper to identify the mode
> with the same resolution but low vrefresh and clock.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/kms_vrr.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index db82cd008..f3cd18dcd
> 100644
> --- a/tests/kms_vrr.c
> +++ b/tests/kms_vrr.c
> @@ -166,6 +166,24 @@ output_mode_with_maxrate(igt_output_t *output,
> unsigned int vrr_max)
> return mode;
> }
>
> +static drmModeModeInfo
> +low_rr_mode_with_same_res(igt_output_t *output, unsigned int vrr_min) {
> + int i;
> + drmModeConnectorPtr connector = output->config.connector;
> + drmModeModeInfo mode = *igt_output_get_mode(output);
> +
> + for (i = 0; i < connector->count_modes; i++)
> + if (connector->modes[i].hdisplay == mode.hdisplay &&
> + connector->modes[i].vdisplay == mode.vdisplay &&
> + connector->modes[i].clock < mode.clock &&
> + connector->modes[i].vrefresh < mode.vrefresh &&
> + connector->modes[i].vrefresh >= vrr_min)
> + mode = connector->modes[i];
> +
> + return mode;
> +}
> +
Please add this function in the patch where it is being called.
- Mitul
> /* Read min and max vrr range from the connector debugfs. */ static
> range_t get_vrr_range(data_t *data, igt_output_t *output)
> --
> 2.40.0
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [i-g-t V6 03/10] tests/kms_vrr: Move all config constaints to new function
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 03/10] tests/kms_vrr: Move all config constaints to new function Bhanuprakash Modem
@ 2023-12-07 16:04 ` Golani, Mitulkumar Ajitkumar
0 siblings, 0 replies; 22+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2023-12-07 16:04 UTC (permalink / raw)
To: Modem, Bhanuprakash, igt-dev@lists.freedesktop.org
> -----Original Message-----
> From: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Sent: Thursday, December 7, 2023 12:19 PM
> To: igt-dev@lists.freedesktop.org; ville.syrjala@linux.intel.com; Golani,
> Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
> Cc: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Subject: [i-g-t V6 03/10] tests/kms_vrr: Move all config constaints to new
> function
>
> No functional change, cleanup only. Move all config checks to new function.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/kms_vrr.c | 24 ++++++++++++++++--------
> 1 file changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index 13e7f3ca6..df241aa6c
> 100644
> --- a/tests/kms_vrr.c
> +++ b/tests/kms_vrr.c
> @@ -483,6 +483,21 @@ static void test_cleanup(data_t *data, enum pipe
> pipe, igt_output_t *output)
> igt_remove_fb(data->drm_fd, &data->fb0); }
>
> +static bool config_constraint(igt_output_t *output, uint32_t flags) {
> + if (!has_vrr(output))
> + return false;
> +
> + /* For Negative tests, panel should be non-vrr. */
> + if ((flags & TEST_NEGATIVE) && vrr_capable(output))
> + return false;
> +
> + if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output))
> + return false;
> +
> + return true;
> +}
> +
> /* Runs tests on outputs that are VRR capable. */ static void
> run_vrr_test(data_t *data, test_t test, uint32_t flags) @@ -492,14 +507,7
> @@ run_vrr_test(data_t *data, test_t test, uint32_t flags)
> for_each_connected_output(&data->display, output) {
> enum pipe pipe;
>
> - if (!has_vrr(output))
> - continue;
> -
> - /* For Negative tests, panel should be non-vrr. */
> - if ((flags & TEST_NEGATIVE) && vrr_capable(output))
> - continue;
> -
> - if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output))
> + if (!config_constraint(output, flags))
Change LGTM. Thanks
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> continue;
>
> for_each_pipe(&data->display, pipe) {
> --
> 2.40.0
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [i-g-t V6 05/10] tests/kms_vrr: Fix the logic to calculate expected rate
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 05/10] tests/kms_vrr: Fix the logic to calculate expected rate Bhanuprakash Modem
@ 2023-12-11 6:56 ` Golani, Mitulkumar Ajitkumar
0 siblings, 0 replies; 22+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2023-12-11 6:56 UTC (permalink / raw)
To: Modem, Bhanuprakash, igt-dev@lists.freedesktop.org
> -----Original Message-----
> From: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Sent: Thursday, December 7, 2023 12:19 PM
> To: igt-dev@lists.freedesktop.org; ville.syrjala@linux.intel.com; Golani,
> Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
> Cc: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Subject: [i-g-t V6 05/10] tests/kms_vrr: Fix the logic to calculate expected rate
>
> Fix the condition check to measure the expected refresh rate.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/kms_vrr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index 4540d8b4b..db82cd008
> 100644
> --- a/tests/kms_vrr.c
> +++ b/tests/kms_vrr.c
> @@ -329,7 +329,7 @@ flip_and_measure(data_t *data, igt_output_t
> *output, enum pipe pipe,
> * difference between 144Hz and 143Hz which should give
> this
> * enough accuracy for most use cases.
> */
> - if ((rate_ns < vtest_ns.min) && (rate_ns >= vtest_ns.max))
> + if ((rate_ns <= vtest_ns.min) && (rate_ns >= vtest_ns.max))
> diff_ns = rate_ns;
> else
> diff_ns = vtest_ns.max;
> --
> 2.40.0
This can be squashed to next patches, as that resembles its purpose of use.
Regards,
Mitul
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [i-g-t V6 08/10] tests/kms_vrr: Add new subtest for DRRS without modeset
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 08/10] tests/kms_vrr: Add new subtest for DRRS " Bhanuprakash Modem
@ 2023-12-11 8:35 ` Golani, Mitulkumar Ajitkumar
2023-12-11 11:18 ` Modem, Bhanuprakash
0 siblings, 1 reply; 22+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2023-12-11 8:35 UTC (permalink / raw)
To: Modem, Bhanuprakash, igt-dev@lists.freedesktop.org,
ville.syrjala@linux.intel.com
> -----Original Message-----
> From: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Sent: Thursday, December 7, 2023 12:19 PM
> To: igt-dev@lists.freedesktop.org; ville.syrjala@linux.intel.com; Golani,
> Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
> Cc: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; Srinivas,
> Vidya <vidya.srinivas@intel.com>
> Subject: [i-g-t V6 08/10] tests/kms_vrr: Add new subtest for DRRS without
> modeset
>
> This test is same as 'kms_vrr@seamless-rr-switch-vrr' but performs on DRRS
> panel without enabling the VRR.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>
> ---
> tests/kms_vrr.c | 69 +++++++++++++++++++++++++++++++++++--------------
> 1 file changed, 49 insertions(+), 20 deletions(-)
>
> diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index 6cb5a9b10..de2ee13c7
> 100644
> --- a/tests/kms_vrr.c
> +++ b/tests/kms_vrr.c
> @@ -31,6 +31,7 @@
> */
>
> #include "igt.h"
> +#include "i915/intel_drrs.h"
> #include "sw_sync.h"
> #include <fcntl.h>
> #include <signal.h>
> @@ -57,6 +58,10 @@
> * Description: Test to switch RR seamlessly without modeset.
> * Functionality: adaptive_sync, lrr
> *
> + * SUBTEST: seamless-rr-switch-drrs
> + * Description: Test to switch RR seamlessly without modeset.
> + * Functionality: adaptive_sync, drrs
> + *
> * SUBTEST: negative-basic
> * Description: Make sure that VRR should not be enabled on the Non-VRR
> panel.
> */
> @@ -75,7 +80,8 @@ enum {
> TEST_SUSPEND = 1 << 2,
> TEST_FLIPLINE = 1 << 3,
> TEST_SEAMLESS_VRR = 1 << 4,
> - TEST_NEGATIVE = 1 << 5,
> + TEST_SEAMLESS_DRRS = 1 << 5,
> + TEST_NEGATIVE = 1 << 6,
> };
>
> enum {
> @@ -492,24 +498,27 @@ test_seamless_rr_basic(data_t *data, enum pipe
> pipe, igt_output_t *output, uint3
> uint32_t result;
> vtest_ns_t vtest_ns;
> uint64_t rate;
> + bool vrr = !!(flags & TEST_SEAMLESS_VRR);
>
> - igt_info("Use HIGH_RR Mode as default: ");
> + igt_info("Use HIGH_RR Mode as default (VRR: %s): ", vrr ? "ON" :
> +"OFF");
> kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
>
> prepare_test(data, output, pipe);
> vtest_ns = get_test_rate_ns(data->range);
>
> - igt_pipe_set_prop_value(&data->display, pipe,
> IGT_CRTC_VRR_ENABLED, true);
> - igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL)
> == 0);
> + if (vrr) {
> + igt_pipe_set_prop_value(&data->display, pipe,
> IGT_CRTC_VRR_ENABLED, true);
> + igt_assert(igt_display_try_commit_atomic(&data->display, 0,
> NULL) == 0);
> + }
>
> rate = vtest_ns.max;
> result = flip_and_measure(data, output, pipe, rate,
> TEST_DURATION_NS);
> igt_assert_f(result > 75,
> - "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on
> threshold not reached, result was %u%%\n",
> - data->range.max, rate, result);
> + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s
> threshold not reached, result was %u%%\n",
> + data->range.max, rate, vrr ? "on" : "off", result);
>
> /* Switch to low rr mode without modeset. */
> - igt_info("Switch to LOW_RR Mode: ");
> + igt_info("Switch to LOW_RR Mode (VRR: %s): ", vrr ? "ON" : "OFF");
> kmstest_dump_mode(&data->switch_modes[LOW_RR_MODE]);
> igt_output_override_mode(output, &data-
> >switch_modes[LOW_RR_MODE]);
> igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL)
> == 0); @@ -517,25 +526,28 @@ test_seamless_rr_basic(data_t *data, enum
> pipe pipe, igt_output_t *output, uint3
> rate = vtest_ns.min;
> result = flip_and_measure(data, output, pipe, rate,
> TEST_DURATION_NS);
> igt_assert_f(result > 75,
> - "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on
> threshold not reached, result was %u%%\n",
> - data->range.min, rate, result);
> + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s
> threshold not reached, result was %u%%\n",
> + data->range.min, rate, vrr ? "on" : "off", result);
>
> /* Switch back to high rr mode without modeset. */
> - igt_info("Switch back to HIGH_RR Mode: ");
> + igt_info("Switch back to HIGH_RR Mode (VRR: %s): ", vrr ? "ON" :
> +"OFF");
> kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
> igt_output_override_mode(output, &data-
> >switch_modes[HIGH_RR_MODE]);
> igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL)
> == 0);
>
> rate = vtest_ns.mid;
> result = flip_and_measure(data, output, pipe, rate,
> TEST_DURATION_NS);
> - igt_assert_f(result > 75,
> - "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on
> threshold not reached, result was %u%%\n",
> - ((data->range.max + data->range.min) / 2), rate, result);
> + igt_assert_f(vrr ? (result > 75) : (result < 10),
> + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s
> threshold %s, result was %u%%\n",
> + ((data->range.max + data->range.min) / 2), rate,
> + vrr ? "on" : "off", vrr ? "not reached" : "exceeded", result);
> }
>
> static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
> {
> - igt_pipe_set_prop_value(&data->display, pipe,
> IGT_CRTC_VRR_ENABLED, false);
> + if (vrr_capable(output))
> + igt_pipe_set_prop_value(&data->display, pipe,
> IGT_CRTC_VRR_ENABLED,
> +false);
> +
> igt_plane_set_fb(data->primary, NULL);
> igt_output_set_pipe(output, PIPE_NONE);
> igt_output_override_mode(output, NULL); @@ -547,10 +559,16 @@
> static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
>
> static bool output_constraint(data_t *data, igt_output_t *output, uint32_t
> flags) {
> - if ((flags & TEST_SEAMLESS_VRR) &&
> + if ((flags & (TEST_SEAMLESS_VRR | TEST_SEAMLESS_DRRS)) &&
> output->config.connector->connector_type !=
> DRM_MODE_CONNECTOR_eDP)
> return false;
>
> + if ((flags & TEST_SEAMLESS_DRRS) &&
> + !intel_output_has_drrs(data->drm_fd, output)) {
> + igt_info("Selected panel won't support DRRS.\n");
> + return false;
> + }
> +
> /* Reset output */
> igt_display_reset(&data->display);
>
> @@ -570,7 +588,7 @@ static bool output_constraint(data_t *data,
> igt_output_t *output, uint32_t flags
> igt_output_override_mode(output, &data-
> >switch_modes[HIGH_RR_MODE]);
>
> /* Search for a low refresh rate mode. */
> - if (!(flags & TEST_SEAMLESS_VRR))
> + if (!(flags & (TEST_SEAMLESS_VRR | TEST_SEAMLESS_DRRS)))
> return true;
>
> data->switch_modes[LOW_RR_MODE] =
> low_rr_mode_with_same_res(output, data->range.min); @@ -587,6 +605,9
> @@ static bool config_constraint(data_t *data, igt_output_t *output,
> uint32_t flags
> if (!has_vrr(output))
> return false;
>
> + if (flags & TEST_SEAMLESS_DRRS)
> + goto out;
> +
> /* For Negative tests, panel should be non-vrr. */
> if ((flags & TEST_NEGATIVE) && vrr_capable(output))
> return false;
> @@ -594,6 +615,7 @@ static bool config_constraint(data_t *data,
> igt_output_t *output, uint32_t flags
> if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output))
> return false;
>
> +out:
> if (!output_constraint(data, output, flags))
> return false;
>
> @@ -670,10 +692,17 @@ igt_main
> igt_subtest_with_dynamic("negative-basic")
> run_vrr_test(&data, test_basic, TEST_NEGATIVE);
>
> - igt_describe("Test to switch RR seamlessly without modeset.");
> - igt_subtest_with_dynamic("seamless-rr-switch-vrr"){
> - igt_require_intel(data.drm_fd);
> - run_vrr_test(&data, test_seamless_rr_basic,
> TEST_SEAMLESS_VRR);
> + igt_subtest_group {
> + igt_fixture
> + igt_require_intel(data.drm_fd);
> +
> + igt_describe("Test to switch RR seamlessly without
> modeset.");
> + igt_subtest_with_dynamic("seamless-rr-switch-vrr")
> + run_vrr_test(&data, test_seamless_rr_basic,
> TEST_SEAMLESS_VRR);
> +
> + igt_describe("Test to switch RR seamlessly without
> modeset.");
> + igt_subtest_with_dynamic("seamless-rr-switch-drrs")
> + run_vrr_test(&data, test_seamless_rr_basic,
> TEST_SEAMLESS_DRRS);
> }
>
> igt_fixture {
> --
> 2.40.0
Approach assumed for this approach is considerable but suggested to validate the same manually by checking kernel logs if these changes trigger full modest or not. As possible skip can happen with CI. Also assuming this patch will be squashed with last 2 patches from this series.
Regards,
Mitul
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [igt-dev] [i-g-t V6 09/10] tests/kms_vrr: New subtest for toggle VRR during fastsets
2023-12-07 10:40 ` Srinivas, Vidya
@ 2023-12-11 8:51 ` Golani, Mitulkumar Ajitkumar
0 siblings, 0 replies; 22+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2023-12-11 8:51 UTC (permalink / raw)
To: Modem, Bhanuprakash, igt-dev@lists.freedesktop.org
> -----Original Message-----
> From: Srinivas, Vidya <vidya.srinivas@intel.com>
> Sent: Thursday, December 7, 2023 4:11 PM
> To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; igt-
> dev@lists.freedesktop.org; ville.syrjala@linux.intel.com; Golani, Mitulkumar
> Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
> Cc: Gupta, Nidhi1 <nidhi1.gupta@intel.com>
> Subject: RE: [igt-dev] [i-g-t V6 09/10] tests/kms_vrr: New subtest for toggle
> VRR during fastsets
>
> Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>
>
> > -----Original Message-----
> > From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of
> > Bhanuprakash Modem
> > Sent: Thursday, December 7, 2023 12:19 PM
> > To: igt-dev@lists.freedesktop.org; ville.syrjala@linux.intel.com;
> > Golani, Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
> > Cc: Gupta, Nidhi1 <nidhi1.gupta@intel.com>
> > Subject: [igt-dev] [i-g-t V6 09/10] tests/kms_vrr: New subtest for
> > toggle VRR during fastsets
> >
> > Allow VRR to be toggled during fastsets, without full modeset.
> > This patch enables 'kms_vrr@flip-basic' subtest to verify fastset too.
> >
> > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> > Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
> > ---
> > tests/kms_vrr.c | 30 +++++++++++++++++++++---------
> > 1 file changed, 21 insertions(+), 9 deletions(-)
> >
> > diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index
> > de2ee13c7..1ace970a5
> > 100644
> > --- a/tests/kms_vrr.c
> > +++ b/tests/kms_vrr.c
> > @@ -41,6 +41,10 @@
> > * Description: Tests that VRR is enabled and that the difference between
> flip
> > * timestamps converges to the requested rate
> > *
> > + * SUBTEST: flip-basic-fastset
> > + * Description: Tests that VRR is enabled without modeset and that
> > + the
> > difference
> > + * between flip timestamps converges to the requested rate
> > + *
> > * SUBTEST: flip-dpms
> > * Description: Tests with DPMS that VRR is enabled and that the difference
> > * between flip timestamps converges to the requested rate.
> > @@ -81,7 +85,8 @@ enum {
> > TEST_FLIPLINE = 1 << 3,
> > TEST_SEAMLESS_VRR = 1 << 4,
> > TEST_SEAMLESS_DRRS = 1 << 5,
> > - TEST_NEGATIVE = 1 << 6,
> > + TEST_FASTSET = 1 << 6,
> > + TEST_NEGATIVE = 1 << 7,
> > };
> >
> > enum {
> > @@ -253,11 +258,15 @@ static bool vrr_capable(igt_output_t *output) }
> >
> > /* Toggles variable refresh rate on the pipe. */ -static void
> > set_vrr_on_pipe(data_t *data, enum pipe pipe, bool enabled)
> > +static void set_vrr_on_pipe(data_t *data, enum pipe pipe,
> > + bool need_modeset, bool enabled)
> > {
> > igt_pipe_set_prop_value(&data->display, pipe,
> IGT_CRTC_VRR_ENABLED,
> > enabled);
> > - igt_display_commit2(&data->display, COMMIT_ATOMIC);
> > +
> > + igt_assert(igt_display_try_commit_atomic(&data->display,
> > + need_modeset ?
> > DRM_MODE_ATOMIC_ALLOW_MODESET : 0,
> > + NULL) == 0);
> > }
> >
> > /* Prepare the display for testing on the given pipe. */ @@ -418,7
> > +427,7 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t
> > *output, uint32_t
> > flags)
> > igt_info("Override Mode: ");
> > kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
> >
> > - set_vrr_on_pipe(data, pipe, true);
> > + set_vrr_on_pipe(data, pipe, !(flags & TEST_FASTSET), true);
> >
> > /*
> > * Do a short run with VRR, but don't check the result.
> > @@ -484,7 +493,7 @@ test_basic(data_t *data, enum pipe pipe,
> > igt_output_t *output, uint32_t flags)
> > * modeset. And the expected behavior is the same as disabling VRR
> > on
> > * a VRR capable panel.
> > */
> > - set_vrr_on_pipe(data, pipe, (flags & TEST_NEGATIVE)? true : false);
> > + set_vrr_on_pipe(data, pipe, !(flags & TEST_FASTSET), (flags &
> > +TEST_NEGATIVE) ? true : false);
> > rate = vtest_ns.mid;
> > result = flip_and_measure(data, output, pipe, rate,
> > TEST_DURATION_NS);
> > igt_assert_f(result < 10,
> > @@ -506,10 +515,8 @@ test_seamless_rr_basic(data_t *data, enum pipe
> > pipe, igt_output_t *output, uint3
> > prepare_test(data, output, pipe);
> > vtest_ns = get_test_rate_ns(data->range);
> >
> > - if (vrr) {
> > - igt_pipe_set_prop_value(&data->display, pipe,
> > IGT_CRTC_VRR_ENABLED, true);
> > - igt_assert(igt_display_try_commit_atomic(&data->display, 0,
> > NULL) == 0);
> > - }
> > + if (vrr)
> > + set_vrr_on_pipe(data, pipe, false, true);
> >
> > rate = vtest_ns.max;
> > result = flip_and_measure(data, output, pipe, rate,
> > TEST_DURATION_NS); @@ -703,6 +710,11 @@ igt_main
> > igt_describe("Test to switch RR seamlessly without
> modeset.");
> > igt_subtest_with_dynamic("seamless-rr-switch-drrs")
> > run_vrr_test(&data, test_seamless_rr_basic,
> TEST_SEAMLESS_DRRS);
> > +
> > + igt_describe("Tests that VRR is enabled without modeset and
> > that the difference "
> > + "between flip timestamps converges to the
> > requested rate");
> > + igt_subtest_with_dynamic("flip-basic-fastset")
> > + run_vrr_test(&data, test_basic, TEST_FASTSET);
> > }
> >
> > igt_fixture {
> > --
> > 2.40.0
With assumed approach changes looks good to me, after removing logs history, recommended to validate VRR toggle accurately from kernel logs.
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [i-g-t V6 08/10] tests/kms_vrr: Add new subtest for DRRS without modeset
2023-12-11 8:35 ` Golani, Mitulkumar Ajitkumar
@ 2023-12-11 11:18 ` Modem, Bhanuprakash
0 siblings, 0 replies; 22+ messages in thread
From: Modem, Bhanuprakash @ 2023-12-11 11:18 UTC (permalink / raw)
To: Golani, Mitulkumar Ajitkumar, igt-dev@lists.freedesktop.org,
ville.syrjala@linux.intel.com
Hi Mitul,
On 11-12-2023 02:05 pm, Golani, Mitulkumar Ajitkumar wrote:
>
>
>> -----Original Message-----
>> From: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
>> Sent: Thursday, December 7, 2023 12:19 PM
>> To: igt-dev@lists.freedesktop.org; ville.syrjala@linux.intel.com; Golani,
>> Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
>> Cc: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; Srinivas,
>> Vidya <vidya.srinivas@intel.com>
>> Subject: [i-g-t V6 08/10] tests/kms_vrr: Add new subtest for DRRS without
>> modeset
>>
>> This test is same as 'kms_vrr@seamless-rr-switch-vrr' but performs on DRRS
>> panel without enabling the VRR.
>>
>> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
>> Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>
>> ---
>> tests/kms_vrr.c | 69 +++++++++++++++++++++++++++++++++++--------------
>> 1 file changed, 49 insertions(+), 20 deletions(-)
>>
>> diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index 6cb5a9b10..de2ee13c7
>> 100644
>> --- a/tests/kms_vrr.c
>> +++ b/tests/kms_vrr.c
>> @@ -31,6 +31,7 @@
>> */
>>
>> #include "igt.h"
>> +#include "i915/intel_drrs.h"
>> #include "sw_sync.h"
>> #include <fcntl.h>
>> #include <signal.h>
>> @@ -57,6 +58,10 @@
>> * Description: Test to switch RR seamlessly without modeset.
>> * Functionality: adaptive_sync, lrr
>> *
>> + * SUBTEST: seamless-rr-switch-drrs
>> + * Description: Test to switch RR seamlessly without modeset.
>> + * Functionality: adaptive_sync, drrs
>> + *
>> * SUBTEST: negative-basic
>> * Description: Make sure that VRR should not be enabled on the Non-VRR
>> panel.
>> */
>> @@ -75,7 +80,8 @@ enum {
>> TEST_SUSPEND = 1 << 2,
>> TEST_FLIPLINE = 1 << 3,
>> TEST_SEAMLESS_VRR = 1 << 4,
>> - TEST_NEGATIVE = 1 << 5,
>> + TEST_SEAMLESS_DRRS = 1 << 5,
>> + TEST_NEGATIVE = 1 << 6,
>> };
>>
>> enum {
>> @@ -492,24 +498,27 @@ test_seamless_rr_basic(data_t *data, enum pipe
>> pipe, igt_output_t *output, uint3
>> uint32_t result;
>> vtest_ns_t vtest_ns;
>> uint64_t rate;
>> + bool vrr = !!(flags & TEST_SEAMLESS_VRR);
>>
>> - igt_info("Use HIGH_RR Mode as default: ");
>> + igt_info("Use HIGH_RR Mode as default (VRR: %s): ", vrr ? "ON" :
>> +"OFF");
>> kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
>>
>> prepare_test(data, output, pipe);
>> vtest_ns = get_test_rate_ns(data->range);
>>
>> - igt_pipe_set_prop_value(&data->display, pipe,
>> IGT_CRTC_VRR_ENABLED, true);
>> - igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL)
>> == 0);
>> + if (vrr) {
>> + igt_pipe_set_prop_value(&data->display, pipe,
>> IGT_CRTC_VRR_ENABLED, true);
>> + igt_assert(igt_display_try_commit_atomic(&data->display, 0,
>> NULL) == 0);
>> + }
>>
>> rate = vtest_ns.max;
>> result = flip_and_measure(data, output, pipe, rate,
>> TEST_DURATION_NS);
>> igt_assert_f(result > 75,
>> - "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on
>> threshold not reached, result was %u%%\n",
>> - data->range.max, rate, result);
>> + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s
>> threshold not reached, result was %u%%\n",
>> + data->range.max, rate, vrr ? "on" : "off", result);
>>
>> /* Switch to low rr mode without modeset. */
>> - igt_info("Switch to LOW_RR Mode: ");
>> + igt_info("Switch to LOW_RR Mode (VRR: %s): ", vrr ? "ON" : "OFF");
>> kmstest_dump_mode(&data->switch_modes[LOW_RR_MODE]);
>> igt_output_override_mode(output, &data-
>>> switch_modes[LOW_RR_MODE]);
>> igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL)
>> == 0); @@ -517,25 +526,28 @@ test_seamless_rr_basic(data_t *data, enum
>> pipe pipe, igt_output_t *output, uint3
>> rate = vtest_ns.min;
>> result = flip_and_measure(data, output, pipe, rate,
>> TEST_DURATION_NS);
>> igt_assert_f(result > 75,
>> - "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on
>> threshold not reached, result was %u%%\n",
>> - data->range.min, rate, result);
>> + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s
>> threshold not reached, result was %u%%\n",
>> + data->range.min, rate, vrr ? "on" : "off", result);
>>
>> /* Switch back to high rr mode without modeset. */
>> - igt_info("Switch back to HIGH_RR Mode: ");
>> + igt_info("Switch back to HIGH_RR Mode (VRR: %s): ", vrr ? "ON" :
>> +"OFF");
>> kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
>> igt_output_override_mode(output, &data-
>>> switch_modes[HIGH_RR_MODE]);
>> igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL)
>> == 0);
>>
>> rate = vtest_ns.mid;
>> result = flip_and_measure(data, output, pipe, rate,
>> TEST_DURATION_NS);
>> - igt_assert_f(result > 75,
>> - "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on
>> threshold not reached, result was %u%%\n",
>> - ((data->range.max + data->range.min) / 2), rate, result);
>> + igt_assert_f(vrr ? (result > 75) : (result < 10),
>> + "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s
>> threshold %s, result was %u%%\n",
>> + ((data->range.max + data->range.min) / 2), rate,
>> + vrr ? "on" : "off", vrr ? "not reached" : "exceeded", result);
>> }
>>
>> static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
>> {
>> - igt_pipe_set_prop_value(&data->display, pipe,
>> IGT_CRTC_VRR_ENABLED, false);
>> + if (vrr_capable(output))
>> + igt_pipe_set_prop_value(&data->display, pipe,
>> IGT_CRTC_VRR_ENABLED,
>> +false);
>> +
>> igt_plane_set_fb(data->primary, NULL);
>> igt_output_set_pipe(output, PIPE_NONE);
>> igt_output_override_mode(output, NULL); @@ -547,10 +559,16 @@
>> static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
>>
>> static bool output_constraint(data_t *data, igt_output_t *output, uint32_t
>> flags) {
>> - if ((flags & TEST_SEAMLESS_VRR) &&
>> + if ((flags & (TEST_SEAMLESS_VRR | TEST_SEAMLESS_DRRS)) &&
>> output->config.connector->connector_type !=
>> DRM_MODE_CONNECTOR_eDP)
>> return false;
>>
>> + if ((flags & TEST_SEAMLESS_DRRS) &&
>> + !intel_output_has_drrs(data->drm_fd, output)) {
>> + igt_info("Selected panel won't support DRRS.\n");
>> + return false;
>> + }
>> +
>> /* Reset output */
>> igt_display_reset(&data->display);
>>
>> @@ -570,7 +588,7 @@ static bool output_constraint(data_t *data,
>> igt_output_t *output, uint32_t flags
>> igt_output_override_mode(output, &data-
>>> switch_modes[HIGH_RR_MODE]);
>>
>> /* Search for a low refresh rate mode. */
>> - if (!(flags & TEST_SEAMLESS_VRR))
>> + if (!(flags & (TEST_SEAMLESS_VRR | TEST_SEAMLESS_DRRS)))
>> return true;
>>
>> data->switch_modes[LOW_RR_MODE] =
>> low_rr_mode_with_same_res(output, data->range.min); @@ -587,6 +605,9
>> @@ static bool config_constraint(data_t *data, igt_output_t *output,
>> uint32_t flags
>> if (!has_vrr(output))
>> return false;
>>
>> + if (flags & TEST_SEAMLESS_DRRS)
>> + goto out;
>> +
>> /* For Negative tests, panel should be non-vrr. */
>> if ((flags & TEST_NEGATIVE) && vrr_capable(output))
>> return false;
>> @@ -594,6 +615,7 @@ static bool config_constraint(data_t *data,
>> igt_output_t *output, uint32_t flags
>> if ((flags & ~TEST_NEGATIVE) && !vrr_capable(output))
>> return false;
>>
>> +out:
>> if (!output_constraint(data, output, flags))
>> return false;
>>
>> @@ -670,10 +692,17 @@ igt_main
>> igt_subtest_with_dynamic("negative-basic")
>> run_vrr_test(&data, test_basic, TEST_NEGATIVE);
>>
>> - igt_describe("Test to switch RR seamlessly without modeset.");
>> - igt_subtest_with_dynamic("seamless-rr-switch-vrr"){
>> - igt_require_intel(data.drm_fd);
>> - run_vrr_test(&data, test_seamless_rr_basic,
>> TEST_SEAMLESS_VRR);
>> + igt_subtest_group {
>> + igt_fixture
>> + igt_require_intel(data.drm_fd);
>> +
>> + igt_describe("Test to switch RR seamlessly without
>> modeset.");
>> + igt_subtest_with_dynamic("seamless-rr-switch-vrr")
>> + run_vrr_test(&data, test_seamless_rr_basic,
>> TEST_SEAMLESS_VRR);
>> +
>> + igt_describe("Test to switch RR seamlessly without
>> modeset.");
>> + igt_subtest_with_dynamic("seamless-rr-switch-drrs")
>> + run_vrr_test(&data, test_seamless_rr_basic,
>> TEST_SEAMLESS_DRRS);
>> }
>>
>> igt_fixture {
>> --
>> 2.40.0
>
> Approach assumed for this approach is considerable but suggested to validate the same manually by checking kernel logs if these changes trigger full modest or not. As possible skip can happen with CI. Also assuming this patch will be squashed with last 2 patches from this series.
Thanks for the review.
As we are introducing a new subtest in this patch. IMHO, better to keep
it as a separate patch (no need to squash with other patches).
- Bhanu
>
> Regards,
> Mitul
>
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2023-12-11 11:24 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-07 6:48 [igt-dev] [i-g-t V6 00/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 01/10] tests/kms_vrr: Use lib helper to print connector modes Bhanuprakash Modem
2023-12-07 14:08 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 02/10] tests/kms_vrr: Clear VRR before exit Bhanuprakash Modem
2023-12-07 14:12 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 03/10] tests/kms_vrr: Move all config constaints to new function Bhanuprakash Modem
2023-12-07 16:04 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 04/10] tests/kms_vrr: Fix bigjoiner constraint Bhanuprakash Modem
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 05/10] tests/kms_vrr: Fix the logic to calculate expected rate Bhanuprakash Modem
2023-12-11 6:56 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 06/10] tests/kms_vrr: Add a helper to get the low refresh mode Bhanuprakash Modem
2023-12-07 14:42 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 07/10] tests/kms_vrr: Add new subtest to switch RR without modeset Bhanuprakash Modem
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 08/10] tests/kms_vrr: Add new subtest for DRRS " Bhanuprakash Modem
2023-12-11 8:35 ` Golani, Mitulkumar Ajitkumar
2023-12-11 11:18 ` Modem, Bhanuprakash
2023-12-07 6:48 ` [igt-dev] [i-g-t V6 09/10] tests/kms_vrr: New subtest for toggle VRR during fastsets Bhanuprakash Modem
2023-12-07 10:40 ` Srinivas, Vidya
2023-12-11 8:51 ` Golani, Mitulkumar Ajitkumar
2023-12-07 6:49 ` [igt-dev] [i-g-t V6 10/10] HAX: DO_NOT_MERGE: test only vrr tests Bhanuprakash Modem
2023-12-07 7:59 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_vrr: Add new subtest to switch RR without modeset (rev7) Patchwork
2023-12-07 8:01 ` [igt-dev] ✗ CI.xeBAT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox