* [igt-dev] [i-g-t V2 0/6] Fix Bigjoiner checks
@ 2023-03-28 12:32 Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 1/6] lib/igt_kms: " Bhanuprakash Modem
` (7 more replies)
0 siblings, 8 replies; 12+ messages in thread
From: Bhanuprakash Modem @ 2023-03-28 12:32 UTC (permalink / raw)
To: igt-dev, swati2.sharma, ankit.k.nautiyal, karthik.b.s
Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.
Bhanuprakash Modem (6):
lib/igt_kms: Fix Bigjoiner checks
tests/i915/kms_big_joiner: Fix Bigjoiner checks
tests/i915/kms_dsc: Update bigjoiner pipe constraint
tests/kms_invalid_mode: Use helpers from IGT lib
tests/kms_flip: Fix Bigjoiner checks
tests/kms_setmode: Fix Bigjoiner checks
lib/igt_kms.c | 56 ++++++++++++++++++++++++++++---
lib/igt_kms.h | 2 ++
tests/i915/kms_big_joiner.c | 67 +++++++++++++++++++++----------------
tests/i915/kms_dsc.c | 17 +++++-----
tests/i915/kms_dsc_helper.h | 2 --
tests/kms_flip.c | 12 +++----
tests/kms_invalid_mode.c | 23 +------------
tests/kms_setmode.c | 15 +++++----
8 files changed, 116 insertions(+), 78 deletions(-)
--
2.40.0
^ permalink raw reply [flat|nested] 12+ messages in thread
* [igt-dev] [i-g-t V2 1/6] lib/igt_kms: Fix Bigjoiner checks
2023-03-28 12:32 [igt-dev] [i-g-t V2 0/6] Fix Bigjoiner checks Bhanuprakash Modem
@ 2023-03-28 12:32 ` Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 2/6] tests/i915/kms_big_joiner: " Bhanuprakash Modem
` (6 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Bhanuprakash Modem @ 2023-03-28 12:32 UTC (permalink / raw)
To: igt-dev, swati2.sharma, ankit.k.nautiyal, karthik.b.s
Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.
V2: - Update helper comments (Ankit)
- New helper to check Bigjoiner requirement (Ankit)
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
lib/igt_kms.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++----
lib/igt_kms.h | 2 ++
2 files changed, 54 insertions(+), 4 deletions(-)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index c12823d318e..c4d9fcc5ddd 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -5780,6 +5780,51 @@ bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe,
return false;
}
+/*
+ * igt_get_max_dotclock:
+ * @fd: A drm file descriptor
+ *
+ * Get the Max pixel clock frequency from intel specific debugfs
+ * "i915_frequency_info".
+ *
+ * Returns: Max supported pixel clock frequency.
+ */
+int igt_get_max_dotclock(int fd)
+{
+ char buf[4096];
+ char *s;
+ int max_dotclock = 0;
+
+ if (!is_i915_device(fd))
+ return max_dotclock;
+
+ igt_debugfs_read(fd, "i915_frequency_info", buf);
+ s = strstr(buf, "Max pixel clock frequency:");
+ igt_assert(s);
+ igt_assert_eq(sscanf(s, "Max pixel clock frequency: %d kHz", &max_dotclock), 1);
+
+ /* 100 Mhz to 5 GHz seem like reasonable values to expect */
+ igt_assert_lt(max_dotclock, 5000000);
+ igt_assert_lt(100000, max_dotclock);
+
+ return max_dotclock;
+}
+
+/* igt_bigjoiner_possible:
+ * @mode: libdrm mode
+ * @max_dotclock: Max pixel clock frequency
+ *
+ * Bigjoiner will come into the picture, when the requested
+ * mode resolution > 5K or mode clock > max_dotclock.
+ *
+ * Returns: True if mode requires Bigjoiner, else False.
+ */
+bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock)
+{
+ return (mode->hdisplay > MAX_HDISPLAY_PER_PIPE ||
+ mode->clock > max_dotclock);
+}
+
/*
* igt_check_bigjoiner_support:
* @display: a pointer to an #igt_display_t structure
@@ -5802,6 +5847,7 @@ bool igt_check_bigjoiner_support(igt_display_t *display)
enum pipe idx;
drmModeModeInfo *mode;
} pipes[IGT_MAX_PIPES];
+ int max_dotclock;
/* Get total enabled pipes. */
for_each_pipe(display, p)
@@ -5825,22 +5871,24 @@ bool igt_check_bigjoiner_support(igt_display_t *display)
return true;
}
+ max_dotclock = igt_get_max_dotclock(display->drm_fd);
+
/*
- * if mode.hdisplay > 5120, then ignore
+ * if mode resolution > 5K (or) mode.clock > max dot-clock, then ignore
* - if the consecutive pipe is not available
* - last crtc in single/multi-connector config
* - consecutive crtcs in multi-connector config
*
* in multi-connector config ignore if
- * - previous crtc mode.hdisplay > 5120 and
+ * - previous crtc (mode resolution > 5K or mode.clock > max dot-clock) and
* - current & previous crtcs are consecutive
*/
for (i = 0; i < pipes_in_use; i++) {
- if (((pipes[i].mode->hdisplay > MAX_HDISPLAY_PER_PIPE) &&
+ if ((igt_bigjoiner_possible(pipes[i].mode, max_dotclock) &&
((pipes[i].idx >= (total_pipes - 1)) ||
(!display->pipes[pipes[i].idx + 1].enabled) ||
((i < (pipes_in_use - 1)) && (abs(pipes[i + 1].idx - pipes[i].idx) <= 1)))) ||
- ((i > 0) && (pipes[i - 1].mode->hdisplay > MAX_HDISPLAY_PER_PIPE) &&
+ ((i > 0) && igt_bigjoiner_possible(pipes[i - 1].mode, max_dotclock) &&
((!display->pipes[pipes[i - 1].idx + 1].enabled) ||
(abs(pipes[i].idx - pipes[i - 1].idx) <= 1)))) {
igt_debug("Pipe/Output combo is not possible with selected mode(s).\n");
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 2b917925158..df90bb2330d 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -990,6 +990,8 @@ void igt_sort_connector_modes(drmModeConnector *connector,
bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe,
igt_output_t *output, int bpc);
+int igt_get_max_dotclock(int fd);
+bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
bool igt_check_bigjoiner_support(igt_display_t *display);
bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
bool i915_pipe_output_combo_valid(igt_display_t *display);
--
2.40.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] [i-g-t V2 2/6] tests/i915/kms_big_joiner: Fix Bigjoiner checks
2023-03-28 12:32 [igt-dev] [i-g-t V2 0/6] Fix Bigjoiner checks Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 1/6] lib/igt_kms: " Bhanuprakash Modem
@ 2023-03-28 12:32 ` Bhanuprakash Modem
2023-04-05 7:38 ` Karthik B S
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 3/6] tests/i915/kms_dsc: Update bigjoiner pipe constraint Bhanuprakash Modem
` (5 subsequent siblings)
7 siblings, 1 reply; 12+ messages in thread
From: Bhanuprakash Modem @ 2023-03-28 12:32 UTC (permalink / raw)
To: igt-dev, swati2.sharma, ankit.k.nautiyal, karthik.b.s
Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/i915/kms_big_joiner.c | 67 +++++++++++++++++++++----------------
1 file changed, 38 insertions(+), 29 deletions(-)
diff --git a/tests/i915/kms_big_joiner.c b/tests/i915/kms_big_joiner.c
index 8be60ea1176..adc37be719d 100644
--- a/tests/i915/kms_big_joiner.c
+++ b/tests/i915/kms_big_joiner.c
@@ -26,10 +26,13 @@
#include "igt.h"
-#define MAX_HDISPLAY_PER_PIPE 5120
-
IGT_TEST_DESCRIPTION("Test big joiner");
+typedef struct {
+ uint32_t output;
+ drmModeModeInfo mode;
+} big_joiner;
+
typedef struct {
int drm_fd;
igt_display_t display;
@@ -37,7 +40,7 @@ typedef struct {
int n_pipes;
enum pipe pipe1;
enum pipe pipe2;
- uint32_t big_joiner_output[2];
+ big_joiner big_joiner_output[2];
} data_t;
static void test_invalid_modeset(data_t *data)
@@ -91,7 +94,7 @@ static void test_basic_modeset(data_t *data)
igt_display_reset(display);
for_each_connected_output(display, output) {
- if (data->big_joiner_output[0] == output->id) {
+ if (data->big_joiner_output[0].output == output->id) {
big_joiner_output = output;
break;
}
@@ -99,9 +102,7 @@ static void test_basic_modeset(data_t *data)
igt_output_set_pipe(big_joiner_output, data->pipe1);
- igt_sort_connector_modes(big_joiner_output->config.connector,
- sort_drm_modes_by_res_dsc);
- mode = &big_joiner_output->config.connector->modes[0];
+ mode = &data->big_joiner_output[0].mode;
igt_output_override_mode(big_joiner_output, mode);
pipe = &display->pipes[data->pipe1];
@@ -130,7 +131,7 @@ static void test_dual_display(data_t *data)
igt_display_reset(display);
for_each_connected_output(display, output) {
- if (data->big_joiner_output[count] == output->id) {
+ if (data->big_joiner_output[count].output == output->id) {
big_joiner_output[count] = output;
count++;
}
@@ -143,9 +144,7 @@ static void test_dual_display(data_t *data)
igt_output_set_pipe(big_joiner_output[1], data->pipe2);
/* Set up first big joiner output on Pipe A*/
- igt_sort_connector_modes(big_joiner_output[0]->config.connector,
- sort_drm_modes_by_res_dsc);
- mode = &big_joiner_output[0]->config.connector->modes[0];
+ mode = &data->big_joiner_output[0].mode;
igt_output_override_mode(big_joiner_output[0], mode);
pipe = &display->pipes[data->pipe1];
@@ -156,9 +155,7 @@ static void test_dual_display(data_t *data)
igt_plane_set_size(plane1, mode->hdisplay, mode->vdisplay);
/* Set up second big joiner output on Pipe C*/
- igt_sort_connector_modes(big_joiner_output[1]->config.connector,
- sort_drm_modes_by_res_dsc);
- mode = &big_joiner_output[1]->config.connector->modes[0];
+ mode = &data->big_joiner_output[1].mode;
igt_output_override_mode(big_joiner_output[1], mode);
pipe = &display->pipes[data->pipe2];
@@ -186,6 +183,8 @@ igt_main
int valid_output = 0, i, count = 0, j = 0;
uint16_t width = 0, height = 0;
enum pipe pipe_seq[IGT_MAX_PIPES];
+ int max_dotclock;
+ bool retry = false;
igt_fixture {
data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
@@ -194,13 +193,22 @@ igt_main
igt_display_require(&data.display, data.drm_fd);
igt_require(data.display.is_atomic);
+ max_dotclock = igt_get_max_dotclock(data.drm_fd);
+retry:
for_each_connected_output(&data.display, output) {
+ /*
+ * Bigjoiner will come in the picture when
+ * the resolution > 5K or clock > max-dot-clock.
+ */
igt_sort_connector_modes(output->config.connector,
- sort_drm_modes_by_res_dsc);
+ retry ? sort_drm_modes_by_clk_dsc :
+ sort_drm_modes_by_res_dsc);
mode = &output->config.connector->modes[0];
- if (mode->hdisplay > MAX_HDISPLAY_PER_PIPE) {
- data.big_joiner_output[count++] = output->id;
+ if (igt_bigjoiner_possible(mode, max_dotclock)) {
+ data.big_joiner_output[count].output = output->id;
+ memcpy(&data.big_joiner_output[count].mode, mode, sizeof(drmModeModeInfo));
+ count++;
width = max(width, mode->hdisplay);
height = max(height, mode->vdisplay);
@@ -208,6 +216,11 @@ igt_main
valid_output++;
}
+ if (!count && !retry) {
+ retry = true;
+ goto retry;
+ }
+
data.n_pipes = 0;
for_each_pipe(&data.display, i) {
data.n_pipes++;
@@ -215,7 +228,7 @@ igt_main
j++;
}
- igt_require_f(count > 0, "No output with 5k+ mode found\n");
+ igt_require_f(count > 0, "No output with 5k+ mode (or) clock > max-dot-clock found\n");
igt_create_pattern_fb(data.drm_fd, width, height, DRM_FORMAT_XRGB8888,
DRM_FORMAT_MOD_LINEAR, &data.fb);
@@ -237,14 +250,12 @@ igt_main
igt_display_reset(&data.display);
for_each_connected_output(&data.display, output) {
- if (data.big_joiner_output[0] != output->id)
+ if (data.big_joiner_output[0].output != output->id)
continue;
- igt_sort_connector_modes(output->config.connector,
- sort_drm_modes_by_res_dsc);
-
+ mode = &data.big_joiner_output[0].mode;
igt_output_set_pipe(output, data.pipe1);
- igt_output_override_mode(output, &output->config.connector->modes[0]);
+ igt_output_override_mode(output, mode);
igt_dynamic_f("pipe-%s-%s",
kmstest_pipe_name(data.pipe1),
@@ -261,17 +272,15 @@ igt_main
igt_display_reset(&data.display);
for_each_connected_output(&data.display, output) {
- igt_sort_connector_modes(output->config.connector,
- sort_drm_modes_by_res_dsc);
-
- if (data.big_joiner_output[0] == output->id) {
+ if (data.big_joiner_output[0].output == output->id) {
first_output = output;
+ mode = &data.big_joiner_output[0].mode;
+
igt_output_set_pipe(output, data.pipe1);
- igt_output_override_mode(output, &output->config.connector->modes[0]);
+ igt_output_override_mode(output, mode);
} else if (second_output == NULL) {
second_output = output;
igt_output_set_pipe(output, data.pipe2);
- igt_output_override_mode(output, &output->config.connector->modes[0]);
break;
}
--
2.40.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] [i-g-t V2 3/6] tests/i915/kms_dsc: Update bigjoiner pipe constraint
2023-03-28 12:32 [igt-dev] [i-g-t V2 0/6] Fix Bigjoiner checks Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 1/6] lib/igt_kms: " Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 2/6] tests/i915/kms_big_joiner: " Bhanuprakash Modem
@ 2023-03-28 12:32 ` Bhanuprakash Modem
2023-03-29 15:48 ` Sharma, Swati2
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 4/6] tests/kms_invalid_mode: Use helpers from IGT lib Bhanuprakash Modem
` (4 subsequent siblings)
7 siblings, 1 reply; 12+ messages in thread
From: Bhanuprakash Modem @ 2023-03-28 12:32 UTC (permalink / raw)
To: igt-dev, swati2.sharma, ankit.k.nautiyal, karthik.b.s
Instead of writing own logic at test level, use existing IGT
helper to check the bigjoiner support.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/i915/kms_dsc.c | 17 ++++++++---------
tests/i915/kms_dsc_helper.h | 2 --
2 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
index b3c5e60c773..9c6a7780acd 100644
--- a/tests/i915/kms_dsc.c
+++ b/tests/i915/kms_dsc.c
@@ -47,7 +47,6 @@ typedef struct {
unsigned int plane_format;
igt_output_t *output;
int input_bpc;
- int n_pipes;
int disp_ver;
enum pipe pipe;
} data_t;
@@ -76,15 +75,19 @@ static bool check_big_joiner_pipe_constraint(data_t *data)
{
igt_output_t *output = data->output;
drmModeModeInfo *mode = get_highres_mode(output);
+ bool ret = true;
- if (mode->hdisplay >= HDISPLAY_5K &&
- data->pipe == (data->n_pipes - 1)) {
+ igt_output_set_pipe(output, data->pipe);
+ igt_output_override_mode(output, mode);
+
+ if (!igt_check_bigjoiner_support(&data->display)) {
igt_debug("Pipe-%s not supported due to bigjoiner limitation\n",
kmstest_pipe_name(data->pipe));
- return false;
+ ret = false;
}
+ igt_output_set_pipe(output, PIPE_NONE);
- return true;
+ return ret;
}
static void test_cleanup(data_t *data)
@@ -206,7 +209,6 @@ static void test_dsc(data_t *data, enum dsc_test_type test_type, int bpc,
igt_main
{
data_t data = {};
- int i;
igt_fixture {
data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
@@ -217,9 +219,6 @@ igt_main
igt_display_require(&data.display, data.drm_fd);
igt_display_require_output(&data.display);
igt_require(data.disp_ver >= 11);
- data.n_pipes = 0;
- for_each_pipe(&data.display, i)
- data.n_pipes++;
}
igt_describe("Tests basic display stream compression functionality if supported "
diff --git a/tests/i915/kms_dsc_helper.h b/tests/i915/kms_dsc_helper.h
index fe479dac472..b3828dcd44a 100644
--- a/tests/i915/kms_dsc_helper.h
+++ b/tests/i915/kms_dsc_helper.h
@@ -21,8 +21,6 @@
#include <fcntl.h>
#include <termios.h>
-#define HDISPLAY_5K 5120
-
void force_dsc_enable(int drmfd, igt_output_t *output);
void force_dsc_enable_bpc(int drmfd, igt_output_t *output, int input_bpc);
void save_force_dsc_en(int drmfd, igt_output_t *output);
--
2.40.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] [i-g-t V2 4/6] tests/kms_invalid_mode: Use helpers from IGT lib
2023-03-28 12:32 [igt-dev] [i-g-t V2 0/6] Fix Bigjoiner checks Bhanuprakash Modem
` (2 preceding siblings ...)
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 3/6] tests/i915/kms_dsc: Update bigjoiner pipe constraint Bhanuprakash Modem
@ 2023-03-28 12:32 ` Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 5/6] tests/kms_flip: Fix Bigjoiner checks Bhanuprakash Modem
` (3 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Bhanuprakash Modem @ 2023-03-28 12:32 UTC (permalink / raw)
To: igt-dev, swati2.sharma, ankit.k.nautiyal, karthik.b.s
Instead of writing own logic at test level, use existing IGT
helper to read the max dot clock.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_invalid_mode.c | 23 +----------------------
1 file changed, 1 insertion(+), 22 deletions(-)
diff --git a/tests/kms_invalid_mode.c b/tests/kms_invalid_mode.c
index 86f529e88b1..ec048305567 100644
--- a/tests/kms_invalid_mode.c
+++ b/tests/kms_invalid_mode.c
@@ -213,27 +213,6 @@ test_output(data_t *data)
igt_remove_fb(data->drm_fd, &fb);
}
-static int i915_max_dotclock(data_t *data)
-{
- char buf[4096];
- char *s;
- int max_dotclock = 0;
-
- if (!is_i915_device(data->drm_fd))
- return 0;
-
- igt_debugfs_read(data->drm_fd, "i915_frequency_info", buf);
- s = strstr(buf, "Max pixel clock frequency:");
- igt_assert(s);
- igt_assert_eq(sscanf(s, "Max pixel clock frequency: %d kHz", &max_dotclock), 1);
-
- /* 100 Mhz to 5 GHz seem like reasonable values to expect */
- igt_assert_lt(max_dotclock, 5000000);
- igt_assert_lt(100000, max_dotclock);
-
- return max_dotclock;
-}
-
static const struct {
const char *name;
bool (*adjust_mode)(data_t *data, drmModeModeInfoPtr mode);
@@ -293,7 +272,7 @@ igt_main
data.res = drmModeGetResources(data.drm_fd);
igt_assert(data.res);
- data.max_dotclock = i915_max_dotclock(&data);
+ data.max_dotclock = igt_get_max_dotclock(data.drm_fd);
igt_info("Max dotclock: %d kHz\n", data.max_dotclock);
}
--
2.40.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] [i-g-t V2 5/6] tests/kms_flip: Fix Bigjoiner checks
2023-03-28 12:32 [igt-dev] [i-g-t V2 0/6] Fix Bigjoiner checks Bhanuprakash Modem
` (3 preceding siblings ...)
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 4/6] tests/kms_invalid_mode: Use helpers from IGT lib Bhanuprakash Modem
@ 2023-03-28 12:32 ` Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 6/6] tests/kms_setmode: " Bhanuprakash Modem
` (2 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Bhanuprakash Modem @ 2023-03-28 12:32 UTC (permalink / raw)
To: igt-dev, swati2.sharma, ankit.k.nautiyal, karthik.b.s
Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_flip.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index 5e82f4a2f84..7cb8749c930 100755
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -81,8 +81,6 @@
#define RUN_TEST 1
#define RUN_PAIR 2
-#define MAX_HDISPLAY_PER_CRTC 5120
-
#ifndef DRM_CAP_TIMESTAMP_MONOTONIC
#define DRM_CAP_TIMESTAMP_MONOTONIC 6
#endif
@@ -96,6 +94,7 @@ uint32_t devid;
int test_time = 3;
static bool monotonic_timestamp;
static pthread_t vblank_wait_thread;
+static int max_dotclock;
static drmModeConnector *last_connector;
@@ -1528,19 +1527,19 @@ static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
/*
* Handle BW limitations:
*
- * if mode.hdisplay > 5120, then ignore
+ * if mode resolution > 5K (or) mode clock > max_dotclock, then ignore
* - last crtc in single/multi-connector config
* - consecutive crtcs in multi-connector config
*
* in multi-connector config ignore if
- * - previous crtc mode.hdisplay > 5120 and
+ * - previous crtc (mode resolution > 5K or mode clock > max_dotclock) and
* - current & previous crtcs are consecutive
*/
for (i = 0; i < crtc_count; i++) {
- if (((o->kmode[i].hdisplay > MAX_HDISPLAY_PER_CRTC) &&
+ if ((igt_bigjoiner_possible(&o->kmode[i], max_dotclock) &&
((crtc_idxs[i] >= (total_crtcs - 1)) ||
((i < (crtc_count - 1)) && (abs(crtc_idxs[i + 1] - crtc_idxs[i]) <= 1)))) ||
- ((i > 0) && (o->kmode[i - 1].hdisplay > MAX_HDISPLAY_PER_CRTC) &&
+ ((i > 0) && igt_bigjoiner_possible(&o->kmode[i - 1], max_dotclock) &&
(abs(crtc_idxs[i] - crtc_idxs[i - 1]) <= 1))) {
igt_debug("Combo: %s is not possible with selected mode(s).\n", test_name);
@@ -1822,6 +1821,7 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++)
tests[i].flags &= ~(TEST_CHECK_TS | TEST_VBLANK_EXPIRED_SEQ);
}
+ max_dotclock = igt_get_max_dotclock(drm_fd);
}
igt_describe("Tests that nonblocking reading fails correctly");
--
2.40.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] [i-g-t V2 6/6] tests/kms_setmode: Fix Bigjoiner checks
2023-03-28 12:32 [igt-dev] [i-g-t V2 0/6] Fix Bigjoiner checks Bhanuprakash Modem
` (4 preceding siblings ...)
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 5/6] tests/kms_flip: Fix Bigjoiner checks Bhanuprakash Modem
@ 2023-03-28 12:32 ` Bhanuprakash Modem
2023-03-28 13:15 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev2) Patchwork
2023-03-28 23:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
7 siblings, 0 replies; 12+ messages in thread
From: Bhanuprakash Modem @ 2023-03-28 12:32 UTC (permalink / raw)
To: igt-dev, swati2.sharma, ankit.k.nautiyal, karthik.b.s
Bigjoiner will come in the picture when the resolution > 5K or
clock > max dot-clock. Add a support to check the selected mode
clock is greater than the max dot-clock.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_setmode.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c
index bfa108916ce..7932a3ec285 100644
--- a/tests/kms_setmode.c
+++ b/tests/kms_setmode.c
@@ -40,13 +40,12 @@
/* restricted pipe count */
#define CRTC_RESTRICT_CNT 2
-#define MAX_HDISPLAY_PER_CRTC 5120
-
static int drm_fd;
static drmModeRes *drm_resources;
static int filter_test_id;
static bool dry_run;
static bool extended = false;
+static int max_dotclock;
const drmModeModeInfo mode_640_480 = {
.name = "640x480",
@@ -664,18 +663,20 @@ static void test_one_combination(const struct test_config *tconf,
struct crtc_config *crtc = &crtcs[i];
/*
- * if mode.hdisplay > 5120, then ignore
+ * if mode resolution > 5K (or) mode clock > max_dotclock,
+ * then ignore
* - last crtc in single/multi-connector config
* - consecutive crtcs in multi-connector config
*
* in multi-connector config ignore if
- * - previous crtc mode.hdisplay > 5120 and
+ * - previous crtc (mode resolution > 5K (or)
+ * mode clock > max_dotclock) and
* - current & previous crtcs are consecutive
*/
- if (((crtc->mode.hdisplay > MAX_HDISPLAY_PER_CRTC) &&
+ if ((igt_bigjoiner_possible(&crtc->mode, max_dotclock) &&
((crtc->crtc_idx >= (tconf->resources->count_crtcs - 1)) ||
((i < (crtc_count - 1)) && (abs(crtcs[i + 1].crtc_idx - crtc->crtc_idx) <= 1)))) ||
- ((i > 0) && (crtc[i - 1].mode.hdisplay > MAX_HDISPLAY_PER_CRTC) &&
+ ((i > 0) && igt_bigjoiner_possible(&crtc[i - 1].mode, max_dotclock) &&
(abs(crtc->crtc_idx - crtcs[i - 1].crtc_idx) <= 1))) {
igt_info("Combo: %s is not possible with selected mode(s).\n", test_name);
goto out;
@@ -954,6 +955,8 @@ igt_main_args("det:", NULL, help_str, opt_handler, NULL)
drm_resources = drmModeGetResources(drm_fd);
igt_require(drm_resources);
+
+ max_dotclock = igt_get_max_dotclock(drm_fd);
}
for (i = 0; i < ARRAY_SIZE(tests); i++) {
--
2.40.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev2)
2023-03-28 12:32 [igt-dev] [i-g-t V2 0/6] Fix Bigjoiner checks Bhanuprakash Modem
` (5 preceding siblings ...)
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 6/6] tests/kms_setmode: " Bhanuprakash Modem
@ 2023-03-28 13:15 ` Patchwork
2023-03-28 23:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2023-03-28 13:15 UTC (permalink / raw)
To: Bhanuprakash Modem; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 6826 bytes --]
== Series Details ==
Series: Fix Bigjoiner checks (rev2)
URL : https://patchwork.freedesktop.org/series/115712/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12926 -> IGTPW_8700
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/index.html
Participating hosts (36 -> 36)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in IGTPW_8700 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_lmem_swapping@basic:
- bat-adln-1: NOTRUN -> [SKIP][1] ([i915#4613]) +3 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-adln-1/igt@gem_lmem_swapping@basic.html
* igt@i915_selftest@live@gt_heartbeat:
- fi-apl-guc: [PASS][2] -> [DMESG-FAIL][3] ([i915#5334])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@migrate:
- bat-adlp-9: [PASS][4] -> [DMESG-FAIL][5] ([i915#7699])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-adlp-9/igt@i915_selftest@live@migrate.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-adlp-9/igt@i915_selftest@live@migrate.html
* igt@i915_selftest@live@mman:
- bat-rpls-2: [PASS][6] -> [TIMEOUT][7] ([i915#6794])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-rpls-2/igt@i915_selftest@live@mman.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-rpls-2/igt@i915_selftest@live@mman.html
* igt@i915_selftest@live@reset:
- bat-rpls-1: [PASS][8] -> [ABORT][9] ([i915#4983])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-rpls-1/igt@i915_selftest@live@reset.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-rpls-1/igt@i915_selftest@live@reset.html
* igt@i915_selftest@live@slpc:
- bat-adln-1: NOTRUN -> [DMESG-FAIL][10] ([i915#6997])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-adln-1/igt@i915_selftest@live@slpc.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- fi-bsw-nick: NOTRUN -> [SKIP][11] ([fdo#109271]) +1 similar issue
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/fi-bsw-nick/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
- bat-dg2-11: NOTRUN -> [SKIP][12] ([i915#7828])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-dg2-11/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
- bat-adln-1: NOTRUN -> [SKIP][13] ([i915#7828])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-adln-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1:
- bat-dg2-8: [PASS][14] -> [FAIL][15] ([i915#7932])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-dg2-8/igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-dg2-8/igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1.html
* igt@prime_vgem@basic-userptr:
- bat-adln-1: NOTRUN -> [SKIP][16] ([fdo#109295] / [i915#3301])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-adln-1/igt@prime_vgem@basic-userptr.html
* igt@prime_vgem@basic-write:
- bat-adln-1: NOTRUN -> [SKIP][17] ([fdo#109295] / [i915#3291]) +2 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-adln-1/igt@prime_vgem@basic-write.html
#### Possible fixes ####
* igt@i915_pm_rpm@basic-rte:
- bat-adln-1: [ABORT][18] ([i915#7977]) -> [PASS][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-adln-1/igt@i915_pm_rpm@basic-rte.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-adln-1/igt@i915_pm_rpm@basic-rte.html
* igt@i915_selftest@live@execlists:
- fi-bsw-nick: [ABORT][20] ([i915#7911] / [i915#7913]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/fi-bsw-nick/igt@i915_selftest@live@execlists.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/fi-bsw-nick/igt@i915_selftest@live@execlists.html
* igt@i915_selftest@live@gt_lrc:
- bat-dg2-11: [INCOMPLETE][22] ([i915#7609] / [i915#7913]) -> [PASS][23]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html
* igt@i915_selftest@live@workarounds:
- bat-rpls-1: [DMESG-FAIL][24] ([i915#6763]) -> [PASS][25]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-rpls-1/igt@i915_selftest@live@workarounds.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/bat-rpls-1/igt@i915_selftest@live@workarounds.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6763]: https://gitlab.freedesktop.org/drm/intel/issues/6763
[i915#6794]: https://gitlab.freedesktop.org/drm/intel/issues/6794
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
[i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609
[i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
[i915#7977]: https://gitlab.freedesktop.org/drm/intel/issues/7977
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7221 -> IGTPW_8700
CI-20190529: 20190529
CI_DRM_12926: 3c05e51a6eff5ee0f05df5b40412e6ae7a18286b @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8700: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/index.html
IGT_7221: 4b77c6d85024d22ca521d510f8eee574128fe04f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/index.html
[-- Attachment #2: Type: text/html, Size: 7991 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for Fix Bigjoiner checks (rev2)
2023-03-28 12:32 [igt-dev] [i-g-t V2 0/6] Fix Bigjoiner checks Bhanuprakash Modem
` (6 preceding siblings ...)
2023-03-28 13:15 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev2) Patchwork
@ 2023-03-28 23:14 ` Patchwork
7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2023-03-28 23:14 UTC (permalink / raw)
To: Bhanuprakash Modem; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 13437 bytes --]
== Series Details ==
Series: Fix Bigjoiner checks (rev2)
URL : https://patchwork.freedesktop.org/series/115712/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12926_full -> IGTPW_8700_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/index.html
Participating hosts (7 -> 8)
------------------------------
Additional (1): shard-tglu0
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_8700_full:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@kms_big_joiner@2x-modeset:
- {shard-dg1}: NOTRUN -> [SKIP][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-dg1-17/igt@kms_big_joiner@2x-modeset.html
- {shard-tglu}: [SKIP][2] ([i915#2705]) -> [SKIP][3] +1 similar issue
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-tglu-7/igt@kms_big_joiner@2x-modeset.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-tglu-10/igt@kms_big_joiner@2x-modeset.html
* igt@kms_big_joiner@invalid-modeset:
- {shard-dg1}: [SKIP][4] ([i915#2705]) -> [SKIP][5]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-dg1-17/igt@kms_big_joiner@invalid-modeset.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-dg1-16/igt@kms_big_joiner@invalid-modeset.html
- {shard-tglu}: NOTRUN -> [SKIP][6]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-tglu-7/igt@kms_big_joiner@invalid-modeset.html
Known issues
------------
Here are the changes found in IGTPW_8700_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [PASS][7] -> [FAIL][8] ([i915#2842])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-glk7/igt@gem_exec_fair@basic-pace-share@rcs0.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_mmap_gtt@fault-concurrent-x:
- shard-snb: [PASS][9] -> [ABORT][10] ([i915#5161])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-snb5/igt@gem_mmap_gtt@fault-concurrent-x.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-snb7/igt@gem_mmap_gtt@fault-concurrent-x.html
* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-glk: [PASS][11] -> [FAIL][12] ([i915#644])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-glk6/igt@gem_ppgtt@flink-and-close-vma-leak.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-glk8/igt@gem_ppgtt@flink-and-close-vma-leak.html
* igt@kms_ccs@pipe-a-random-ccs-data-4_tiled_dg2_rc_ccs:
- shard-glk: NOTRUN -> [SKIP][13] ([fdo#109271])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-glk9/igt@kms_ccs@pipe-a-random-ccs-data-4_tiled_dg2_rc_ccs.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-apl: [PASS][14] -> [FAIL][15] ([i915#2346])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-apl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-apl6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
#### Possible fixes ####
* {igt@gem_barrier_race@remote-request@rcs0}:
- shard-glk: [ABORT][16] ([i915#8211]) -> [PASS][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-glk1/igt@gem_barrier_race@remote-request@rcs0.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-glk9/igt@gem_barrier_race@remote-request@rcs0.html
* igt@gem_eio@hibernate:
- {shard-dg1}: [ABORT][18] ([i915#7975]) -> [PASS][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-dg1-14/igt@gem_eio@hibernate.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-dg1-17/igt@gem_eio@hibernate.html
* igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-apl: [FAIL][20] ([i915#2842]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-apl1/igt@gem_exec_fair@basic-none-solo@rcs0.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-apl3/igt@gem_exec_fair@basic-none-solo@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- {shard-tglu}: [FAIL][22] ([i915#2842]) -> [PASS][23]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-tglu-7/igt@gem_exec_fair@basic-pace-share@rcs0.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-tglu-7/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@i915_pm_dc@dc9-dpms:
- shard-apl: [SKIP][24] ([fdo#109271]) -> [PASS][25]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-apl7/igt@i915_pm_dc@dc9-dpms.html
* igt@i915_pm_rc6_residency@rc6-idle@rcs0:
- {shard-tglu}: [WARN][26] ([i915#2681]) -> [PASS][27]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-tglu-5/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-tglu-7/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
* igt@kms_cursor_legacy@forked-move@pipe-b:
- {shard-dg1}: [INCOMPLETE][28] ([i915#8011]) -> [PASS][29]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-dg1-14/igt@kms_cursor_legacy@forked-move@pipe-b.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/shard-dg1-16/igt@kms_cursor_legacy@forked-move@pipe-b.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
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
[i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
[i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
[i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
[i915#5161]: https://gitlab.freedesktop.org/drm/intel/issues/5161
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#5431]: https://gitlab.freedesktop.org/drm/intel/issues/5431
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
[i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
[i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
[i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
[i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7221 -> IGTPW_8700
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12926: 3c05e51a6eff5ee0f05df5b40412e6ae7a18286b @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8700: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/index.html
IGT_7221: 4b77c6d85024d22ca521d510f8eee574128fe04f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8700/index.html
[-- Attachment #2: Type: text/html, Size: 8749 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [igt-dev] [i-g-t V2 3/6] tests/i915/kms_dsc: Update bigjoiner pipe constraint
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 3/6] tests/i915/kms_dsc: Update bigjoiner pipe constraint Bhanuprakash Modem
@ 2023-03-29 15:48 ` Sharma, Swati2
2023-03-30 5:18 ` Modem, Bhanuprakash
0 siblings, 1 reply; 12+ messages in thread
From: Sharma, Swati2 @ 2023-03-29 15:48 UTC (permalink / raw)
To: Bhanuprakash Modem, igt-dev
Hi Bhanu,
Shouldn't we use i915_pipe_output_combo_valid()?
On 28-Mar-23 6:02 PM, Bhanuprakash Modem wrote:
> Instead of writing own logic at test level, use existing IGT
> helper to check the bigjoiner support.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/i915/kms_dsc.c | 17 ++++++++---------
> tests/i915/kms_dsc_helper.h | 2 --
> 2 files changed, 8 insertions(+), 11 deletions(-)
>
> diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
> index b3c5e60c773..9c6a7780acd 100644
> --- a/tests/i915/kms_dsc.c
> +++ b/tests/i915/kms_dsc.c
> @@ -47,7 +47,6 @@ typedef struct {
> unsigned int plane_format;
> igt_output_t *output;
> int input_bpc;
> - int n_pipes;
> int disp_ver;
> enum pipe pipe;
> } data_t;
> @@ -76,15 +75,19 @@ static bool
> check_big_joiner_pipe_constraint(data_t *data)
> {
> igt_output_t *output = data->output;
> drmModeModeInfo *mode = get_highres_mode(output);
> + bool ret = true;
>
> - if (mode->hdisplay >= HDISPLAY_5K &&
> - data->pipe == (data->n_pipes - 1)) {
> + igt_output_set_pipe(output, data->pipe);
> + igt_output_override_mode(output, mode);
> +
> + if (!igt_check_bigjoiner_support(&data->display)) {
> igt_debug("Pipe-%s not supported due to bigjoiner limitation\n",
> kmstest_pipe_name(data->pipe));
> - return false;
> + ret = false;
> }
> + igt_output_set_pipe(output, PIPE_NONE);
>
> - return true;
> + return ret;
> }
>
> static void test_cleanup(data_t *data)
> @@ -206,7 +209,6 @@ static void test_dsc(data_t *data, enum
> dsc_test_type test_type, int bpc,
> igt_main
> {
> data_t data = {};
> - int i;
>
> igt_fixture {
> data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> @@ -217,9 +219,6 @@ igt_main
> igt_display_require(&data.display, data.drm_fd);
> igt_display_require_output(&data.display);
> igt_require(data.disp_ver >= 11);
> - data.n_pipes = 0;
> - for_each_pipe(&data.display, i)
> - data.n_pipes++;
> }
>
> igt_describe("Tests basic display stream compression functionality
> if supported "
> diff --git a/tests/i915/kms_dsc_helper.h b/tests/i915/kms_dsc_helper.h
> index fe479dac472..b3828dcd44a 100644
> --- a/tests/i915/kms_dsc_helper.h
> +++ b/tests/i915/kms_dsc_helper.h
> @@ -21,8 +21,6 @@
> #include <fcntl.h>
> #include <termios.h>
>
> -#define HDISPLAY_5K 5120
> -
> void force_dsc_enable(int drmfd, igt_output_t *output);
> void force_dsc_enable_bpc(int drmfd, igt_output_t *output, int
> input_bpc);
> void save_force_dsc_en(int drmfd, igt_output_t *output);
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [igt-dev] [i-g-t V2 3/6] tests/i915/kms_dsc: Update bigjoiner pipe constraint
2023-03-29 15:48 ` Sharma, Swati2
@ 2023-03-30 5:18 ` Modem, Bhanuprakash
0 siblings, 0 replies; 12+ messages in thread
From: Modem, Bhanuprakash @ 2023-03-30 5:18 UTC (permalink / raw)
To: Sharma, Swati2, igt-dev
Hi Swati,
On Wed-29-03-2023 09:18 pm, Sharma, Swati2 wrote:
> Hi Bhanu,
>
> Shouldn't we use i915_pipe_output_combo_valid()?
In this test check_big_joiner_pipe_constraint() is specific to check
bigjoiner support, so we must use igt_check_bigjoiner_support(). Where
i915_pipe_output_combo_valid() is designed to check for all pipe/output
constraints.
- Bhanu
>
> On 28-Mar-23 6:02 PM, Bhanuprakash Modem wrote:
>> Instead of writing own logic at test level, use existing IGT
>> helper to check the bigjoiner support.
>>
>> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
>> ---
>> tests/i915/kms_dsc.c | 17 ++++++++---------
>> tests/i915/kms_dsc_helper.h | 2 --
>> 2 files changed, 8 insertions(+), 11 deletions(-)
>>
>> diff --git a/tests/i915/kms_dsc.c b/tests/i915/kms_dsc.c
>> index b3c5e60c773..9c6a7780acd 100644
>> --- a/tests/i915/kms_dsc.c
>> +++ b/tests/i915/kms_dsc.c
>> @@ -47,7 +47,6 @@ typedef struct {
>> unsigned int plane_format;
>> igt_output_t *output;
>> int input_bpc;
>> - int n_pipes;
>> int disp_ver;
>> enum pipe pipe;
>> } data_t;
>> @@ -76,15 +75,19 @@ static bool
>> check_big_joiner_pipe_constraint(data_t *data)
>> {
>> igt_output_t *output = data->output;
>> drmModeModeInfo *mode = get_highres_mode(output);
>> + bool ret = true;
>>
>> - if (mode->hdisplay >= HDISPLAY_5K &&
>> - data->pipe == (data->n_pipes - 1)) {
>> + igt_output_set_pipe(output, data->pipe);
>> + igt_output_override_mode(output, mode);
>> +
>> + if (!igt_check_bigjoiner_support(&data->display)) {
>> igt_debug("Pipe-%s not supported due to bigjoiner limitation\n",
>> kmstest_pipe_name(data->pipe));
>> - return false;
>> + ret = false;
>> }
>> + igt_output_set_pipe(output, PIPE_NONE);
>>
>> - return true;
>> + return ret;
>> }
>>
>> static void test_cleanup(data_t *data)
>> @@ -206,7 +209,6 @@ static void test_dsc(data_t *data, enum
>> dsc_test_type test_type, int bpc,
>> igt_main
>> {
>> data_t data = {};
>> - int i;
>>
>> igt_fixture {
>> data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
>> @@ -217,9 +219,6 @@ igt_main
>> igt_display_require(&data.display, data.drm_fd);
>> igt_display_require_output(&data.display);
>> igt_require(data.disp_ver >= 11);
>> - data.n_pipes = 0;
>> - for_each_pipe(&data.display, i)
>> - data.n_pipes++;
>> }
>>
>> igt_describe("Tests basic display stream compression functionality
>> if supported "
>> diff --git a/tests/i915/kms_dsc_helper.h b/tests/i915/kms_dsc_helper.h
>> index fe479dac472..b3828dcd44a 100644
>> --- a/tests/i915/kms_dsc_helper.h
>> +++ b/tests/i915/kms_dsc_helper.h
>> @@ -21,8 +21,6 @@
>> #include <fcntl.h>
>> #include <termios.h>
>>
>> -#define HDISPLAY_5K 5120
>> -
>> void force_dsc_enable(int drmfd, igt_output_t *output);
>> void force_dsc_enable_bpc(int drmfd, igt_output_t *output, int
>> input_bpc);
>> void save_force_dsc_en(int drmfd, igt_output_t *output);
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [igt-dev] [i-g-t V2 2/6] tests/i915/kms_big_joiner: Fix Bigjoiner checks
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 2/6] tests/i915/kms_big_joiner: " Bhanuprakash Modem
@ 2023-04-05 7:38 ` Karthik B S
0 siblings, 0 replies; 12+ messages in thread
From: Karthik B S @ 2023-04-05 7:38 UTC (permalink / raw)
To: Bhanuprakash Modem, igt-dev, swati2.sharma, ankit.k.nautiyal
On 3/28/2023 6:02 PM, Bhanuprakash Modem wrote:
> Bigjoiner will come in the picture when the resolution > 5K or
> clock > max dot-clock. Add a support to check the selected mode
> clock is greater than the max dot-clock.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/i915/kms_big_joiner.c | 67 +++++++++++++++++++++----------------
> 1 file changed, 38 insertions(+), 29 deletions(-)
>
> diff --git a/tests/i915/kms_big_joiner.c b/tests/i915/kms_big_joiner.c
> index 8be60ea1176..adc37be719d 100644
> --- a/tests/i915/kms_big_joiner.c
> +++ b/tests/i915/kms_big_joiner.c
> @@ -26,10 +26,13 @@
>
> #include "igt.h"
>
> -#define MAX_HDISPLAY_PER_PIPE 5120
> -
> IGT_TEST_DESCRIPTION("Test big joiner");
>
> +typedef struct {
> + uint32_t output;
Hi,
Could you please rename this as output_id, just to make it clear. Not a
must have change, just a suggestion.
> + drmModeModeInfo mode;
> +} big_joiner;
> +
> typedef struct {
> int drm_fd;
> igt_display_t display;
> @@ -37,7 +40,7 @@ typedef struct {
> int n_pipes;
> enum pipe pipe1;
> enum pipe pipe2;
> - uint32_t big_joiner_output[2];
> + big_joiner big_joiner_output[2];
> } data_t;
>
> static void test_invalid_modeset(data_t *data)
> @@ -91,7 +94,7 @@ static void test_basic_modeset(data_t *data)
> igt_display_reset(display);
>
> for_each_connected_output(display, output) {
> - if (data->big_joiner_output[0] == output->id) {
> + if (data->big_joiner_output[0].output == output->id) {
> big_joiner_output = output;
> break;
> }
> @@ -99,9 +102,7 @@ static void test_basic_modeset(data_t *data)
>
> igt_output_set_pipe(big_joiner_output, data->pipe1);
>
> - igt_sort_connector_modes(big_joiner_output->config.connector,
> - sort_drm_modes_by_res_dsc);
> - mode = &big_joiner_output->config.connector->modes[0];
> + mode = &data->big_joiner_output[0].mode;
> igt_output_override_mode(big_joiner_output, mode);
>
> pipe = &display->pipes[data->pipe1];
> @@ -130,7 +131,7 @@ static void test_dual_display(data_t *data)
> igt_display_reset(display);
>
> for_each_connected_output(display, output) {
> - if (data->big_joiner_output[count] == output->id) {
> + if (data->big_joiner_output[count].output == output->id) {
> big_joiner_output[count] = output;
> count++;
> }
> @@ -143,9 +144,7 @@ static void test_dual_display(data_t *data)
> igt_output_set_pipe(big_joiner_output[1], data->pipe2);
>
> /* Set up first big joiner output on Pipe A*/
> - igt_sort_connector_modes(big_joiner_output[0]->config.connector,
> - sort_drm_modes_by_res_dsc);
> - mode = &big_joiner_output[0]->config.connector->modes[0];
> + mode = &data->big_joiner_output[0].mode;
> igt_output_override_mode(big_joiner_output[0], mode);
>
> pipe = &display->pipes[data->pipe1];
> @@ -156,9 +155,7 @@ static void test_dual_display(data_t *data)
> igt_plane_set_size(plane1, mode->hdisplay, mode->vdisplay);
>
> /* Set up second big joiner output on Pipe C*/
> - igt_sort_connector_modes(big_joiner_output[1]->config.connector,
> - sort_drm_modes_by_res_dsc);
> - mode = &big_joiner_output[1]->config.connector->modes[0];
> + mode = &data->big_joiner_output[1].mode;
> igt_output_override_mode(big_joiner_output[1], mode);
>
> pipe = &display->pipes[data->pipe2];
> @@ -186,6 +183,8 @@ igt_main
> int valid_output = 0, i, count = 0, j = 0;
> uint16_t width = 0, height = 0;
> enum pipe pipe_seq[IGT_MAX_PIPES];
> + int max_dotclock;
> + bool retry = false;
>
> igt_fixture {
> data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> @@ -194,13 +193,22 @@ igt_main
> igt_display_require(&data.display, data.drm_fd);
> igt_require(data.display.is_atomic);
>
> + max_dotclock = igt_get_max_dotclock(data.drm_fd);
> +retry:
> for_each_connected_output(&data.display, output) {
> + /*
> + * Bigjoiner will come in the picture when
> + * the resolution > 5K or clock > max-dot-clock.
> + */
> igt_sort_connector_modes(output->config.connector,
> - sort_drm_modes_by_res_dsc);
> + retry ? sort_drm_modes_by_clk_dsc :
> + sort_drm_modes_by_res_dsc);
>
> mode = &output->config.connector->modes[0];
> - if (mode->hdisplay > MAX_HDISPLAY_PER_PIPE) {
> - data.big_joiner_output[count++] = output->id;
> + if (igt_bigjoiner_possible(mode, max_dotclock)) {
> + data.big_joiner_output[count].output = output->id;
> + memcpy(&data.big_joiner_output[count].mode, mode, sizeof(drmModeModeInfo));
> + count++;
>
> width = max(width, mode->hdisplay);
> height = max(height, mode->vdisplay);
> @@ -208,6 +216,11 @@ igt_main
> valid_output++;
> }
>
> + if (!count && !retry) {
> + retry = true;
> + goto retry;
> + }
> +
I think this retry mechanism will fail in a case where two big joiner
displays are connected.
Say we've the first display being 8k@30 and the second display being
4k@120. Since count would've already incremented with the first display,
we wouldn't do a retry and hence not detect the second display as a big
joiner capable display. Could you please check this.
Instead of having a retry mechanism, I would suggest to have a check
inside the for loop to try out both highest clk and res modes.
Thanks,
Karthik.B.S
> data.n_pipes = 0;
> for_each_pipe(&data.display, i) {
> data.n_pipes++;
> @@ -215,7 +228,7 @@ igt_main
> j++;
> }
>
> - igt_require_f(count > 0, "No output with 5k+ mode found\n");
> + igt_require_f(count > 0, "No output with 5k+ mode (or) clock > max-dot-clock found\n");
>
> igt_create_pattern_fb(data.drm_fd, width, height, DRM_FORMAT_XRGB8888,
> DRM_FORMAT_MOD_LINEAR, &data.fb);
> @@ -237,14 +250,12 @@ igt_main
>
> igt_display_reset(&data.display);
> for_each_connected_output(&data.display, output) {
> - if (data.big_joiner_output[0] != output->id)
> + if (data.big_joiner_output[0].output != output->id)
> continue;
>
> - igt_sort_connector_modes(output->config.connector,
> - sort_drm_modes_by_res_dsc);
> -
> + mode = &data.big_joiner_output[0].mode;
> igt_output_set_pipe(output, data.pipe1);
> - igt_output_override_mode(output, &output->config.connector->modes[0]);
> + igt_output_override_mode(output, mode);
>
> igt_dynamic_f("pipe-%s-%s",
> kmstest_pipe_name(data.pipe1),
> @@ -261,17 +272,15 @@ igt_main
>
> igt_display_reset(&data.display);
> for_each_connected_output(&data.display, output) {
> - igt_sort_connector_modes(output->config.connector,
> - sort_drm_modes_by_res_dsc);
> -
> - if (data.big_joiner_output[0] == output->id) {
> + if (data.big_joiner_output[0].output == output->id) {
> first_output = output;
> + mode = &data.big_joiner_output[0].mode;
> +
> igt_output_set_pipe(output, data.pipe1);
> - igt_output_override_mode(output, &output->config.connector->modes[0]);
> + igt_output_override_mode(output, mode);
> } else if (second_output == NULL) {
> second_output = output;
> igt_output_set_pipe(output, data.pipe2);
> - igt_output_override_mode(output, &output->config.connector->modes[0]);
>
> break;
> }
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-04-05 7:38 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-28 12:32 [igt-dev] [i-g-t V2 0/6] Fix Bigjoiner checks Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 1/6] lib/igt_kms: " Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 2/6] tests/i915/kms_big_joiner: " Bhanuprakash Modem
2023-04-05 7:38 ` Karthik B S
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 3/6] tests/i915/kms_dsc: Update bigjoiner pipe constraint Bhanuprakash Modem
2023-03-29 15:48 ` Sharma, Swati2
2023-03-30 5:18 ` Modem, Bhanuprakash
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 4/6] tests/kms_invalid_mode: Use helpers from IGT lib Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 5/6] tests/kms_flip: Fix Bigjoiner checks Bhanuprakash Modem
2023-03-28 12:32 ` [igt-dev] [i-g-t V2 6/6] tests/kms_setmode: " Bhanuprakash Modem
2023-03-28 13:15 ` [igt-dev] ✓ Fi.CI.BAT: success for Fix Bigjoiner checks (rev2) Patchwork
2023-03-28 23:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox