* [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management
@ 2026-03-17 16:01 Jason-JH Lin
2026-03-17 23:47 ` ✓ Xe.CI.BAT: success for tests/kms_content_protection: Optimize framebuffer management (rev2) Patchwork
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Jason-JH Lin @ 2026-03-17 16:01 UTC (permalink / raw)
To: igt-dev, Karthik B S, Swati Sharma, Kamil Konieczny,
Juha-Pekka Heikkila, Bhanuprakash Modem, Fei Shao
Cc: Jani, Jason-JH Lin, Paul-PL Chen, Nancy Lin, Singo Chang,
Gil Dekel, Yacoub, Project_Global_Chrome_Upstream_Group
Refactor framebuffer management to improve reusability:
- Create framebuffers once per CRTC at test initialization via
create_fbs() and reuse them across all subtests
- Centralize cleanup in remove_fbs() called at test fixture end
- Use per-CRTC framebuffer array (data.fbs[IGT_MAX_PIPES]) indexed
by crtc->crtc_index instead of single global framebuffers
Each framebuffer is created with the actual resolution of the first
output that can connect to that CRTC, avoiding buffer size mismatch
issues (e.g., 3504x2190 panel incorrectly using 3840x2160 buffer).
For MST tests, multiple outputs share bandwidth and may require mode
override to fit within bandwidth constraints. When mode override
changes the resolution, properly detach planes before removing the
existing framebuffers, then recreate them with the new dimensions.
Signed-off-by: Jason-JH Lin <jason-jh.lin@mediatek.com>
Suggested-by: Karthik B.S <karthik.b.s@intel.com>
---
tests/kms_content_protection.c | 216 +++++++++++++++++++++++++--------
1 file changed, 168 insertions(+), 48 deletions(-)
diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index f35c9fa73a57..d470a8de5700 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -107,10 +107,15 @@
IGT_TEST_DESCRIPTION("Test content protection (HDCP)");
+struct hdcp_test_fbs {
+ struct igt_fb red;
+ struct igt_fb green;
+};
+
struct data {
int drm_fd;
igt_display_t display;
- struct igt_fb red, green;
+ struct hdcp_test_fbs fbs[IGT_MAX_PIPES];
unsigned int cp_tests;
struct udev_monitor *uevent_monitor;
bool is_force_hdcp14;
@@ -257,7 +262,15 @@ commit_display_and_wait_for_flip(enum igt_commit_style commit_style)
}
}
-static void modeset_with_fb(igt_output_t *output,
+static igt_crtc_t *output_get_driving_crtc_assert(igt_output_t *output)
+{
+ igt_crtc_t *crtc = igt_output_get_driving_crtc(output);
+
+ igt_assert(crtc);
+ return crtc;
+}
+
+static void modeset_with_fb(igt_output_t *output, igt_crtc_t *crtc,
enum igt_commit_style commit_style)
{
igt_display_t *display = &data.display;
@@ -267,18 +280,19 @@ static void modeset_with_fb(igt_output_t *output,
mode = igt_output_get_mode(output);
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
- igt_plane_set_fb(primary, &data.red);
- igt_fb_set_size(&data.red, primary, mode->hdisplay, mode->vdisplay);
+ igt_plane_set_fb(primary, &data.fbs[crtc->crtc_index].red);
+ igt_fb_set_size(&data.fbs[crtc->crtc_index].red, primary, mode->hdisplay, mode->vdisplay);
igt_display_commit2(display, commit_style);
- igt_plane_set_fb(primary, &data.green);
+ igt_plane_set_fb(primary, &data.fbs[crtc->crtc_index].green);
/* Wait for Flip completion before starting the HDCP authentication */
commit_display_and_wait_for_flip(commit_style);
}
-static bool test_cp_enable(igt_output_t *output, enum igt_commit_style commit_style,
+static bool test_cp_enable(igt_output_t *output, igt_crtc_t *crtc,
+ enum igt_commit_style commit_style,
int content_type, bool type_change)
{
igt_display_t *display = &data.display;
@@ -301,7 +315,7 @@ static bool test_cp_enable(igt_output_t *output, enum igt_commit_style commit_st
ret = wait_for_prop_value(output, CP_ENABLED,
KERNEL_AUTH_TIME_ALLOWED_MSEC);
if (ret) {
- igt_plane_set_fb(primary, &data.green);
+ igt_plane_set_fb(primary, &data.fbs[crtc->crtc_index].green);
igt_display_commit2(display, commit_style);
}
@@ -314,13 +328,15 @@ static void test_mst_cp_disable(igt_output_t *hdcp_mst_output[],
{
igt_display_t *display = &data.display;
igt_plane_t *primary;
+ igt_crtc_t *crtc;
bool ret;
int count;
u64 val;
for (count = 0; count < valid_outputs; count++) {
+ crtc = output_get_driving_crtc_assert(hdcp_mst_output[count]);
primary = igt_output_get_plane_type(hdcp_mst_output[count], DRM_PLANE_TYPE_PRIMARY);
- igt_plane_set_fb(primary, &data.red);
+ igt_plane_set_fb(primary, &data.fbs[crtc->crtc_index].red);
igt_output_set_prop_value(hdcp_mst_output[count], IGT_CONNECTOR_CONTENT_PROTECTION,
CP_UNDESIRED);
}
@@ -338,7 +354,8 @@ static void test_mst_cp_disable(igt_output_t *hdcp_mst_output[],
igt_assert_f(ret, "Content Protection not cleared on all MST outputs\n");
}
-static void test_cp_disable(igt_output_t *output, enum igt_commit_style commit_style)
+static void test_cp_disable(igt_output_t *output, igt_crtc_t *crtc,
+ enum igt_commit_style commit_style)
{
igt_display_t *display = &data.display;
igt_plane_t *primary;
@@ -352,7 +369,7 @@ static void test_cp_disable(igt_output_t *output, enum igt_commit_style commit_s
*/
igt_output_set_prop_value(output, IGT_CONNECTOR_CONTENT_PROTECTION,
CP_UNDESIRED);
- igt_plane_set_fb(primary, &data.red);
+ igt_plane_set_fb(primary, &data.fbs[crtc->crtc_index].red);
igt_display_commit2(display, commit_style);
/* Wait for HDCP to be disabled, before crtc off */
@@ -361,7 +378,7 @@ static void test_cp_disable(igt_output_t *output, enum igt_commit_style commit_s
igt_assert_f(ret, "Content Protection not cleared\n");
}
-static void test_cp_enable_with_retry(igt_output_t *output,
+static void test_cp_enable_with_retry(igt_output_t *output, igt_crtc_t *crtc,
enum igt_commit_style commit_style,
int retry, int content_type,
bool expect_failure,
@@ -372,16 +389,16 @@ static void test_cp_enable_with_retry(igt_output_t *output,
do {
if (!type_change || retry_orig != retry)
- test_cp_disable(output, commit_style);
+ test_cp_disable(output, crtc, commit_style);
- ret = test_cp_enable(output, commit_style, content_type, type_change);
+ ret = test_cp_enable(output, crtc, commit_style, content_type, type_change);
if (!ret && --retry)
igt_debug("Retry (%d/2) ...\n", 3 - retry);
} while (retry && !ret);
if (!ret)
- test_cp_disable(output, commit_style);
+ test_cp_disable(output, crtc, commit_style);
if (expect_failure)
igt_assert_f(!ret,
@@ -451,16 +468,16 @@ static void test_content_protection_on_output(igt_output_t *output,
igt_display_t *display = &data.display;
bool ret;
- test_cp_enable_with_retry(output, commit_style, 3, content_type, false,
+ test_cp_enable_with_retry(output, crtc, commit_style, 3, content_type, false,
false);
if (data.cp_tests & CP_TYPE_CHANGE) {
/* Type 1 -> Type 0 */
- test_cp_enable_with_retry(output, commit_style, 3,
+ test_cp_enable_with_retry(output, crtc, commit_style, 3,
HDCP_CONTENT_TYPE_0, false,
true);
/* Type 0 -> Type 1 */
- test_cp_enable_with_retry(output, commit_style, 3,
+ test_cp_enable_with_retry(output, crtc, commit_style, 3,
content_type, false,
true);
}
@@ -470,14 +487,14 @@ static void test_content_protection_on_output(igt_output_t *output,
"mei_hdcp unload failed");
/* Expected to fail */
- test_cp_enable_with_retry(output, commit_style, 3,
+ test_cp_enable_with_retry(output, crtc, commit_style, 3,
content_type, true, false);
igt_assert_f(!igt_kmod_load("mei_hdcp", NULL),
"mei_hdcp load failed");
/* Expected to pass */
- test_cp_enable_with_retry(output, commit_style, 3,
+ test_cp_enable_with_retry(output, crtc, commit_style, 3,
content_type, false, false);
}
@@ -496,7 +513,7 @@ static void test_content_protection_on_output(igt_output_t *output,
ret = wait_for_prop_value(output, CP_ENABLED,
KERNEL_AUTH_TIME_ALLOWED_MSEC);
if (!ret)
- test_cp_enable_with_retry(output, commit_style, 2,
+ test_cp_enable_with_retry(output, crtc, commit_style, 2,
content_type, false,
false);
}
@@ -507,7 +524,7 @@ static void test_content_protection_on_output(igt_output_t *output,
ret = wait_for_prop_value(output, CP_ENABLED,
KERNEL_AUTH_TIME_ALLOWED_MSEC);
if (!ret)
- test_cp_enable_with_retry(output, commit_style, 2,
+ test_cp_enable_with_retry(output, crtc, commit_style, 2,
content_type, false,
false);
}
@@ -577,21 +594,24 @@ static bool sink_hdcp2_capable(igt_output_t *output)
return strstr(buf, "HDCP2.2");
}
-static void prepare_modeset_on_mst_output(igt_output_t *output, bool is_enabled)
+static void prepare_modeset_on_mst_output(igt_output_t *output, igt_crtc_t *crtc, bool is_enabled)
{
drmModeModeInfo *mode;
igt_plane_t *primary;
int width, height;
+ struct igt_fb *fb;
mode = igt_output_get_mode(output);
width = mode->hdisplay;
height = mode->vdisplay;
+ fb = is_enabled ? &data.fbs[crtc->crtc_index].green : &data.fbs[crtc->crtc_index].red;
+
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
igt_plane_set_fb(primary, NULL);
- igt_plane_set_fb(primary, is_enabled ? &data.green : &data.red);
- igt_fb_set_size(is_enabled ? &data.green : &data.red, primary, width, height);
+ igt_plane_set_fb(primary, fb);
+ igt_fb_set_size(fb, primary, width, height);
igt_plane_set_size(primary, width, height);
}
@@ -663,11 +683,11 @@ static void reset_i915_force_hdcp14(igt_output_t *output)
}
static void
-test_fini(igt_output_t *output, enum igt_commit_style commit_style)
+test_fini(igt_output_t *output, igt_crtc_t *crtc, enum igt_commit_style commit_style)
{
igt_plane_t *primary;
- test_cp_disable(output, commit_style);
+ test_cp_disable(output, crtc, commit_style);
primary = igt_output_get_plane_type(output,
DRM_PLANE_TYPE_PRIMARY);
igt_plane_set_fb(primary, NULL);
@@ -739,7 +759,7 @@ test_content_protection(enum igt_commit_style commit_style, int content_type)
if (!intel_pipe_output_combo_valid(display))
continue;
- modeset_with_fb(output, commit_style);
+ modeset_with_fb(output, crtc, commit_style);
if (data.is_force_hdcp14)
set_i915_force_hdcp14(output);
@@ -753,7 +773,8 @@ test_content_protection(enum igt_commit_style commit_style, int content_type)
if (data.is_force_hdcp14)
reset_i915_force_hdcp14(output);
- test_fini(output, commit_style);
+ test_fini(output, crtc, commit_style);
+
/*
* Testing a output with a pipe is enough for HDCP
* testing. No ROI in testing the connector with other
@@ -846,8 +867,11 @@ test_mst_cp_enable_with_retry(igt_output_t *hdcp_mst_output[], int valid_outputs
if (!ret || retries)
igt_debug("Retry %d/3\n", 3 - retries);
- for (i = 0; i < valid_outputs; i++)
- prepare_modeset_on_mst_output(hdcp_mst_output[i], ret);
+ for (i = 0; i < valid_outputs; i++) {
+ igt_crtc_t *crtc = output_get_driving_crtc_assert(hdcp_mst_output[i]);
+
+ prepare_modeset_on_mst_output(hdcp_mst_output[i], crtc, ret);
+ }
igt_display_commit2(display, COMMIT_ATOMIC);
} while (retries && !ret);
@@ -869,6 +893,7 @@ test_content_protection_mst(int content_type)
igt_crtc_t *crtc;
bool pipe_found;
igt_output_t *hdcp_mst_output[IGT_MAX_PIPES];
+ drmModeModeInfo *mode;
for_each_crtc(display, crtc)
max_pipe++;
@@ -889,7 +914,34 @@ test_content_protection_mst(int content_type)
igt_assert_f(pipe_found, "No valid pipe found for %s\n", output->name);
igt_output_set_crtc(output, crtc);
- prepare_modeset_on_mst_output(output, false);
+
+ mode = igt_output_get_mode(output);
+
+ /*
+ * Check if framebuffers already exist for this crtc from create_fbs().
+ * Since non-MST tests run first and share the same data.fbs[] array,
+ * the existing FB may have a different resolution than this MST output
+ * requires. If so, properly detach planes, remove old FBs, and recreate
+ * with the correct dimensions for this MST output.
+ */
+ if (data.fbs[crtc->crtc_index].red.fb_id) {
+ igt_plane_t *primary = igt_output_get_plane_type(output,
+ DRM_PLANE_TYPE_PRIMARY);
+
+ igt_plane_set_fb(primary, NULL);
+ igt_display_commit2(display, COMMIT_ATOMIC);
+ igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].red);
+ igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].green);
+ }
+
+ igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR,
+ 1.f, 0.f, 0.f, &data.fbs[crtc->crtc_index].red);
+ igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR,
+ 0.f, 1.f, 0.f, &data.fbs[crtc->crtc_index].green);
+
+ prepare_modeset_on_mst_output(output, crtc, false);
dp_mst_outputs++;
if (output_hdcp_capable(output, content_type))
hdcp_mst_output[valid_outputs++] = output;
@@ -905,9 +957,31 @@ test_content_protection_mst(int content_type)
bool found = igt_override_all_active_output_modes_to_fit_bw(display);
igt_require_f(found, "No valid mode combo found for MST modeset\n");
- for (count = 0; count < valid_outputs; count++)
- prepare_modeset_on_mst_output(hdcp_mst_output[count], false);
+ /* Detach planes before removing framebuffers */
+ for (count = 0; count < valid_outputs; count++) {
+ crtc = output_get_driving_crtc_assert(hdcp_mst_output[count]);
+ prepare_modeset_on_mst_output(hdcp_mst_output[count], crtc, false);
+ }
+ igt_display_commit2(display, COMMIT_ATOMIC);
+
+ /* Need to re-prepare after mode override */
+ for (count = 0; count < valid_outputs; count++) {
+ crtc = output_get_driving_crtc_assert(hdcp_mst_output[count]);
+
+ igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].red);
+ igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].green);
+
+ mode = igt_output_get_mode(hdcp_mst_output[count]);
+
+ igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR,
+ 1.f, 0.f, 0.f, &data.fbs[crtc->crtc_index].red);
+ igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR,
+ 0.f, 1.f, 0.f, &data.fbs[crtc->crtc_index].green);
+ prepare_modeset_on_mst_output(hdcp_mst_output[count], crtc, false);
+ }
ret = igt_display_try_commit2(display, COMMIT_ATOMIC);
igt_require_f(ret == 0, "Commit failure during MST modeset\n");
}
@@ -933,8 +1007,9 @@ test_content_protection_mst(int content_type)
/*
* Verify if CP is still enabled on other outputs by disabling CP on the first output.
*/
+ crtc = output_get_driving_crtc_assert(hdcp_mst_output[0]);
igt_debug("CP Prop being UNDESIRED on %s\n", hdcp_mst_output[0]->name);
- test_cp_disable(hdcp_mst_output[0], COMMIT_ATOMIC);
+ test_cp_disable(hdcp_mst_output[0], crtc, COMMIT_ATOMIC);
/* CP is expected to be still enabled on other outputs*/
for (i = 1; i < valid_outputs; i++) {
@@ -945,13 +1020,26 @@ test_content_protection_mst(int content_type)
if (data.cp_tests & CP_LIC)
test_cp_lic_on_mst(hdcp_mst_output, valid_outputs, 1);
-}
+ /* Detach planes before removing framebuffers */
+ for (count = 0; count < valid_outputs; count++) {
+ crtc = output_get_driving_crtc_assert(hdcp_mst_output[count]);
+ prepare_modeset_on_mst_output(hdcp_mst_output[count], crtc, false);
+ }
+ igt_display_commit2(display, COMMIT_ATOMIC);
+
+ for (count = 0; count < valid_outputs; count++) {
+ crtc = output_get_driving_crtc_assert(hdcp_mst_output[count]);
+ igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].red);
+ igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].green);
+ }
+}
static void test_content_protection_cleanup(void)
{
igt_display_t *display = &data.display;
igt_output_t *output;
+ igt_crtc_t *crtc;
uint64_t val;
for_each_connected_output(display, output) {
@@ -963,34 +1051,56 @@ static void test_content_protection_cleanup(void)
if (val == CP_UNDESIRED)
continue;
+ crtc = igt_output_get_driving_crtc(output);
+ if (!crtc)
+ continue;
+
igt_info("CP Prop being UNDESIRED on %s\n", output->name);
- test_cp_disable(output, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+ test_cp_disable(output, crtc, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
}
-
- igt_remove_fb(data.drm_fd, &data.red);
- igt_remove_fb(data.drm_fd, &data.green);
}
static void create_fbs(void)
{
- uint16_t width = 0, height = 0;
drmModeModeInfo *mode;
igt_output_t *output;
+ igt_crtc_t *crtc;
+ /* Create framebuffers for each connected output's pipe */
for_each_connected_output(&data.display, output) {
mode = igt_output_get_mode(output);
igt_assert(mode);
- width = max(width, mode->hdisplay);
- height = max(height, mode->vdisplay);
+ /* Find a valid crtc for this output */
+ for_each_crtc(&data.display, crtc) {
+ if (!igt_crtc_connector_valid(crtc, output))
+ continue;
+
+ /* Skip if already created for this crtc */
+ if (data.fbs[crtc->crtc_index].red.fb_id)
+ continue;
+
+ igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR,
+ 1.f, 0.f, 0.f, &data.fbs[crtc->crtc_index].red);
+ igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR,
+ 0.f, 1.f, 0.f, &data.fbs[crtc->crtc_index].green);
+ break;
+ }
}
+}
- igt_create_color_fb(data.drm_fd, width, height,
- DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR,
- 1.f, 0.f, 0.f, &data.red);
- igt_create_color_fb(data.drm_fd, width, height,
- DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR,
- 0.f, 1.f, 0.f, &data.green);
+static void remove_fbs(void)
+{
+ igt_crtc_t *crtc;
+
+ for_each_crtc(&data.display, crtc) {
+ if (data.fbs[crtc->crtc_index].red.fb_id)
+ igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].red);
+ if (data.fbs[crtc->crtc_index].green.fb_id)
+ igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].green);
+ }
}
static const struct {
@@ -1155,9 +1265,18 @@ static const struct {
int igt_main()
{
igt_fixture() {
+ igt_crtc_t *crtc;
+
data.drm_fd = drm_open_driver_master(DRIVER_ANY);
igt_display_require(&data.display, data.drm_fd);
igt_display_require_output(&data.display);
+
+ /* Ensure all CRTCs can be indexed within our framebuffer array */
+ for_each_crtc(&data.display, crtc)
+ igt_assert_f(crtc->crtc_index < IGT_MAX_PIPES,
+ "crtc_index %u exceeds IGT_MAX_PIPES %u\n",
+ crtc->crtc_index, IGT_MAX_PIPES);
+
create_fbs();
}
@@ -1216,6 +1335,7 @@ int igt_main()
igt_fixture() {
test_content_protection_cleanup();
+ remove_fbs();
igt_display_fini(&data.display);
drm_close_driver(data.drm_fd);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* ✓ Xe.CI.BAT: success for tests/kms_content_protection: Optimize framebuffer management (rev2) 2026-03-17 16:01 [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Jason-JH Lin @ 2026-03-17 23:47 ` Patchwork 2026-03-18 0:02 ` ✓ i915.CI.BAT: " Patchwork ` (3 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2026-03-17 23:47 UTC (permalink / raw) To: Jason-JH Lin; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 5724 bytes --] == Series Details == Series: tests/kms_content_protection: Optimize framebuffer management (rev2) URL : https://patchwork.freedesktop.org/series/163255/ State : success == Summary == CI Bug Log - changes from XEIGT_8807_BAT -> XEIGTPW_14793_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (12 -> 14) ------------------------------ Additional (2): bat-adlp-7 bat-bmg-3 Known issues ------------ Here are the changes found in XEIGTPW_14793_BAT that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_dsc@dsc-basic: - bat-adlp-7: NOTRUN -> [SKIP][1] ([Intel XE#2244] / [Intel XE#455]) [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@kms_dsc@dsc-basic.html * igt@kms_flip@basic-flip-vs-dpms: - bat-adlp-7: NOTRUN -> [DMESG-WARN][2] ([Intel XE#7483]) +12 other tests dmesg-warn [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@kms_flip@basic-flip-vs-dpms.html * igt@xe_evict@evict-beng-small: - bat-adlp-7: NOTRUN -> [SKIP][3] ([Intel XE#261] / [Intel XE#5564] / [Intel XE#688]) +9 other tests skip [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@xe_evict@evict-beng-small.html * igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd: - bat-adlp-7: NOTRUN -> [SKIP][4] ([Intel XE#5563] / [Intel XE#688]) +1 other test skip [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd.html * igt@xe_exec_balancer@twice-cm-virtual-userptr: - bat-adlp-7: NOTRUN -> [SKIP][5] ([Intel XE#7482]) +17 other tests skip [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@xe_exec_balancer@twice-cm-virtual-userptr.html * igt@xe_exec_fault_mode@twice-rebind-prefetch: - bat-adlp-7: NOTRUN -> [SKIP][6] ([Intel XE#288] / [Intel XE#5561]) +32 other tests skip [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@xe_exec_fault_mode@twice-rebind-prefetch.html * igt@xe_live_ktest@xe_bo: - bat-adlp-7: NOTRUN -> [SKIP][7] ([Intel XE#2229] / [Intel XE#455]) +2 other tests skip [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@xe_live_ktest@xe_bo.html * igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit: - bat-adlp-7: NOTRUN -> [SKIP][8] ([Intel XE#2229] / [Intel XE#5488]) [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html * igt@xe_mmap@vram: - bat-adlp-7: NOTRUN -> [SKIP][9] ([Intel XE#1008] / [Intel XE#5591]) [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@xe_mmap@vram.html * igt@xe_pat@pat-index-xe2: - bat-adlp-7: NOTRUN -> [SKIP][10] ([Intel XE#977]) [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@xe_pat@pat-index-xe2.html * igt@xe_pat@pat-index-xehpc: - bat-adlp-7: NOTRUN -> [SKIP][11] ([Intel XE#2838] / [Intel XE#979]) [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@xe_pat@pat-index-xehpc.html * igt@xe_pat@pat-index-xelpg: - bat-adlp-7: NOTRUN -> [SKIP][12] ([Intel XE#979]) [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-adlp-7/igt@xe_pat@pat-index-xelpg.html * igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p: - bat-bmg-3: NOTRUN -> [SKIP][13] ([Intel XE#6566]) +3 other tests skip [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/bat-bmg-3/igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p.html [Intel XE#1008]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1008 [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229 [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244 [Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261 [Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838 [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288 [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455 [Intel XE#5488]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5488 [Intel XE#5561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5561 [Intel XE#5563]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5563 [Intel XE#5564]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5564 [Intel XE#5591]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5591 [Intel XE#6566]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6566 [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688 [Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482 [Intel XE#7483]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7483 [Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977 [Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979 Build changes ------------- * IGT: IGT_8807 -> IGTPW_14793 * Linux: xe-4735-113073d07f958385b5b80d29b62e10d2cf0181d6 -> xe-4740-c479cdf62a3f9a6101dd020abbc471f35142b3d1 IGTPW_14793: 14793 IGT_8807: 7f44d96d705f1583d689f1f8c2275b685b4ca11d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-4735-113073d07f958385b5b80d29b62e10d2cf0181d6: 113073d07f958385b5b80d29b62e10d2cf0181d6 xe-4740-c479cdf62a3f9a6101dd020abbc471f35142b3d1: c479cdf62a3f9a6101dd020abbc471f35142b3d1 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/index.html [-- Attachment #2: Type: text/html, Size: 6832 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* ✓ i915.CI.BAT: success for tests/kms_content_protection: Optimize framebuffer management (rev2) 2026-03-17 16:01 [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Jason-JH Lin 2026-03-17 23:47 ` ✓ Xe.CI.BAT: success for tests/kms_content_protection: Optimize framebuffer management (rev2) Patchwork @ 2026-03-18 0:02 ` Patchwork 2026-03-18 7:02 ` [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Fei Shao ` (2 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2026-03-18 0:02 UTC (permalink / raw) To: Jason-JH Lin; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 2764 bytes --] == Series Details == Series: tests/kms_content_protection: Optimize framebuffer management (rev2) URL : https://patchwork.freedesktop.org/series/163255/ State : success == Summary == CI Bug Log - changes from IGT_8807 -> IGTPW_14793 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14793/index.html Participating hosts (42 -> 40) ------------------------------ Missing (2): bat-dg2-13 fi-snb-2520m Known issues ------------ Here are the changes found in IGTPW_14793 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live: - bat-mtlp-8: [PASS][1] -> [DMESG-FAIL][2] ([i915#12061]) +1 other test dmesg-fail [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8807/bat-mtlp-8/igt@i915_selftest@live.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14793/bat-mtlp-8/igt@i915_selftest@live.html - bat-dg2-8: [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8807/bat-dg2-8/igt@i915_selftest@live.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14793/bat-dg2-8/igt@i915_selftest@live.html * igt@i915_selftest@live@workarounds: - bat-mtlp-9: [PASS][5] -> [DMESG-FAIL][6] ([i915#12061]) +1 other test dmesg-fail [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8807/bat-mtlp-9/igt@i915_selftest@live@workarounds.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14793/bat-mtlp-9/igt@i915_selftest@live@workarounds.html #### Possible fixes #### * igt@i915_pm_rpm@module-reload: - bat-adlp-6: [DMESG-WARN][7] ([i915#15673]) -> [PASS][8] +78 other tests pass [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8807/bat-adlp-6/igt@i915_pm_rpm@module-reload.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14793/bat-adlp-6/igt@i915_pm_rpm@module-reload.html [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 [i915#15673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15673 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_8807 -> IGTPW_14793 * Linux: CI_DRM_18164 -> CI_DRM_18169 CI-20190529: 20190529 CI_DRM_18164: 113073d07f958385b5b80d29b62e10d2cf0181d6 @ git://anongit.freedesktop.org/gfx-ci/linux CI_DRM_18169: c479cdf62a3f9a6101dd020abbc471f35142b3d1 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_14793: 14793 IGT_8807: 7f44d96d705f1583d689f1f8c2275b685b4ca11d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14793/index.html [-- Attachment #2: Type: text/html, Size: 3586 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management 2026-03-17 16:01 [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Jason-JH Lin 2026-03-17 23:47 ` ✓ Xe.CI.BAT: success for tests/kms_content_protection: Optimize framebuffer management (rev2) Patchwork 2026-03-18 0:02 ` ✓ i915.CI.BAT: " Patchwork @ 2026-03-18 7:02 ` Fei Shao 2026-03-19 11:55 ` ✗ Xe.CI.FULL: failure for tests/kms_content_protection: Optimize framebuffer management (rev2) Patchwork 2026-03-26 3:26 ` [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Karthik B S 4 siblings, 0 replies; 7+ messages in thread From: Fei Shao @ 2026-03-18 7:02 UTC (permalink / raw) To: Jason-JH Lin Cc: igt-dev, Karthik B S, Swati Sharma, Kamil Konieczny, Juha-Pekka Heikkila, Bhanuprakash Modem, Jani, Paul-PL Chen, Nancy Lin, Singo Chang, Gil Dekel, Yacoub, Project_Global_Chrome_Upstream_Group On Wed, Mar 18, 2026 at 12:03 AM Jason-JH Lin <jason-jh.lin@mediatek.com> wrote: > > Refactor framebuffer management to improve reusability: > - Create framebuffers once per CRTC at test initialization via > create_fbs() and reuse them across all subtests > - Centralize cleanup in remove_fbs() called at test fixture end > - Use per-CRTC framebuffer array (data.fbs[IGT_MAX_PIPES]) indexed > by crtc->crtc_index instead of single global framebuffers > > Each framebuffer is created with the actual resolution of the first > output that can connect to that CRTC, avoiding buffer size mismatch > issues (e.g., 3504x2190 panel incorrectly using 3840x2160 buffer). > > For MST tests, multiple outputs share bandwidth and may require mode > override to fit within bandwidth constraints. When mode override > changes the resolution, properly detach planes before removing the > existing framebuffers, then recreate them with the new dimensions. > > Signed-off-by: Jason-JH Lin <jason-jh.lin@mediatek.com> > Suggested-by: Karthik B.S <karthik.b.s@intel.com> > --- > tests/kms_content_protection.c | 216 +++++++++++++++++++++++++-------- > 1 file changed, 168 insertions(+), 48 deletions(-) > Reviewed-by: Fei Shao <fshao@chromium.org> ^ permalink raw reply [flat|nested] 7+ messages in thread
* ✗ Xe.CI.FULL: failure for tests/kms_content_protection: Optimize framebuffer management (rev2) 2026-03-17 16:01 [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Jason-JH Lin ` (2 preceding siblings ...) 2026-03-18 7:02 ` [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Fei Shao @ 2026-03-19 11:55 ` Patchwork 2026-03-26 3:26 ` [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Karthik B S 4 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2026-03-19 11:55 UTC (permalink / raw) To: Jason-JH Lin; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 51061 bytes --] == Series Details == Series: tests/kms_content_protection: Optimize framebuffer management (rev2) URL : https://patchwork.freedesktop.org/series/163255/ State : failure == Summary == CI Bug Log - changes from XEIGT_8807_FULL -> XEIGTPW_14793_FULL ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with XEIGTPW_14793_FULL absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in XEIGTPW_14793_FULL, 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 (2 -> 2) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in XEIGTPW_14793_FULL: ### IGT changes ### #### Possible regressions #### * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs: - shard-bmg: [PASS][1] -> [DMESG-WARN][2] +2 other tests dmesg-warn [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html Known issues ------------ Here are the changes found in XEIGTPW_14793_FULL that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_big_fb@4-tiled-8bpp-rotate-90: - shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2327]) +3 other tests skip [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-8/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip: - shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#7059] / [Intel XE#7085]) [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip: - shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#1124]) +7 other tests skip [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-9/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html * igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p: - shard-bmg: [PASS][6] -> [SKIP][7] ([Intel XE#2314] / [Intel XE#2894] / [Intel XE#7373]) +1 other test skip [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-9/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html * igt@kms_bw@linear-tiling-2-displays-2160x1440p: - shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#367] / [Intel XE#7354]) [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-1/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html * igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs: - shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#2887]) +6 other tests skip [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-8/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs.html * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs: - shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#3432]) [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs.html * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2: - shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#2652]) +8 other tests skip [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-9/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2.html * igt@kms_chamelium_frames@vga-frame-dump: - shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#2252]) +3 other tests skip [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_chamelium_frames@vga-frame-dump.html * igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-2: - shard-bmg: NOTRUN -> [FAIL][13] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +3 other tests fail [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-6/igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-2.html * igt@kms_content_protection@uevent-hdcp14: - shard-bmg: NOTRUN -> [FAIL][14] ([Intel XE#6707] / [Intel XE#7439]) +1 other test fail [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-8/igt@kms_content_protection@uevent-hdcp14.html * igt@kms_cursor_crc@cursor-onscreen-512x512: - shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#2321] / [Intel XE#7355]) [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_cursor_crc@cursor-onscreen-512x512.html * igt@kms_cursor_crc@cursor-random-32x32: - shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#2320]) +5 other tests skip [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@kms_cursor_crc@cursor-random-32x32.html * igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic: - shard-bmg: [PASS][17] -> [SKIP][18] ([Intel XE#2291]) +3 other tests skip [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-4/igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic.html [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic.html * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size: - shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#2291]) [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@cursorb-vs-flipb-toggle: - shard-bmg: [PASS][20] -> [SKIP][21] ([Intel XE#2291] / [Intel XE#7343]) [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic: - shard-bmg: [PASS][22] -> [FAIL][23] ([Intel XE#7571]) [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-9/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc: - shard-bmg: [PASS][24] -> [SKIP][25] ([Intel XE#1340]) [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-8/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html * igt@kms_flip@2x-flip-vs-panning: - shard-bmg: [PASS][26] -> [SKIP][27] ([Intel XE#2316]) +3 other tests skip [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-3/igt@kms_flip@2x-flip-vs-panning.html [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_flip@2x-flip-vs-panning.html * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible: - shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#2316]) [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html * igt@kms_flip@flip-vs-expired-vblank@a-edp1: - shard-lnl: [PASS][29] -> [FAIL][30] ([Intel XE#301]) [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html * igt@kms_flip@flip-vs-expired-vblank@c-edp1: - shard-lnl: [PASS][31] -> [FAIL][32] ([Intel XE#301] / [Intel XE#3149]) [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling: - shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#7178] / [Intel XE#7351]) +3 other tests skip [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-6/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt: - shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#2312]) +5 other tests skip [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-move: - shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#2311]) +14 other tests skip [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-move.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen: - shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#4141]) +7 other tests skip [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-9/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen.html * igt@kms_frontbuffer_tracking@fbc-argb161616f-draw-blt: - shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-argb161616f-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render: - shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#2313]) +13 other tests skip [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsr-tiling-y: - shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#2352] / [Intel XE#7399]) [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping: - shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#7283]) [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html * igt@kms_plane_multiple@2x-tiling-4: - shard-bmg: [PASS][41] -> [SKIP][42] ([Intel XE#4596]) [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-9/igt@kms_plane_multiple@2x-tiling-4.html [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_plane_multiple@2x-tiling-4.html * igt@kms_plane_multiple@2x-tiling-yf: - shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#4596]) [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_plane_multiple@2x-tiling-yf.html * igt@kms_plane_scaling@2x-scaler-multi-pipe: - shard-bmg: [PASS][44] -> [SKIP][45] ([Intel XE#2571] / [Intel XE#7343]) [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_plane_scaling@2x-scaler-multi-pipe.html [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_plane_scaling@2x-scaler-multi-pipe.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-a: - shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#2763] / [Intel XE#6886]) +3 other tests skip [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-a.html * igt@kms_pm_backlight@basic-brightness: - shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#7376] / [Intel XE#870]) [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-4/igt@kms_pm_backlight@basic-brightness.html * igt@kms_pm_dc@deep-pkgc: - shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#2505] / [Intel XE#7447]) [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_pm_dc@deep-pkgc.html * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf: - shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#1489]) +5 other tests skip [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html * igt@kms_psr2_su@page_flip-nv12: - shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#2387] / [Intel XE#7429]) [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_psr2_su@page_flip-nv12.html * igt@kms_psr@fbc-psr2-cursor-plane-move: - shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#2234] / [Intel XE#2850]) +5 other tests skip [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@kms_psr@fbc-psr2-cursor-plane-move.html * igt@kms_psr_stress_test@invalidate-primary-flip-overlay: - shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#1406] / [Intel XE#2414]) [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html * igt@kms_setmode@basic@pipe-b-edp-1: - shard-lnl: [PASS][53] -> [FAIL][54] ([Intel XE#6361]) +2 other tests fail [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-lnl-8/igt@kms_setmode@basic@pipe-b-edp-1.html [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-lnl-8/igt@kms_setmode@basic@pipe-b-edp-1.html * igt@kms_sharpness_filter@filter-toggle: - shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#6503]) [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_sharpness_filter@filter-toggle.html * igt@kms_vrr@cmrr: - shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#2168] / [Intel XE#7444]) [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_vrr@cmrr.html * igt@kms_vrr@flip-suspend: - shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#1499]) +1 other test skip [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_vrr@flip-suspend.html * igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1: - shard-lnl: [PASS][58] -> [FAIL][59] ([Intel XE#2142]) +1 other test fail [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-lnl-2/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-lnl-8/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html * igt@xe_configfs@engines-allowed: - shard-bmg: [PASS][60] -> [ABORT][61] ([Intel XE#7578]) [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-7/igt@xe_configfs@engines-allowed.html [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-4/igt@xe_configfs@engines-allowed.html * igt@xe_eudebug@vma-ufence: - shard-bmg: NOTRUN -> [SKIP][62] ([Intel XE#4837]) +3 other tests skip [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-4/igt@xe_eudebug@vma-ufence.html * igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-vram: - shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#4837] / [Intel XE#6665]) +4 other tests skip [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-vram.html * igt@xe_evict@evict-mixed-many-threads-small: - shard-bmg: [PASS][64] -> [INCOMPLETE][65] ([Intel XE#6321]) [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-3/igt@xe_evict@evict-mixed-many-threads-small.html [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@xe_evict@evict-mixed-many-threads-small.html * igt@xe_exec_basic@multigpu-once-null-rebind: - shard-bmg: NOTRUN -> [SKIP][66] ([Intel XE#2322] / [Intel XE#7372]) +2 other tests skip [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-8/igt@xe_exec_basic@multigpu-once-null-rebind.html * igt@xe_exec_fault_mode@once-multi-queue-rebind-imm: - shard-bmg: NOTRUN -> [SKIP][67] ([Intel XE#7136]) +6 other tests skip [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@xe_exec_fault_mode@once-multi-queue-rebind-imm.html * igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr-invalidate: - shard-bmg: NOTRUN -> [SKIP][68] ([Intel XE#6874]) +16 other tests skip [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr-invalidate.html * igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race: - shard-bmg: NOTRUN -> [SKIP][69] ([Intel XE#7138]) +5 other tests skip [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race.html * igt@xe_pat@pat-index-xehpc: - shard-bmg: NOTRUN -> [SKIP][70] ([Intel XE#1420]) [70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-8/igt@xe_pat@pat-index-xehpc.html * igt@xe_pm@d3cold-basic: - shard-bmg: NOTRUN -> [SKIP][71] ([Intel XE#2284] / [Intel XE#7370]) [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@xe_pm@d3cold-basic.html * igt@xe_pxp@pxp-stale-queue-post-termination-irq: - shard-bmg: NOTRUN -> [SKIP][72] ([Intel XE#4733] / [Intel XE#7417]) [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@xe_pxp@pxp-stale-queue-post-termination-irq.html * igt@xe_query@multigpu-query-engines: - shard-bmg: NOTRUN -> [SKIP][73] ([Intel XE#944]) [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-8/igt@xe_query@multigpu-query-engines.html * igt@xe_sriov_flr@flr-twice: - shard-bmg: [PASS][74] -> [FAIL][75] ([Intel XE#6569]) [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-8/igt@xe_sriov_flr@flr-twice.html [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-9/igt@xe_sriov_flr@flr-twice.html #### Possible fixes #### * igt@core_hotunplug@hotreplug: - shard-bmg: [ABORT][76] ([Intel XE#7578]) -> [PASS][77] [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-8/igt@core_hotunplug@hotreplug.html [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-6/igt@core_hotunplug@hotreplug.html * igt@core_hotunplug@hotunplug-rescan: - shard-bmg: [SKIP][78] ([Intel XE#6779]) -> [PASS][79] [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@core_hotunplug@hotunplug-rescan.html [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-1/igt@core_hotunplug@hotunplug-rescan.html * igt@intel_hwmon@hwmon-write: - shard-bmg: [FAIL][80] ([Intel XE#7445]) -> [PASS][81] [80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-1/igt@intel_hwmon@hwmon-write.html [81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@intel_hwmon@hwmon-write.html * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size: - shard-bmg: [SKIP][82] ([Intel XE#2291]) -> [PASS][83] +1 other test pass [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html * igt@kms_cursor_legacy@cursorb-vs-flipb-legacy: - shard-bmg: [SKIP][84] ([Intel XE#2291] / [Intel XE#7343]) -> [PASS][85] [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html * igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible: - shard-bmg: [SKIP][86] ([Intel XE#2316]) -> [PASS][87] +4 other tests pass [86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html * igt@kms_flip@flip-vs-expired-vblank@b-edp1: - shard-lnl: [FAIL][88] ([Intel XE#301]) -> [PASS][89] [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html [89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html * igt@kms_flip@flip-vs-suspend@a-hdmi-a3: - shard-bmg: [INCOMPLETE][90] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][91] +1 other test pass [90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-6/igt@kms_flip@flip-vs-suspend@a-hdmi-a3.html [91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-9/igt@kms_flip@flip-vs-suspend@a-hdmi-a3.html * igt@kms_flip@plain-flip-fb-recreate@c-hdmi-a3: - shard-bmg: [DMESG-FAIL][92] ([Intel XE#5545]) -> [PASS][93] +1 other test pass [92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_flip@plain-flip-fb-recreate@c-hdmi-a3.html [93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_flip@plain-flip-fb-recreate@c-hdmi-a3.html * igt@kms_hdr@invalid-hdr: - shard-bmg: [SKIP][94] ([Intel XE#1503]) -> [PASS][95] +1 other test pass [94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_hdr@invalid-hdr.html [95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_hdr@invalid-hdr.html * igt@kms_joiner@invalid-modeset-force-big-joiner: - shard-bmg: [SKIP][96] ([Intel XE#7086]) -> [PASS][97] [96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@kms_joiner@invalid-modeset-force-big-joiner.html [97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-1/igt@kms_joiner@invalid-modeset-force-big-joiner.html * igt@kms_pm_dc@dc6-psr: - shard-lnl: [FAIL][98] ([Intel XE#7340]) -> [PASS][99] +1 other test pass [98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-lnl-5/igt@kms_pm_dc@dc6-psr.html [99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-lnl-4/igt@kms_pm_dc@dc6-psr.html * igt@kms_setmode@invalid-clone-single-crtc: - shard-bmg: [SKIP][100] ([Intel XE#1435]) -> [PASS][101] [100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@kms_setmode@invalid-clone-single-crtc.html [101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-8/igt@kms_setmode@invalid-clone-single-crtc.html * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all: - shard-bmg: [FAIL][102] ([Intel XE#5937]) -> [PASS][103] [102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html [103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html * igt@xe_evict@evict-beng-mixed-many-threads-small: - shard-bmg: [INCOMPLETE][104] ([Intel XE#6321]) -> [PASS][105] [104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-1/igt@xe_evict@evict-beng-mixed-many-threads-small.html [105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-6/igt@xe_evict@evict-beng-mixed-many-threads-small.html * igt@xe_exec_system_allocator@fault-threads-benchmark: - shard-bmg: [FAIL][106] -> [PASS][107] [106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@xe_exec_system_allocator@fault-threads-benchmark.html [107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@xe_exec_system_allocator@fault-threads-benchmark.html * igt@xe_exec_system_allocator@many-large-execqueues-mmap-free-nomemset: - shard-bmg: [SKIP][108] ([Intel XE#6703]) -> [PASS][109] +115 other tests pass [108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@xe_exec_system_allocator@many-large-execqueues-mmap-free-nomemset.html [109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-6/igt@xe_exec_system_allocator@many-large-execqueues-mmap-free-nomemset.html * igt@xe_exec_system_allocator@twice-large-mmap: - shard-bmg: [SKIP][110] ([Intel XE#6557] / [Intel XE#6703]) -> [PASS][111] +2 other tests pass [110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@xe_exec_system_allocator@twice-large-mmap.html [111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-9/igt@xe_exec_system_allocator@twice-large-mmap.html #### Warnings #### * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip: - shard-bmg: [SKIP][112] ([Intel XE#6703]) -> [SKIP][113] ([Intel XE#1124]) +1 other test skip [112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html [113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html * igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p: - shard-bmg: [SKIP][114] ([Intel XE#6703]) -> [SKIP][115] ([Intel XE#7621]) [114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html [115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html * igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc: - shard-bmg: [SKIP][116] ([Intel XE#6703]) -> [SKIP][117] ([Intel XE#2887]) +3 other tests skip [116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc.html [117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc.html * igt@kms_chamelium_edid@dp-edid-read: - shard-bmg: [SKIP][118] ([Intel XE#6703]) -> [SKIP][119] ([Intel XE#2252]) +1 other test skip [118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_chamelium_edid@dp-edid-read.html [119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_chamelium_edid@dp-edid-read.html * igt@kms_content_protection@dp-mst-type-1: - shard-bmg: [SKIP][120] ([Intel XE#6703]) -> [SKIP][121] ([Intel XE#2390] / [Intel XE#6974]) [120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_content_protection@dp-mst-type-1.html [121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_content_protection@dp-mst-type-1.html * igt@kms_content_protection@lic-type-0-hdcp14: - shard-bmg: [SKIP][122] ([Intel XE#7194]) -> [FAIL][123] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) [122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@kms_content_protection@lic-type-0-hdcp14.html [123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-6/igt@kms_content_protection@lic-type-0-hdcp14.html * igt@kms_content_protection@srm: - shard-bmg: [SKIP][124] ([Intel XE#2341]) -> [FAIL][125] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) [124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@kms_content_protection@srm.html [125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-1/igt@kms_content_protection@srm.html * igt@kms_content_protection@uevent: - shard-bmg: [FAIL][126] ([Intel XE#6707] / [Intel XE#7439]) -> [SKIP][127] ([Intel XE#2341]) [126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-7/igt@kms_content_protection@uevent.html [127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_content_protection@uevent.html * igt@kms_cursor_crc@cursor-random-256x85: - shard-bmg: [SKIP][128] ([Intel XE#6703]) -> [SKIP][129] ([Intel XE#2320]) [128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_cursor_crc@cursor-random-256x85.html [129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_cursor_crc@cursor-random-256x85.html * igt@kms_cursor_crc@cursor-sliding-512x512: - shard-bmg: [SKIP][130] ([Intel XE#6703]) -> [SKIP][131] ([Intel XE#2321] / [Intel XE#7355]) [130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_cursor_crc@cursor-sliding-512x512.html [131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@kms_cursor_crc@cursor-sliding-512x512.html * igt@kms_dsc@dsc-with-formats: - shard-bmg: [SKIP][132] ([Intel XE#6703]) -> [SKIP][133] ([Intel XE#2244]) [132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_dsc@dsc-with-formats.html [133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-9/igt@kms_dsc@dsc-with-formats.html * igt@kms_flip@2x-flip-vs-suspend: - shard-bmg: [SKIP][134] ([Intel XE#6703]) -> [SKIP][135] ([Intel XE#2316]) [134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_flip@2x-flip-vs-suspend.html [135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-5/igt@kms_flip@2x-flip-vs-suspend.html * igt@kms_flip@flip-vs-expired-vblank: - shard-lnl: [FAIL][136] ([Intel XE#301]) -> [FAIL][137] ([Intel XE#301] / [Intel XE#3149]) [136]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank.html [137]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling: - shard-bmg: [SKIP][138] ([Intel XE#6703]) -> [SKIP][139] ([Intel XE#7178] / [Intel XE#7351]) [138]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html [139]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render: - shard-bmg: [SKIP][140] ([Intel XE#2312]) -> [SKIP][141] ([Intel XE#2311]) +11 other tests skip [140]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html [141]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc: - shard-bmg: [SKIP][142] ([Intel XE#2311]) -> [SKIP][143] ([Intel XE#2312]) +9 other tests skip [142]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-3/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc.html [143]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render: - shard-bmg: [SKIP][144] ([Intel XE#6703]) -> [SKIP][145] ([Intel XE#2311]) +6 other tests skip [144]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render.html [145]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt: - shard-bmg: [SKIP][146] ([Intel XE#6703]) -> [SKIP][147] ([Intel XE#2312]) [146]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt.html [147]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-msflip-blt: - shard-bmg: [SKIP][148] ([Intel XE#4141]) -> [SKIP][149] ([Intel XE#2312]) +5 other tests skip [148]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-9/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-msflip-blt.html [149]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-msflip-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc: - shard-bmg: [SKIP][150] ([Intel XE#2312]) -> [SKIP][151] ([Intel XE#4141]) +6 other tests skip [150]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html [151]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary: - shard-bmg: [SKIP][152] ([Intel XE#6703]) -> [SKIP][153] ([Intel XE#4141]) [152]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html [153]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html * igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y: - shard-bmg: [SKIP][154] ([Intel XE#6703]) -> [SKIP][155] ([Intel XE#2352] / [Intel XE#7399]) [154]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html [155]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt: - shard-bmg: [SKIP][156] ([Intel XE#6703]) -> [SKIP][157] ([Intel XE#2313]) +6 other tests skip [156]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html [157]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt: - shard-bmg: [SKIP][158] ([Intel XE#2312]) -> [SKIP][159] ([Intel XE#2313]) +11 other tests skip [158]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html [159]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt: - shard-bmg: [SKIP][160] ([Intel XE#2313]) -> [SKIP][161] ([Intel XE#2312]) +17 other tests skip [160]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt.html [161]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt.html * igt@kms_joiner@basic-big-joiner: - shard-bmg: [SKIP][162] ([Intel XE#6703]) -> [SKIP][163] ([Intel XE#6901]) [162]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_joiner@basic-big-joiner.html [163]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@kms_joiner@basic-big-joiner.html * igt@kms_multipipe_modeset@basic-max-pipe-crc-check: - shard-bmg: [SKIP][164] ([Intel XE#6703]) -> [SKIP][165] ([Intel XE#7591]) [164]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html [165]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier: - shard-bmg: [SKIP][166] ([Intel XE#6703]) -> [SKIP][167] ([Intel XE#7283]) [166]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier.html [167]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75: - shard-bmg: [SKIP][168] ([Intel XE#6703]) -> [SKIP][169] ([Intel XE#2763] / [Intel XE#6886]) [168]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75.html [169]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75.html * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area: - shard-bmg: [SKIP][170] ([Intel XE#6703]) -> [SKIP][171] ([Intel XE#1489]) [170]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html [171]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html * igt@kms_psr@pr-cursor-plane-onoff: - shard-bmg: [SKIP][172] ([Intel XE#6703]) -> [SKIP][173] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip [172]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_psr@pr-cursor-plane-onoff.html [173]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@kms_psr@pr-cursor-plane-onoff.html * igt@kms_sharpness_filter@filter-basic: - shard-bmg: [SKIP][174] ([Intel XE#6703]) -> [SKIP][175] ([Intel XE#6503]) [174]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@kms_sharpness_filter@filter-basic.html [175]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@kms_sharpness_filter@filter-basic.html * igt@kms_tiled_display@basic-test-pattern: - shard-bmg: [SKIP][176] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][177] ([Intel XE#1729] / [Intel XE#7424]) [176]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern.html [177]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern.html * igt@kms_tiled_display@basic-test-pattern-with-chamelium: - shard-bmg: [SKIP][178] ([Intel XE#2426] / [Intel XE#5848]) -> [SKIP][179] ([Intel XE#2509] / [Intel XE#7437]) [178]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html [179]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html * igt@xe_eudebug@multigpu-basic-client: - shard-bmg: [SKIP][180] ([Intel XE#6703]) -> [SKIP][181] ([Intel XE#4837]) [180]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@xe_eudebug@multigpu-basic-client.html [181]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-8/igt@xe_eudebug@multigpu-basic-client.html * igt@xe_evict@evict-threads-small-multi-queue: - shard-bmg: [SKIP][182] ([Intel XE#6703]) -> [SKIP][183] ([Intel XE#7140]) [182]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@xe_evict@evict-threads-small-multi-queue.html [183]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-2/igt@xe_evict@evict-threads-small-multi-queue.html * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind: - shard-bmg: [SKIP][184] ([Intel XE#6703]) -> [SKIP][185] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip [184]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind.html [185]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind.html * igt@xe_exec_fault_mode@twice-multi-queue-userptr-invalidate-race-imm: - shard-bmg: [SKIP][186] ([Intel XE#6703]) -> [SKIP][187] ([Intel XE#7136]) +1 other test skip [186]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@xe_exec_fault_mode@twice-multi-queue-userptr-invalidate-race-imm.html [187]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-10/igt@xe_exec_fault_mode@twice-multi-queue-userptr-invalidate-race-imm.html * igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd-smem: - shard-bmg: [SKIP][188] ([Intel XE#6703]) -> [SKIP][189] ([Intel XE#6874]) +4 other tests skip [188]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd-smem.html [189]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-9/igt@xe_exec_multi_queue@few-execs-preempt-mode-close-fd-smem.html * igt@xe_exec_threads@threads-multi-queue-fd-userptr-rebind: - shard-bmg: [SKIP][190] ([Intel XE#6703]) -> [SKIP][191] ([Intel XE#7138]) +1 other test skip [190]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@xe_exec_threads@threads-multi-queue-fd-userptr-rebind.html [191]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-8/igt@xe_exec_threads@threads-multi-queue-fd-userptr-rebind.html * igt@xe_pm@d3cold-mmap-system: - shard-bmg: [SKIP][192] ([Intel XE#6703]) -> [SKIP][193] ([Intel XE#2284] / [Intel XE#7370]) [192]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8807/shard-bmg-2/igt@xe_pm@d3cold-mmap-system.html [193]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/shard-bmg-7/igt@xe_pm@d3cold-mmap-system.html [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124 [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178 [Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340 [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406 [Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420 [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435 [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489 [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499 [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503 [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729 [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049 [Intel XE#2142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2142 [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168 [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234 [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244 [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252 [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284 [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291 [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311 [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312 [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313 [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314 [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316 [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320 [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321 [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322 [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327 [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341 [Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352 [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387 [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390 [Intel XE#2414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2414 [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426 [Intel XE#2505]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2505 [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509 [Intel XE#2571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2571 [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597 [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652 [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763 [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850 [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887 [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894 [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301 [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149 [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304 [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432 [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367 [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141 [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596 [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733 [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837 [Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545 [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848 [Intel XE#5937]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5937 [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321 [Intel XE#6361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6361 [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503 [Intel XE#6557]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6557 [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569 [Intel XE#6665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6665 [Intel XE#6703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6703 [Intel XE#6707]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6707 [Intel XE#6779]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6779 [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874 [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886 [Intel XE#6901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6901 [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974 [Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059 [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061 [Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085 [Intel XE#7086]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7086 [Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136 [Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138 [Intel XE#7140]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7140 [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178 [Intel XE#7194]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7194 [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283 [Intel XE#7340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7340 [Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343 [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351 [Intel XE#7354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7354 [Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355 [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356 [Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370 [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372 [Intel XE#7373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7373 [Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374 [Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376 [Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399 [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417 [Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424 [Intel XE#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429 [Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437 [Intel XE#7439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7439 [Intel XE#7444]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7444 [Intel XE#7445]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7445 [Intel XE#7447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7447 [Intel XE#7571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7571 [Intel XE#7578]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7578 [Intel XE#7591]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7591 [Intel XE#7621]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7621 [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870 [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944 Build changes ------------- * IGT: IGT_8807 -> IGTPW_14793 * Linux: xe-4735-113073d07f958385b5b80d29b62e10d2cf0181d6 -> xe-4740-c479cdf62a3f9a6101dd020abbc471f35142b3d1 IGTPW_14793: 14793 IGT_8807: 7f44d96d705f1583d689f1f8c2275b685b4ca11d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-4735-113073d07f958385b5b80d29b62e10d2cf0181d6: 113073d07f958385b5b80d29b62e10d2cf0181d6 xe-4740-c479cdf62a3f9a6101dd020abbc471f35142b3d1: c479cdf62a3f9a6101dd020abbc471f35142b3d1 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14793/index.html [-- Attachment #2: Type: text/html, Size: 60998 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management 2026-03-17 16:01 [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Jason-JH Lin ` (3 preceding siblings ...) 2026-03-19 11:55 ` ✗ Xe.CI.FULL: failure for tests/kms_content_protection: Optimize framebuffer management (rev2) Patchwork @ 2026-03-26 3:26 ` Karthik B S 2026-03-26 16:25 ` Jason-JH Lin (林睿祥) 4 siblings, 1 reply; 7+ messages in thread From: Karthik B S @ 2026-03-26 3:26 UTC (permalink / raw) To: Jason-JH Lin, igt-dev, Swati Sharma, Kamil Konieczny, Juha-Pekka Heikkila, Bhanuprakash Modem, Fei Shao Cc: Jani, Paul-PL Chen, Nancy Lin, Singo Chang, Gil Dekel, Yacoub, Project_Global_Chrome_Upstream_Group Hi Jason-JH, On 3/17/2026 9:31 PM, Jason-JH Lin wrote: > Refactor framebuffer management to improve reusability: > - Create framebuffers once per CRTC at test initialization via > create_fbs() and reuse them across all subtests > - Centralize cleanup in remove_fbs() called at test fixture end > - Use per-CRTC framebuffer array (data.fbs[IGT_MAX_PIPES]) indexed > by crtc->crtc_index instead of single global framebuffers > > Each framebuffer is created with the actual resolution of the first > output that can connect to that CRTC, avoiding buffer size mismatch > issues (e.g., 3504x2190 panel incorrectly using 3840x2160 buffer). > > For MST tests, multiple outputs share bandwidth and may require mode > override to fit within bandwidth constraints. When mode override > changes the resolution, properly detach planes before removing the > existing framebuffers, then recreate them with the new dimensions. > > Signed-off-by: Jason-JH Lin <jason-jh.lin@mediatek.com> > Suggested-by: Karthik B.S <karthik.b.s@intel.com> > --- > tests/kms_content_protection.c | 216 +++++++++++++++++++++++++-------- > 1 file changed, 168 insertions(+), 48 deletions(-) > > diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c > index f35c9fa73a57..d470a8de5700 100644 > --- a/tests/kms_content_protection.c > +++ b/tests/kms_content_protection.c > @@ -107,10 +107,15 @@ > > IGT_TEST_DESCRIPTION("Test content protection (HDCP)"); > > +struct hdcp_test_fbs { > + struct igt_fb red; > + struct igt_fb green; > +}; > + > struct data { > int drm_fd; > igt_display_t display; > - struct igt_fb red, green; > + struct hdcp_test_fbs fbs[IGT_MAX_PIPES]; > unsigned int cp_tests; > struct udev_monitor *uevent_monitor; > bool is_force_hdcp14; > @@ -257,7 +262,15 @@ commit_display_and_wait_for_flip(enum igt_commit_style commit_style) > } > } > > -static void modeset_with_fb(igt_output_t *output, > +static igt_crtc_t *output_get_driving_crtc_assert(igt_output_t *output) > +{ > + igt_crtc_t *crtc = igt_output_get_driving_crtc(output); > + > + igt_assert(crtc); > + return crtc; > +} > + > +static void modeset_with_fb(igt_output_t *output, igt_crtc_t *crtc, > enum igt_commit_style commit_style) > { > igt_display_t *display = &data.display; > @@ -267,18 +280,19 @@ static void modeset_with_fb(igt_output_t *output, > mode = igt_output_get_mode(output); > > primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); > - igt_plane_set_fb(primary, &data.red); > - igt_fb_set_size(&data.red, primary, mode->hdisplay, mode->vdisplay); > + igt_plane_set_fb(primary, &data.fbs[crtc->crtc_index].red); > + igt_fb_set_size(&data.fbs[crtc->crtc_index].red, primary, mode->hdisplay, mode->vdisplay); > > igt_display_commit2(display, commit_style); > > - igt_plane_set_fb(primary, &data.green); > + igt_plane_set_fb(primary, &data.fbs[crtc->crtc_index].green); > > /* Wait for Flip completion before starting the HDCP authentication */ > commit_display_and_wait_for_flip(commit_style); > } > > -static bool test_cp_enable(igt_output_t *output, enum igt_commit_style commit_style, > +static bool test_cp_enable(igt_output_t *output, igt_crtc_t *crtc, > + enum igt_commit_style commit_style, > int content_type, bool type_change) > { > igt_display_t *display = &data.display; > @@ -301,7 +315,7 @@ static bool test_cp_enable(igt_output_t *output, enum igt_commit_style commit_st > ret = wait_for_prop_value(output, CP_ENABLED, > KERNEL_AUTH_TIME_ALLOWED_MSEC); > if (ret) { > - igt_plane_set_fb(primary, &data.green); > + igt_plane_set_fb(primary, &data.fbs[crtc->crtc_index].green); > igt_display_commit2(display, commit_style); > } > > @@ -314,13 +328,15 @@ static void test_mst_cp_disable(igt_output_t *hdcp_mst_output[], > { > igt_display_t *display = &data.display; > igt_plane_t *primary; > + igt_crtc_t *crtc; > bool ret; > int count; > u64 val; > > for (count = 0; count < valid_outputs; count++) { > + crtc = output_get_driving_crtc_assert(hdcp_mst_output[count]); > primary = igt_output_get_plane_type(hdcp_mst_output[count], DRM_PLANE_TYPE_PRIMARY); > - igt_plane_set_fb(primary, &data.red); > + igt_plane_set_fb(primary, &data.fbs[crtc->crtc_index].red); > igt_output_set_prop_value(hdcp_mst_output[count], IGT_CONNECTOR_CONTENT_PROTECTION, > CP_UNDESIRED); > } > @@ -338,7 +354,8 @@ static void test_mst_cp_disable(igt_output_t *hdcp_mst_output[], > igt_assert_f(ret, "Content Protection not cleared on all MST outputs\n"); > } > > -static void test_cp_disable(igt_output_t *output, enum igt_commit_style commit_style) > +static void test_cp_disable(igt_output_t *output, igt_crtc_t *crtc, > + enum igt_commit_style commit_style) > { > igt_display_t *display = &data.display; > igt_plane_t *primary; > @@ -352,7 +369,7 @@ static void test_cp_disable(igt_output_t *output, enum igt_commit_style commit_s > */ > igt_output_set_prop_value(output, IGT_CONNECTOR_CONTENT_PROTECTION, > CP_UNDESIRED); > - igt_plane_set_fb(primary, &data.red); > + igt_plane_set_fb(primary, &data.fbs[crtc->crtc_index].red); > igt_display_commit2(display, commit_style); > > /* Wait for HDCP to be disabled, before crtc off */ > @@ -361,7 +378,7 @@ static void test_cp_disable(igt_output_t *output, enum igt_commit_style commit_s > igt_assert_f(ret, "Content Protection not cleared\n"); > } > > -static void test_cp_enable_with_retry(igt_output_t *output, > +static void test_cp_enable_with_retry(igt_output_t *output, igt_crtc_t *crtc, > enum igt_commit_style commit_style, > int retry, int content_type, > bool expect_failure, > @@ -372,16 +389,16 @@ static void test_cp_enable_with_retry(igt_output_t *output, > > do { > if (!type_change || retry_orig != retry) > - test_cp_disable(output, commit_style); > + test_cp_disable(output, crtc, commit_style); > > - ret = test_cp_enable(output, commit_style, content_type, type_change); > + ret = test_cp_enable(output, crtc, commit_style, content_type, type_change); > > if (!ret && --retry) > igt_debug("Retry (%d/2) ...\n", 3 - retry); > } while (retry && !ret); > > if (!ret) > - test_cp_disable(output, commit_style); > + test_cp_disable(output, crtc, commit_style); > > if (expect_failure) > igt_assert_f(!ret, > @@ -451,16 +468,16 @@ static void test_content_protection_on_output(igt_output_t *output, > igt_display_t *display = &data.display; > bool ret; > > - test_cp_enable_with_retry(output, commit_style, 3, content_type, false, > + test_cp_enable_with_retry(output, crtc, commit_style, 3, content_type, false, > false); > > if (data.cp_tests & CP_TYPE_CHANGE) { > /* Type 1 -> Type 0 */ > - test_cp_enable_with_retry(output, commit_style, 3, > + test_cp_enable_with_retry(output, crtc, commit_style, 3, > HDCP_CONTENT_TYPE_0, false, > true); > /* Type 0 -> Type 1 */ > - test_cp_enable_with_retry(output, commit_style, 3, > + test_cp_enable_with_retry(output, crtc, commit_style, 3, > content_type, false, > true); > } > @@ -470,14 +487,14 @@ static void test_content_protection_on_output(igt_output_t *output, > "mei_hdcp unload failed"); > > /* Expected to fail */ > - test_cp_enable_with_retry(output, commit_style, 3, > + test_cp_enable_with_retry(output, crtc, commit_style, 3, > content_type, true, false); > > igt_assert_f(!igt_kmod_load("mei_hdcp", NULL), > "mei_hdcp load failed"); > > /* Expected to pass */ > - test_cp_enable_with_retry(output, commit_style, 3, > + test_cp_enable_with_retry(output, crtc, commit_style, 3, > content_type, false, false); > } > > @@ -496,7 +513,7 @@ static void test_content_protection_on_output(igt_output_t *output, > ret = wait_for_prop_value(output, CP_ENABLED, > KERNEL_AUTH_TIME_ALLOWED_MSEC); > if (!ret) > - test_cp_enable_with_retry(output, commit_style, 2, > + test_cp_enable_with_retry(output, crtc, commit_style, 2, > content_type, false, > false); > } > @@ -507,7 +524,7 @@ static void test_content_protection_on_output(igt_output_t *output, > ret = wait_for_prop_value(output, CP_ENABLED, > KERNEL_AUTH_TIME_ALLOWED_MSEC); > if (!ret) > - test_cp_enable_with_retry(output, commit_style, 2, > + test_cp_enable_with_retry(output, crtc, commit_style, 2, > content_type, false, > false); > } > @@ -577,21 +594,24 @@ static bool sink_hdcp2_capable(igt_output_t *output) > return strstr(buf, "HDCP2.2"); > } > > -static void prepare_modeset_on_mst_output(igt_output_t *output, bool is_enabled) > +static void prepare_modeset_on_mst_output(igt_output_t *output, igt_crtc_t *crtc, bool is_enabled) > { > drmModeModeInfo *mode; > igt_plane_t *primary; > int width, height; > + struct igt_fb *fb; > > mode = igt_output_get_mode(output); > > width = mode->hdisplay; > height = mode->vdisplay; > > + fb = is_enabled ? &data.fbs[crtc->crtc_index].green : &data.fbs[crtc->crtc_index].red; > + > primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); > igt_plane_set_fb(primary, NULL); > - igt_plane_set_fb(primary, is_enabled ? &data.green : &data.red); > - igt_fb_set_size(is_enabled ? &data.green : &data.red, primary, width, height); > + igt_plane_set_fb(primary, fb); > + igt_fb_set_size(fb, primary, width, height); > igt_plane_set_size(primary, width, height); > } > > @@ -663,11 +683,11 @@ static void reset_i915_force_hdcp14(igt_output_t *output) > } > > static void > -test_fini(igt_output_t *output, enum igt_commit_style commit_style) > +test_fini(igt_output_t *output, igt_crtc_t *crtc, enum igt_commit_style commit_style) > { > igt_plane_t *primary; > > - test_cp_disable(output, commit_style); > + test_cp_disable(output, crtc, commit_style); > primary = igt_output_get_plane_type(output, > DRM_PLANE_TYPE_PRIMARY); > igt_plane_set_fb(primary, NULL); > @@ -739,7 +759,7 @@ test_content_protection(enum igt_commit_style commit_style, int content_type) > if (!intel_pipe_output_combo_valid(display)) > continue; > > - modeset_with_fb(output, commit_style); > + modeset_with_fb(output, crtc, commit_style); > if (data.is_force_hdcp14) > set_i915_force_hdcp14(output); > > @@ -753,7 +773,8 @@ test_content_protection(enum igt_commit_style commit_style, int content_type) > if (data.is_force_hdcp14) > reset_i915_force_hdcp14(output); > > - test_fini(output, commit_style); > + test_fini(output, crtc, commit_style); > + > /* > * Testing a output with a pipe is enough for HDCP > * testing. No ROI in testing the connector with other > @@ -846,8 +867,11 @@ test_mst_cp_enable_with_retry(igt_output_t *hdcp_mst_output[], int valid_outputs > if (!ret || retries) > igt_debug("Retry %d/3\n", 3 - retries); > > - for (i = 0; i < valid_outputs; i++) > - prepare_modeset_on_mst_output(hdcp_mst_output[i], ret); > + for (i = 0; i < valid_outputs; i++) { > + igt_crtc_t *crtc = output_get_driving_crtc_assert(hdcp_mst_output[i]); > + > + prepare_modeset_on_mst_output(hdcp_mst_output[i], crtc, ret); > + } > > igt_display_commit2(display, COMMIT_ATOMIC); > } while (retries && !ret); > @@ -869,6 +893,7 @@ test_content_protection_mst(int content_type) > igt_crtc_t *crtc; > bool pipe_found; > igt_output_t *hdcp_mst_output[IGT_MAX_PIPES]; > + drmModeModeInfo *mode; > > for_each_crtc(display, crtc) > max_pipe++; > @@ -889,7 +914,34 @@ test_content_protection_mst(int content_type) > igt_assert_f(pipe_found, "No valid pipe found for %s\n", output->name); > > igt_output_set_crtc(output, crtc); > - prepare_modeset_on_mst_output(output, false); > + > + mode = igt_output_get_mode(output); > + > + /* > + * Check if framebuffers already exist for this crtc from create_fbs(). > + * Since non-MST tests run first and share the same data.fbs[] array, > + * the existing FB may have a different resolution than this MST output > + * requires. If so, properly detach planes, remove old FBs, and recreate > + * with the correct dimensions for this MST output. > + */ > + if (data.fbs[crtc->crtc_index].red.fb_id) { > + igt_plane_t *primary = igt_output_get_plane_type(output, > + DRM_PLANE_TYPE_PRIMARY); > + > + igt_plane_set_fb(primary, NULL); > + igt_display_commit2(display, COMMIT_ATOMIC); > + igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].red); > + igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].green); > + } > + > + igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, > + 1.f, 0.f, 0.f, &data.fbs[crtc->crtc_index].red); > + igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, > + 0.f, 1.f, 0.f, &data.fbs[crtc->crtc_index].green); > + Do we really need this recreation here before we even tried 'igt_override_all_active_output_modes_to_fit_bw'? Because I'm thinking that the mode we get here should be the same as we got earlier in the create_fbs? Regards, Karthik.B.S > + prepare_modeset_on_mst_output(output, crtc, false); > dp_mst_outputs++; > if (output_hdcp_capable(output, content_type)) > hdcp_mst_output[valid_outputs++] = output; > @@ -905,9 +957,31 @@ test_content_protection_mst(int content_type) > bool found = igt_override_all_active_output_modes_to_fit_bw(display); > igt_require_f(found, "No valid mode combo found for MST modeset\n"); > > - for (count = 0; count < valid_outputs; count++) > - prepare_modeset_on_mst_output(hdcp_mst_output[count], false); > + /* Detach planes before removing framebuffers */ > + for (count = 0; count < valid_outputs; count++) { > + crtc = output_get_driving_crtc_assert(hdcp_mst_output[count]); > + prepare_modeset_on_mst_output(hdcp_mst_output[count], crtc, false); > + } > + igt_display_commit2(display, COMMIT_ATOMIC); > + > + /* Need to re-prepare after mode override */ > + for (count = 0; count < valid_outputs; count++) { > + crtc = output_get_driving_crtc_assert(hdcp_mst_output[count]); > + > + igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].red); > + igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].green); > + > + mode = igt_output_get_mode(hdcp_mst_output[count]); > + > + igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, > + 1.f, 0.f, 0.f, &data.fbs[crtc->crtc_index].red); > + igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, > + 0.f, 1.f, 0.f, &data.fbs[crtc->crtc_index].green); > > + prepare_modeset_on_mst_output(hdcp_mst_output[count], crtc, false); > + } > ret = igt_display_try_commit2(display, COMMIT_ATOMIC); > igt_require_f(ret == 0, "Commit failure during MST modeset\n"); > } > @@ -933,8 +1007,9 @@ test_content_protection_mst(int content_type) > /* > * Verify if CP is still enabled on other outputs by disabling CP on the first output. > */ > + crtc = output_get_driving_crtc_assert(hdcp_mst_output[0]); > igt_debug("CP Prop being UNDESIRED on %s\n", hdcp_mst_output[0]->name); > - test_cp_disable(hdcp_mst_output[0], COMMIT_ATOMIC); > + test_cp_disable(hdcp_mst_output[0], crtc, COMMIT_ATOMIC); > > /* CP is expected to be still enabled on other outputs*/ > for (i = 1; i < valid_outputs; i++) { > @@ -945,13 +1020,26 @@ test_content_protection_mst(int content_type) > > if (data.cp_tests & CP_LIC) > test_cp_lic_on_mst(hdcp_mst_output, valid_outputs, 1); > -} > > + /* Detach planes before removing framebuffers */ > + for (count = 0; count < valid_outputs; count++) { > + crtc = output_get_driving_crtc_assert(hdcp_mst_output[count]); > + prepare_modeset_on_mst_output(hdcp_mst_output[count], crtc, false); > + } > + igt_display_commit2(display, COMMIT_ATOMIC); > + > + for (count = 0; count < valid_outputs; count++) { > + crtc = output_get_driving_crtc_assert(hdcp_mst_output[count]); > + igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].red); > + igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].green); > + } > +} > > static void test_content_protection_cleanup(void) > { > igt_display_t *display = &data.display; > igt_output_t *output; > + igt_crtc_t *crtc; > uint64_t val; > > for_each_connected_output(display, output) { > @@ -963,34 +1051,56 @@ static void test_content_protection_cleanup(void) > if (val == CP_UNDESIRED) > continue; > > + crtc = igt_output_get_driving_crtc(output); > + if (!crtc) > + continue; > + > igt_info("CP Prop being UNDESIRED on %s\n", output->name); > - test_cp_disable(output, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); > + test_cp_disable(output, crtc, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); > } > - > - igt_remove_fb(data.drm_fd, &data.red); > - igt_remove_fb(data.drm_fd, &data.green); > } > > static void create_fbs(void) > { > - uint16_t width = 0, height = 0; > drmModeModeInfo *mode; > igt_output_t *output; > + igt_crtc_t *crtc; > > + /* Create framebuffers for each connected output's pipe */ > for_each_connected_output(&data.display, output) { > mode = igt_output_get_mode(output); > igt_assert(mode); > > - width = max(width, mode->hdisplay); > - height = max(height, mode->vdisplay); > + /* Find a valid crtc for this output */ > + for_each_crtc(&data.display, crtc) { > + if (!igt_crtc_connector_valid(crtc, output)) > + continue; > + > + /* Skip if already created for this crtc */ > + if (data.fbs[crtc->crtc_index].red.fb_id) > + continue; > + > + igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, > + 1.f, 0.f, 0.f, &data.fbs[crtc->crtc_index].red); > + igt_create_color_fb(data.drm_fd, mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, > + 0.f, 1.f, 0.f, &data.fbs[crtc->crtc_index].green); > + break; > + } > } > +} > > - igt_create_color_fb(data.drm_fd, width, height, > - DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, > - 1.f, 0.f, 0.f, &data.red); > - igt_create_color_fb(data.drm_fd, width, height, > - DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, > - 0.f, 1.f, 0.f, &data.green); > +static void remove_fbs(void) > +{ > + igt_crtc_t *crtc; > + > + for_each_crtc(&data.display, crtc) { > + if (data.fbs[crtc->crtc_index].red.fb_id) > + igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].red); > + if (data.fbs[crtc->crtc_index].green.fb_id) > + igt_remove_fb(data.drm_fd, &data.fbs[crtc->crtc_index].green); > + } > } > > static const struct { > @@ -1155,9 +1265,18 @@ static const struct { > int igt_main() > { > igt_fixture() { > + igt_crtc_t *crtc; > + > data.drm_fd = drm_open_driver_master(DRIVER_ANY); > igt_display_require(&data.display, data.drm_fd); > igt_display_require_output(&data.display); > + > + /* Ensure all CRTCs can be indexed within our framebuffer array */ > + for_each_crtc(&data.display, crtc) > + igt_assert_f(crtc->crtc_index < IGT_MAX_PIPES, > + "crtc_index %u exceeds IGT_MAX_PIPES %u\n", > + crtc->crtc_index, IGT_MAX_PIPES); > + > create_fbs(); > } > > @@ -1216,6 +1335,7 @@ int igt_main() > > igt_fixture() { > test_content_protection_cleanup(); > + remove_fbs(); > igt_display_fini(&data.display); > drm_close_driver(data.drm_fd); > } ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management 2026-03-26 3:26 ` [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Karthik B S @ 2026-03-26 16:25 ` Jason-JH Lin (林睿祥) 0 siblings, 0 replies; 7+ messages in thread From: Jason-JH Lin (林睿祥) @ 2026-03-26 16:25 UTC (permalink / raw) To: juhapekka.heikkila@gmail.com, igt-dev@lists.freedesktop.org, bhanuprakash.modem@gmail.com, karthik.b.s@intel.com, swati2.sharma@intel.com, kamil.konieczny@linux.intel.com, fshao@chromium.org Cc: markyacoub@chromium.org, jani.nikula@intel.com, Paul-pl Chen (陳柏霖), Nancy Lin (林欣螢), Project_Global_Chrome_Upstream_Group, Singo Chang (張興國), gildekel@google.com [snip] > > @@ -869,6 +893,7 @@ test_content_protection_mst(int content_type) > > igt_crtc_t *crtc; > > bool pipe_found; > > igt_output_t *hdcp_mst_output[IGT_MAX_PIPES]; > > + drmModeModeInfo *mode; > > > > for_each_crtc(display, crtc) > > max_pipe++; > > @@ -889,7 +914,34 @@ test_content_protection_mst(int content_type) > > igt_assert_f(pipe_found, "No valid pipe found for > > %s\n", output->name); > > > > igt_output_set_crtc(output, crtc); > > - prepare_modeset_on_mst_output(output, false); > > + > > + mode = igt_output_get_mode(output); > > + > > + /* > > + * Check if framebuffers already exist for this > > crtc from create_fbs(). > > + * Since non-MST tests run first and share the > > same data.fbs[] array, > > + * the existing FB may have a different resolution > > than this MST output > > + * requires. If so, properly detach planes, remove > > old FBs, and recreate > > + * with the correct dimensions for this MST > > output. > > + */ > > + if (data.fbs[crtc->crtc_index].red.fb_id) { > > + igt_plane_t *primary = > > igt_output_get_plane_type(output, > > + > > DRM_PLANE_TYPE_PRIMARY); > > + > > + igt_plane_set_fb(primary, NULL); > > + igt_display_commit2(display, > > COMMIT_ATOMIC); > > + igt_remove_fb(data.drm_fd, &data.fbs[crtc- > > >crtc_index].red); > > + igt_remove_fb(data.drm_fd, &data.fbs[crtc- > > >crtc_index].green); > > + } > > + > > + igt_create_color_fb(data.drm_fd, mode->hdisplay, > > mode->vdisplay, > > + DRM_FORMAT_XRGB8888, > > DRM_FORMAT_MOD_LINEAR, > > + 1.f, 0.f, 0.f, &data.fbs[crtc- > > >crtc_index].red); > > + igt_create_color_fb(data.drm_fd, mode->hdisplay, > > mode->vdisplay, > > + DRM_FORMAT_XRGB8888, > > DRM_FORMAT_MOD_LINEAR, > > + 0.f, 1.f, 0.f, &data.fbs[crtc- > > >crtc_index].green); > > + > > Do we really need this recreation here before we even tried > 'igt_override_all_active_output_modes_to_fit_bw'? Because I'm > thinking > that the mode we get here should be the same as we got earlier in the > create_fbs? > Hi Karthik, Thank you for the review! You're absolutely correct. The framebuffer recreation here is unnecessary since the FB created in create_fbs() already has the correct dimensions for this output/CRTC combination. Although we will test non-MST before MST test case, the physical output connection and CRTC relationship won't change until here. I will fix this in the next version by removing this and directly using the existing framebuffers. Regards, Jason-JH Lin > Regards, > Karthik.B.S ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-03-26 16:25 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-03-17 16:01 [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Jason-JH Lin 2026-03-17 23:47 ` ✓ Xe.CI.BAT: success for tests/kms_content_protection: Optimize framebuffer management (rev2) Patchwork 2026-03-18 0:02 ` ✓ i915.CI.BAT: " Patchwork 2026-03-18 7:02 ` [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Fei Shao 2026-03-19 11:55 ` ✗ Xe.CI.FULL: failure for tests/kms_content_protection: Optimize framebuffer management (rev2) Patchwork 2026-03-26 3:26 ` [PATCH i-g-t v3] tests/kms_content_protection: Optimize framebuffer management Karthik B S 2026-03-26 16:25 ` Jason-JH Lin (林睿祥)
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox