[PATCH i-g-t v2 1/2] tests/kms_vrr: Fix vrr multi-display issue

Naladala Ramanaidu ramanaidu.naladala at intel.com
Tue Mar 25 20:02:08 UTC 2025


Ensure consistent output timing by changeing the conditional logic.

v2: Updat logic to set the default rate to the midpoint
    if unspecified or out of VRR range.

Closes : https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/4227
Signed-off-by: Naladala Ramanaidu <ramanaidu.naladala at intel.com>
---
 tests/kms_vrr.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index c4bb30f6a..fd05ebc89 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -324,12 +324,19 @@ static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
 	int num_painted_fbs;
 
 	mode = *igt_output_get_mode(output);
+	data->range = get_vrr_range(data, output);
 
 	data->vtest_ns.min = igt_kms_frame_time_from_vrefresh(data->range.min);
 	data->vtest_ns.max = igt_kms_frame_time_from_vrefresh(data->range.max);
 
-	/* If unspecified on the command line, default rate to the midpoint */
-	if (data->vtest_ns.rate_ns == 0) {
+	/*
+	 * If unspecified on the command line or out of VRR range,
+	 * default rate to the midpoint.
+	 *
+	 */
+	if ((data->vtest_ns.rate_ns == 0) ||
+	    (data->vtest_ns.rate_ns < data->vtest_ns.min) ||
+	    (data->vtest_ns.rate_ns > data->vtest_ns.max)) {
 		range_t *range = &data->range;
 		data->vtest_ns.rate_ns = igt_kms_frame_time_from_vrefresh(
 						(range->min + range->max) / 2);
-- 
2.43.0



More information about the igt-dev mailing list