* [PATCH i-g-t 0/2] tests/intel/kms_tbt: Add DP tunneling validation tests
@ 2026-05-11 5:43 Kunal Joshi
2026-05-11 5:43 ` [PATCH i-g-t 1/2] lib/igt_connector_helper: Add DRM connector helpers using libdisplay-info Kunal Joshi
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Kunal Joshi @ 2026-05-11 5:43 UTC (permalink / raw)
To: igt-dev; +Cc: Kunal Joshi
Add an IGT test binary (kms_tbt) that validates the DP tunneling
debugfs ABI exposed by drm/display/dp_tunnel and consumed by
i915 / xe. Pairs with the kernel DP-tunnel debugfs RFC series.
Patch 1 adds a connector-enumeration helper backed by
libdisplay-info for look-up by EDID serial / MST PATH across
re-probes, plus clock-based mode-selection utilities.
Patch 2 is the kms_tbt test: 18 single-display subtests and 9
multi-display / MST subtests covering BWA toggle, bw_limit cap
injection, suspend/resume, and mode filtering.
Below link points to corresponding KMD patch series
https://patchwork.freedesktop.org/series/166289/
Kunal Joshi (2):
lib/igt_connector_helper: Add DRM connector helpers using
libdisplay-info
tests/intel/kms_tbt: Add DP tunneling validation tests
lib/igt_connector_helper.c | 525 ++++++++
lib/igt_connector_helper.h | 45 +
lib/meson.build | 5 +
meson.build | 3 +
tests/intel/kms_tbt.c | 2583 ++++++++++++++++++++++++++++++++++++
tests/meson.build | 5 +
6 files changed, 3166 insertions(+)
create mode 100644 lib/igt_connector_helper.c
create mode 100644 lib/igt_connector_helper.h
create mode 100644 tests/intel/kms_tbt.c
--
2.25.1
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH i-g-t 1/2] lib/igt_connector_helper: Add DRM connector helpers using libdisplay-info 2026-05-11 5:43 [PATCH i-g-t 0/2] tests/intel/kms_tbt: Add DP tunneling validation tests Kunal Joshi @ 2026-05-11 5:43 ` Kunal Joshi 2026-05-11 5:43 ` [PATCH i-g-t 2/2] tests/intel/kms_tbt: Add DP tunneling validation tests Kunal Joshi ` (4 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: Kunal Joshi @ 2026-05-11 5:43 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi, Simon Ser, Jani Nikula, Karthik B S The upcoming DP tunneling tests need to look up connectors by EDID serial or MST PATH across re-probes such as suspend/resume, and select modes by pixel clock rather than resolution. Neither capability exists in the current IGT helper set. Add a small connector-enumeration layer backed by libdisplay-info with look-up-by-name, by-PATH, and by-serial helpers, plus five mode/output-selection utilities (lowest/highest clock, preferred, mode-in-list, output-by-id). The dependency is optional; when missing the helper is simply not built. Cc: Simon Ser <contact@emersion.fr> Cc: Jani Nikula <jani.nikula@intel.com> Cc: Karthik B S <karthik.b.s@intel.com> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com> --- lib/igt_connector_helper.c | 525 +++++++++++++++++++++++++++++++++++++ lib/igt_connector_helper.h | 45 ++++ lib/meson.build | 5 + meson.build | 3 + 4 files changed, 578 insertions(+) create mode 100644 lib/igt_connector_helper.c create mode 100644 lib/igt_connector_helper.h diff --git a/lib/igt_connector_helper.c b/lib/igt_connector_helper.c new file mode 100644 index 000000000..cd10b2e91 --- /dev/null +++ b/lib/igt_connector_helper.c @@ -0,0 +1,525 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright © 2026 Intel Corporation + */ + +/** + * SECTION:igt_connector_helper + * @short_description: Generic DRM connector helpers + * @title: Connector Helper + * @include: igt_connector_helper.h + * + * Helpers for DRM connector enumeration, lookup by name / MST PATH / + * EDID serial, and post-hotplug reprobing. EDID parsing is delegated to + * libdisplay-info (https://gitlab.freedesktop.org/emersion/libdisplay-info). + */ + +#include <stdlib.h> +#include <string.h> + +#include <libdisplay-info/info.h> +#include <xf86drm.h> +#include <xf86drmMode.h> + +#include "igt_core.h" +#include "igt_kms.h" +#include "igt_connector_helper.h" + +#define IGT_CONNECTOR_MAX_PROBE 64 + +/* + * Best-effort serial extraction via libdisplay-info. + * + * di_info_get_serial() returns a malloc'd string built from the EDID + * 0xFF descriptor when present, falling back to the 32-bit header + * serial number rendered as decimal. NULL means the EDID is unparsable + * or contains no serial information at all. + */ +static void connector_serial_from_edid(const void *edid_data, size_t edid_size, + char *serial, size_t serial_size) +{ + struct di_info *info; + char *got; + + serial[0] = '\0'; + + info = di_info_parse_edid(edid_data, edid_size); + if (!info) + return; + + got = di_info_get_serial(info); + if (got) { + snprintf(serial, serial_size, "%s", got); + free(got); + } + + di_info_destroy(info); +} + +/** + * igt_connector_get_connected: + * @drm_fd: DRM file descriptor + * @connectors: array to store connector IDs; must be valid if @max_connectors > 0 + * @max_connectors: maximum number of connectors to store + * + * Walks all DRM connectors and stores the IDs of those currently connected. + * Scanning stops once @max_connectors IDs have been collected; later + * connectors are not examined. + * + * Returns: number of connector IDs written to @connectors, capped by + * @max_connectors. + */ +int igt_connector_get_connected(int drm_fd, uint32_t *connectors, + int max_connectors) +{ + drmModeRes *res; + drmModeConnector *conn; + int count = 0; + int i; + + igt_assert(max_connectors >= 0); + if (max_connectors > 0) + igt_assert(connectors); + + res = drmModeGetResources(drm_fd); + if (!res) + return 0; + + for (i = 0; i < res->count_connectors && count < max_connectors; i++) { + conn = drmModeGetConnector(drm_fd, res->connectors[i]); + if (!conn) + continue; + + if (conn->connection == DRM_MODE_CONNECTED) + connectors[count++] = conn->connector_id; + + drmModeFreeConnector(conn); + } + + drmModeFreeResources(res); + return count; +} + +/** + * igt_connector_get_info: + * @drm_fd: DRM file descriptor + * @connector_id: connector ID + * @name: buffer for connector name (mandatory) + * @name_size: size of @name; must be > 0 + * @serial: buffer for EDID-derived serial (mandatory) + * @serial_size: size of @serial; must be > 1 + * @path: buffer for MST PATH property (optional, may be %NULL) + * @path_size: size of @path buffer + * + * Fills connector name, MST PATH and EDID-derived serial for a connector. + * @name is always filled when the connector is found and connected. + * @serial is filled by libdisplay-info from the EDID blob; left empty if no + * EDID is attached or the EDID has no serial information. @path is filled + * only if requested and the PATH property exists. + * + * Success means the connector object exists and is currently connected. + * @serial and @path are best-effort and may still be empty on success. + * + * Returns: %true if the connector was found and is connected, %false + * otherwise. + */ +bool igt_connector_get_info(int drm_fd, uint32_t connector_id, + char *name, size_t name_size, + char *serial, size_t serial_size, + char *path, size_t path_size) +{ + drmModeConnector *conn; + drmModePropertyBlobPtr edid_blob = NULL; + drmModePropertyPtr prop; + uint64_t blob_id = 0; + int i; + + igt_assert(name && name_size > 0); + igt_assert(serial && serial_size > 1); + igt_assert(!path || path_size > 0); + + name[0] = '\0'; + serial[0] = '\0'; + if (path) + path[0] = '\0'; + + conn = drmModeGetConnector(drm_fd, connector_id); + if (!conn) + return false; + + if (conn->connection != DRM_MODE_CONNECTED) { + drmModeFreeConnector(conn); + return false; + } + + snprintf(name, name_size, "%s-%d", + kmstest_connector_type_str(conn->connector_type), + conn->connector_type_id); + + for (i = 0; i < conn->count_props; i++) { + prop = drmModeGetProperty(drm_fd, conn->props[i]); + if (!prop) + continue; + + if (strcmp(prop->name, "EDID") == 0) + blob_id = conn->prop_values[i]; + + drmModeFreeProperty(prop); + if (blob_id) + break; + } + + if (path) { + drmModePropertyBlobPtr path_blob; + + path_blob = kmstest_get_path_blob(drm_fd, connector_id); + if (path_blob) { + snprintf(path, path_size, "%s", + (const char *)path_blob->data); + drmModeFreePropertyBlob(path_blob); + } + } + + drmModeFreeConnector(conn); + + if (blob_id) { + edid_blob = drmModeGetPropertyBlob(drm_fd, blob_id); + if (edid_blob) { + connector_serial_from_edid(edid_blob->data, + edid_blob->length, + serial, serial_size); + drmModeFreePropertyBlob(edid_blob); + } + } + + return true; +} + +/** + * igt_connector_find_by_path: + * @drm_fd: DRM file descriptor + * @path: MST PATH property value to match + * @connector_id: output for connector ID (filled on success) + * + * Finds the currently connected connector whose PATH property matches @path + * (exact string comparison). PATH is the preferred stable identity for MST + * connectors; connector IDs may change across hotplug events. + * + * Returns: %true if a matching connected connector was found. + */ +bool igt_connector_find_by_path(int drm_fd, const char *path, + uint32_t *connector_id) +{ + drmModeRes *res; + drmModeConnector *conn; + drmModePropertyBlobPtr path_blob; + bool found = false; + int i; + + if (!path || !connector_id) + return false; + + res = drmModeGetResources(drm_fd); + if (!res) + return false; + + for (i = 0; i < res->count_connectors && !found; i++) { + conn = drmModeGetConnector(drm_fd, res->connectors[i]); + if (!conn) + continue; + + if (conn->connection == DRM_MODE_CONNECTED) { + path_blob = kmstest_get_path_blob(drm_fd, + conn->connector_id); + if (path_blob) { + const char *blob_str = path_blob->data; + + /* + * The kernel NUL-terminates the PATH blob, + * but be defensive and bound the compare by + * the blob length so a future kernel change + * cannot drive us off the end of the buffer. + */ + if (path_blob->length > 0 && + strnlen(blob_str, path_blob->length) < + path_blob->length && + strcmp(blob_str, path) == 0) { + *connector_id = conn->connector_id; + found = true; + } + drmModeFreePropertyBlob(path_blob); + } + } + + drmModeFreeConnector(conn); + } + + drmModeFreeResources(res); + + if (found) + igt_debug("igt_connector: Found connector %u for path '%s'\n", + *connector_id, path); + + return found; +} + +/** + * igt_connector_find_by_name: + * @drm_fd: DRM file descriptor + * @name: connector name to match (e.g. "DP-6") + * @connector_id: output for connector ID (filled on success) + * + * Name-based lookup helper. Prefer igt_connector_find_by_path() or + * igt_connector_find_by_serial() for MST connectors, since connector + * names and IDs may change across hotplug events. + * + * Returns: %true if a matching connected connector was found. + */ +bool igt_connector_find_by_name(int drm_fd, const char *name, + uint32_t *connector_id) +{ + drmModeRes *res; + drmModeConnector *conn; + char conn_name[IGT_CONNECTOR_NAME_MAX]; + bool found = false; + int i; + + if (!name || !connector_id) + return false; + + res = drmModeGetResources(drm_fd); + if (!res) + return false; + + for (i = 0; i < res->count_connectors && !found; i++) { + conn = drmModeGetConnector(drm_fd, res->connectors[i]); + if (!conn) + continue; + + snprintf(conn_name, sizeof(conn_name), "%s-%d", + kmstest_connector_type_str(conn->connector_type), + conn->connector_type_id); + + if (strcmp(conn_name, name) == 0 && + conn->connection == DRM_MODE_CONNECTED) { + *connector_id = conn->connector_id; + found = true; + } + + drmModeFreeConnector(conn); + } + + drmModeFreeResources(res); + + if (found) + igt_debug("igt_connector: Found connector %u for name '%s'\n", + *connector_id, name); + + return found; +} + +/** + * igt_connector_find_by_serial: + * @drm_fd: DRM file descriptor + * @serial: EDID-derived serial string to match + * @connector_id: output for connector ID (filled on success) + * + * Finds a currently connected connector whose EDID serial matches @serial. + * EDID serial is the most stable identifier for a physical display and + * survives hotplug / suspend-resume connector re-enumeration. + * + * Returns: %true if a matching connected connector was found. + */ +bool igt_connector_find_by_serial(int drm_fd, const char *serial, + uint32_t *connector_id) +{ + uint32_t connectors[IGT_CONNECTOR_MAX_PROBE]; + char name[IGT_CONNECTOR_NAME_MAX]; + char found_serial[IGT_CONNECTOR_SERIAL_MAX]; + int n, i; + + if (!serial || !serial[0] || !connector_id) + return false; + + n = igt_connector_get_connected(drm_fd, connectors, + IGT_CONNECTOR_MAX_PROBE); + for (i = 0; i < n; i++) { + if (!igt_connector_get_info(drm_fd, connectors[i], + name, sizeof(name), + found_serial, sizeof(found_serial), + NULL, 0)) + continue; + + if (found_serial[0] && strcmp(found_serial, serial) == 0) { + *connector_id = connectors[i]; + igt_debug("igt_connector: Found connector %u (%s) for serial '%s'\n", + *connector_id, name, serial); + return true; + } + } + return false; +} + +/** + * igt_connector_reprobe_all: + * @drm_fd: DRM file descriptor + * + * Issues a GETCONNECTOR ioctl for every connector, asking the kernel for + * fresh state. This refreshes the cached connection status and MST topology + * visibility from the kernel's perspective, but does not synthesise a + * hot-plug event nor guarantee a full hardware reprobe across all driver + * paths. + */ +void igt_connector_reprobe_all(int drm_fd) +{ + drmModeRes *res; + drmModeConnector *conn; + int i; + + res = drmModeGetResources(drm_fd); + if (!res) + return; + + for (i = 0; i < res->count_connectors; i++) { + conn = drmModeGetConnector(drm_fd, res->connectors[i]); + if (conn) + drmModeFreeConnector(conn); + } + + drmModeFreeResources(res); +} + +/** + * igt_connector_find_lowest_clock_mode: + * @output: Connected output to inspect. + * @out: Filled with the chosen mode on success. + * + * Picks the mode with the smallest pixel clock from @output's current + * connector mode list. Useful for testing fallback paths that need a + * mode that consumes minimal bandwidth. + * + * Returns: true on success, false if the connector has no modes. + */ +bool igt_connector_find_lowest_clock_mode(igt_output_t *output, + drmModeModeInfo *out) +{ + drmModeConnector *c = output->config.connector; + int i, best = -1; + + for (i = 0; i < c->count_modes; i++) { + if (best < 0 || c->modes[i].clock < c->modes[best].clock) + best = i; + } + if (best < 0) + return false; + + *out = c->modes[best]; + return true; +} + +/** + * igt_connector_find_highest_clock_mode_in: + * @conn: Freshly probed connector to inspect. + * @out: Filled with the chosen mode on success. + * + * Picks the mode with the largest pixel clock from @conn's mode list. + * Operates on a freshly fetched #drmModeConnector rather than an + * #igt_output_t so callers can use it after #drmModeGetConnector to + * inspect a kernel-filtered list (e.g. after writing a bandwidth cap). + * + * Returns: true on success, false if @conn has no modes. + */ +bool igt_connector_find_highest_clock_mode_in(const drmModeConnector *conn, + drmModeModeInfo *out) +{ + int i, best = -1; + + for (i = 0; i < conn->count_modes; i++) { + if (best < 0 || conn->modes[i].clock > conn->modes[best].clock) + best = i; + } + if (best < 0) + return false; + + *out = conn->modes[best]; + return true; +} + +/** + * igt_connector_find_preferred_mode: + * @output: Connected output to inspect. + * @out: Filled with the chosen mode on success. + * + * Picks the first mode flagged %DRM_MODE_TYPE_PREFERRED on @output. Falls + * back to the first mode in the list when no preferred mode is present. + * Unlike #kmstest_get_connector_default_mode this performs no environment + * variable overrides, giving deterministic behaviour for tests that need + * to reason about which mode they will pick. + * + * Returns: true on success, false if the connector has no modes. + */ +bool igt_connector_find_preferred_mode(igt_output_t *output, + drmModeModeInfo *out) +{ + drmModeConnector *c = output->config.connector; + int i; + + for (i = 0; i < c->count_modes; i++) { + if (c->modes[i].type & DRM_MODE_TYPE_PREFERRED) { + *out = c->modes[i]; + return true; + } + } + if (c->count_modes > 0) { + *out = c->modes[0]; + return true; + } + return false; +} + +/** + * igt_connector_mode_in_list: + * @conn: Connector whose mode list to search. + * @mode: Mode to look up. + * + * Returns true if a mode matching @mode in pixel clock and active region + * (hdisplay, vdisplay) is present in @conn's current mode list. Useful + * for verifying whether a previously cached mode survives a kernel-side + * mode filter (e.g. after writing a bandwidth cap). + */ +bool igt_connector_mode_in_list(const drmModeConnector *conn, + const drmModeModeInfo *mode) +{ + int i; + + for (i = 0; i < conn->count_modes; i++) { + if (conn->modes[i].clock == mode->clock && + conn->modes[i].hdisplay == mode->hdisplay && + conn->modes[i].vdisplay == mode->vdisplay) + return true; + } + return false; +} + +/** + * igt_connector_find_output_by_id: + * @display: Initialised display containing the outputs to search. + * @connector_id: DRM connector ID to look for. + * + * Walks the connected outputs of @display and returns the one whose DRM + * connector ID matches @connector_id, or %NULL if no such output exists. + * + * Returns: matching #igt_output_t pointer or %NULL. + */ +igt_output_t *igt_connector_find_output_by_id(igt_display_t *display, + uint32_t connector_id) +{ + igt_output_t *output; + + for_each_connected_output(display, output) { + if (output->config.connector->connector_id == connector_id) + return output; + } + + return NULL; +} diff --git a/lib/igt_connector_helper.h b/lib/igt_connector_helper.h new file mode 100644 index 000000000..3e2ef7e35 --- /dev/null +++ b/lib/igt_connector_helper.h @@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2026 Intel Corporation + */ + +#ifndef IGT_CONNECTOR_HELPER_H +#define IGT_CONNECTOR_HELPER_H + +#include <stdbool.h> +#include <stddef.h> +#include <stdint.h> + +#include <xf86drmMode.h> + +#include "igt_kms.h" + +#define IGT_CONNECTOR_NAME_MAX 64 +#define IGT_CONNECTOR_SERIAL_MAX 64 + +int igt_connector_get_connected(int drm_fd, uint32_t *connectors, + int max_connectors); +bool igt_connector_get_info(int drm_fd, uint32_t connector_id, + char *name, size_t name_size, + char *serial, size_t serial_size, + char *path, size_t path_size); +bool igt_connector_find_by_path(int drm_fd, const char *path, + uint32_t *connector_id); +bool igt_connector_find_by_name(int drm_fd, const char *name, + uint32_t *connector_id); +bool igt_connector_find_by_serial(int drm_fd, const char *serial, + uint32_t *connector_id); +void igt_connector_reprobe_all(int drm_fd); + +bool igt_connector_find_lowest_clock_mode(igt_output_t *output, + drmModeModeInfo *out); +bool igt_connector_find_highest_clock_mode_in(const drmModeConnector *conn, + drmModeModeInfo *out); +bool igt_connector_find_preferred_mode(igt_output_t *output, + drmModeModeInfo *out); +bool igt_connector_mode_in_list(const drmModeConnector *conn, + const drmModeModeInfo *mode); +igt_output_t *igt_connector_find_output_by_id(igt_display_t *display, + uint32_t connector_id); + +#endif /* IGT_CONNECTOR_HELPER_H */ diff --git a/lib/meson.build b/lib/meson.build index a82aa27dc..46d007eef 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -156,6 +156,11 @@ lib_deps = [ inc = [ inc, include_directories('vendor') ] +if libdisplay_info.found() + lib_deps += libdisplay_info + lib_sources += 'igt_connector_helper.c' +endif + if libdrm_nouveau.found() lib_deps += libdrm_nouveau lib_sources += [ diff --git a/meson.build b/meson.build index 79051be21..0e06139b2 100644 --- a/meson.build +++ b/meson.build @@ -166,6 +166,9 @@ libpci = dependency('libpci', required : true) libudev = dependency('libudev', required : true) glib = dependency('glib-2.0', required : true) +libdisplay_info = dependency('libdisplay-info', required : false) +build_info += 'libdisplay-info: @0@'.format(libdisplay_info.found()) + xmlrpc = dependency('xmlrpc', required : false) xmlrpc_util = dependency('xmlrpc_util', required : false) xmlrpc_client = dependency('xmlrpc_client', required : false) -- 2.25.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH i-g-t 2/2] tests/intel/kms_tbt: Add DP tunneling validation tests 2026-05-11 5:43 [PATCH i-g-t 0/2] tests/intel/kms_tbt: Add DP tunneling validation tests Kunal Joshi 2026-05-11 5:43 ` [PATCH i-g-t 1/2] lib/igt_connector_helper: Add DRM connector helpers using libdisplay-info Kunal Joshi @ 2026-05-11 5:43 ` Kunal Joshi 2026-05-12 0:14 ` ✓ i915.CI.BAT: success for " Patchwork ` (3 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: Kunal Joshi @ 2026-05-11 5:43 UTC (permalink / raw) To: igt-dev; +Cc: Kunal Joshi, Imre Deak, Karthik B S Add a kms_tbt test binary that exercises the DP tunneling debugfs ABI exposed by drm/display/dp_tunnel and the i915/xe usage of it. Cc: Imre Deak <imre.deak@intel.com> Cc: Karthik B S <karthik.b.s@intel.com> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com> --- tests/intel/kms_tbt.c | 2583 +++++++++++++++++++++++++++++++++++++++++ tests/meson.build | 5 + 2 files changed, 2588 insertions(+) create mode 100644 tests/intel/kms_tbt.c diff --git a/tests/intel/kms_tbt.c b/tests/intel/kms_tbt.c new file mode 100644 index 000000000..c879bbf53 --- /dev/null +++ b/tests/intel/kms_tbt.c @@ -0,0 +1,2583 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright © 2026 Intel Corporation + */ + +/** + * TEST: kms tbt + * Category: Display + * Description: Functional tests for i915 DP tunneling over USB4/Thunderbolt. + * Validates kernel behavior (BW allocation, mode fallback, + * suspend/resume, multi-stream accounting) using debugfs hooks. + * Driver requirement: i915, xe + * Mega feature: DP Tunneling + * + * SUBTEST: basic + * Description: A tunneled output exists, BWA is enabled and a modeset on its + * preferred mode allocates positive BW. Also asserts the tunnel + * DPRX max rate is at least the link's current max rate. + * + * SUBTEST: modeset-bw + * Description: Switching between modes correctly updates allocated BW both + * upward (low->high) and back to exactly the same value on a + * round-trip to the original mode. + * + * SUBTEST: disable-bw + * Description: Disabling a tunneled output releases its allocated BW to zero. + * + * SUBTEST: suspend + * Description: Tunnel state including BWA, allocated BW, DPRX rate and group + * ID is fully restored after a mem suspend/resume cycle. + * + * SUBTEST: limit-fallback + * Description: Setting bw_limit below the preferred mode's BW requirement + * filters the preferred mode from the connector list and + * allows a lower-clock fallback mode to modeset. + * + * SUBTEST: limit-boundary + * Description: BW limit at the mode's BW threshold keeps the mode in the + * connector list; one kB/s below removes it; clearing the cap + * restores the full mode list. + * + * SUBTEST: limit-suspend + * Description: bw_limit is reset to 0 across suspend/resume because the + * tunnel object is destroyed on suspend and re-created on resume. + * + * SUBTEST: bwa-re-enable + * Description: Disabling BWA reports allocated BW = -1 with the tunnel still + * alive and link parameters falling back to standard DPCD; + * re-enabling BWA + a fresh modeset restores both BW allocation + * and the original max link rate. + * + * SUBTEST: bwa-cycle + * Description: Ten rapid BWA disable/enable cycles do not corrupt the display + * or leak BW resources. + * + * SUBTEST: dual-bw-sum + * Description: Two SST tunnels in the same USB4 group report the same + * group_free BW (estimated - allocated) and group_free is + * non-negative. + * + * SUBTEST: dual-limit-isolation + * Description: bw_limit is per-tunnel-object, not per-group. With two SST + * tunnels sharing one USB4 group, a cap on tunnel A clips A's + * connector mode list and forces A to a lower-clock mode, while + * tunnel B's mode list and active mode are unchanged; B's + * allocation drift stays within one granularity step. + * + * SUBTEST: dual-bwa-disable + * Description: Disabling BWA on one SST tunnel in a shared USB4 group does + * not destroy the other tunnel's allocation; re-enable + fresh + * modeset restores the disabled tunnel's allocation. + * + * SUBTEST: mst-basic + * Description: Two MST connectors sharing one tunnel object report the same + * per-tunnel allocated BW, and that value is positive. + * + * SUBTEST: mst-modeset-bw + * Description: Aggregate allocation does not decrease when one MST stream's + * mode is raised from the lowest- to the preferred-clock mode. + * + * SUBTEST: mst-partial-disable + * Description: Disabling one MST stream leaves the tunnel alive; the residual + * allocation is positive and not larger than the two-stream + * allocation. + * + * SUBTEST: mst-suspend + * Description: MST tunnel survives suspend/resume; per the + * intel_dp_tunnel_resume() "TODO: Add support for MST" + * limitation the test accepts BW re-allocation on at least + * one of the two streams. + * + * SUBTEST: mst-limit-fallback + * Description: bw_limit on the shared MST tunnel forces both streams to fall + * back to lower-clock modes; aggregate BW remains positive and + * not greater than the pre-limit value. + * + * SUBTEST: mst-bwa-re-enable + * Description: Re-enabling BWA on an MST tunnel + fresh modeset restores + * allocation for all active streams to the pre-disable value. + */ + +#include <fcntl.h> +#include <stdlib.h> +#include <string.h> + +#include "igt.h" +#include "igt_connector_helper.h" +#include "igt_debugfs.h" +#include "igt_kms.h" +#include "igt_sysfs.h" +#include "intel/kms_mst_helper.h" + +#define TUNNEL_INFO_BUF_SIZE 2048 +/* + * Number of disable/enable cycles for the bwa-cycle subtest. Empirically + * tuned to be high enough to surface refcount/state-machine drift between + * driver and TBT host without pushing per-subtest runtime past CI budgets. + */ +#define BWA_CYCLE_COUNT 10 +#define MAX_CLEANUP_OUTPUTS 16 +#define BW_RETRY_TIMEOUT_MS 1000 +#define BW_RETRY_STEP_MS 50 + +/* + * Tunnel debugfs file names, attached per connector under + * /sys/kernel/debug/dri/<N>/<connector>/dp_tunnel/{info,bw_alloc_enable,bw_limit} + */ +#define TUNNEL_DBG_DIR "dp_tunnel" +#define TUNNEL_DBG_INFO "info" +#define TUNNEL_DBG_BW_ALLOC "bw_alloc_enable" +#define TUNNEL_DBG_BW_LIMIT "bw_limit" + +typedef struct { + int drm_fd; + uint32_t devid; + igt_display_t display; + igt_output_t *output; /* primary tunneled output */ + igt_output_t *output2; /* second tunneled output (dual-SST) */ + igt_output_t *mst_outputs[IGT_MAX_PIPES]; /* MST stream outputs */ + int n_mst_outputs; + /* + * Connector names whose dp_tunnel/ debugfs state must be reset + * (bw_limit=0, bw_alloc_enable=1) at process exit. Stored as + * names rather than igt_output_t * so the exit handler is safe + * after any igt_display_fini() / re-bind sequence (e.g. across + * suspend/resume re-enumeration). + */ + char cleanup_names[MAX_CLEANUP_OUTPUTS][IGT_CONNECTOR_NAME_MAX]; + int n_cleanup; +} data_t; + +/* + * Single live test instance per process; stashed in a global so the IGT + * exit handler (called with a signal-only argument) can find it. Set in + * the bootstrap fixture, never re-assigned after. + */ +static data_t *g_data; + +/* + * Open the per-connector dp_tunnel/ debugfs directory for @output. + * Returns an open fd, or -1 if the directory does not exist (no tunnel). + * Caller must close() the returned fd. + */ +static int tunnel_dbg_open_dir(int drm_fd, igt_output_t *output) +{ + int conn_dir, sub; + + conn_dir = igt_debugfs_connector_dir(drm_fd, output->name, O_RDONLY); + if (conn_dir < 0) + return -1; + + sub = openat(conn_dir, TUNNEL_DBG_DIR, O_RDONLY | O_DIRECTORY); + close(conn_dir); + return sub; +} + +/* forward declaration: defined further down once helpers are in place */ +static int read_tunnel_info(int drm_fd, igt_output_t *output, + char *buf, int size); + +static bool has_tunnel(int drm_fd, igt_output_t *output) +{ + char buf[TUNNEL_INFO_BUF_SIZE]; + int ret; + + ret = read_tunnel_info(drm_fd, output, buf, sizeof(buf)); + /* File must exist, be non-empty, and show an actual tunnel */ + return ret > 0 && strncmp(buf, "Tunnel:", 7) == 0; +} + +/* + * Parse an integer-valued line of the form " <field> <number>...\n" out of + * the multi-line tunnel info blob. The match is anchored to the start of a + * line so that a future field whose name is a substring of @field (e.g. an + * "Allocated BW limit:" line added next to "Allocated BW:") cannot + * mis-match. Returns -1 if the field is absent or malformed. + */ +static int parse_tunnel_field_int(const char *buf, const char *field) +{ + const char *loc = buf; + int val = -1; + size_t flen = strlen(field); + + while ((loc = strstr(loc, field)) != NULL) { + const char *line_start = loc; + + while (line_start > buf && line_start[-1] != '\n') + line_start--; + /* + * Accept the match only if @field appears at line start + * (after optional leading whitespace). + */ + while (line_start < loc && (*line_start == ' ' || + *line_start == '\t')) + line_start++; + if (line_start == loc) { + if (sscanf(loc + flen, "%d", &val) != 1) + return -1; + return val; + } + loc += flen; + } + return val; +} + +static void set_bw_limit(int drm_fd, igt_output_t *output, int limit_kbps) +{ + char buf[64]; + int dir, ret; + + dir = tunnel_dbg_open_dir(drm_fd, output); + igt_assert_fd(dir); + snprintf(buf, sizeof(buf), "%d", limit_kbps); + ret = igt_sysfs_write(dir, TUNNEL_DBG_BW_LIMIT, buf, strlen(buf)); + igt_assert_f(ret == strlen(buf), + "Failed to write bw_limit=%d (ret=%d): %m\n", + limit_kbps, ret); + close(dir); +} + +static int get_bw_limit(int drm_fd, igt_output_t *output) +{ + char buf[64] = {}; + int dir; + + dir = tunnel_dbg_open_dir(drm_fd, output); + igt_assert_fd(dir); + igt_debugfs_simple_read(dir, TUNNEL_DBG_BW_LIMIT, buf, sizeof(buf)); + close(dir); + return atoi(buf); +} + +static void set_bwa_enabled(int drm_fd, igt_output_t *output, bool enable) +{ + int dir, ret; + + dir = tunnel_dbg_open_dir(drm_fd, output); + igt_assert_fd(dir); + ret = igt_sysfs_write(dir, TUNNEL_DBG_BW_ALLOC, + enable ? "1" : "0", 1); + igt_assert_f(ret == 1, + "Failed to write bw_alloc_enable=%d (ret=%d): %m\n", + enable, ret); + close(dir); +} + +static bool get_bwa_enabled(int drm_fd, igt_output_t *output) +{ + char buf[64] = {}; + int dir; + + dir = tunnel_dbg_open_dir(drm_fd, output); + igt_assert_fd(dir); + igt_debugfs_simple_read(dir, TUNNEL_DBG_BW_ALLOC, buf, sizeof(buf)); + close(dir); + /* + * The kernel writer is round-trippable and prints "0\n" or "1\n"; + * older out-of-tree kernels printed "enabled\n" / "disabled\n". + * Accept both formats by anchoring on the leading character. + */ + if (buf[0] == '0' || buf[0] == '1') + return buf[0] == '1'; + return strncmp(buf, "enabled", 7) == 0; +} + +/* + * Non-asserting reset of bw_limit=0 and bwa_enable=1 for the connector + * @name. Safe to call from exit handlers and cleanup paths where + * igt_assert would abort the process. Silently skips if the connector's + * dp_tunnel/ debugfs directory does not exist (e.g. the connector was + * re-enumerated or the tunnel is gone). + */ +static void try_reset_by_name(int drm_fd, const char *name) +{ + int conn_dir, dir; + + if (!name || !name[0]) + return; + + conn_dir = igt_debugfs_connector_dir(drm_fd, (char *)name, O_RDONLY); + if (conn_dir < 0) + return; + dir = openat(conn_dir, TUNNEL_DBG_DIR, O_RDONLY | O_DIRECTORY); + close(conn_dir); + if (dir < 0) { + igt_debug("kms_tbt: cleanup: no dp_tunnel/ for %s\n", name); + return; + } + + /* Best effort: ignore errors, we are in a cleanup/exit path */ + igt_sysfs_write(dir, TUNNEL_DBG_BW_LIMIT, "0", 1); + igt_sysfs_write(dir, TUNNEL_DBG_BW_ALLOC, "1", 1); + close(dir); +} + +/* + * Append @output's connector name to data->cleanup_names[] so the exit + * handler can later reset its debugfs state by name (without + * dereferencing igt_output_t * which may have been invalidated by an + * intervening igt_display_fini()). Duplicates and overflow are + * silently ignored. + */ +static void register_for_cleanup(data_t *data, igt_output_t *output) +{ + int i; + + if (!data || !output || !output->name) + return; + for (i = 0; i < data->n_cleanup; i++) { + if (strcmp(data->cleanup_names[i], output->name) == 0) + return; + } + if (data->n_cleanup >= MAX_CLEANUP_OUTPUTS) + return; + snprintf(data->cleanup_names[data->n_cleanup], + IGT_CONNECTOR_NAME_MAX, "%s", output->name); + data->n_cleanup++; +} + +/* + * Clear bw_limit and re-enable BWA on every connector that was ever + * registered as a tunneled output during the test. Called from both + * the closing fixture and the process exit handler so debugfs state + * is always reset regardless of how a subtest exits. + */ +static void restore_all_debugfs(data_t *data) +{ + int i; + + if (!data || data->drm_fd < 0) + return; + + for (i = 0; i < data->n_cleanup; i++) + try_reset_by_name(data->drm_fd, data->cleanup_names[i]); +} + +static void exit_handler(int sig) +{ + (void)sig; + if (g_data) + restore_all_debugfs(g_data); +} + +/* + * read_tunnel_info - Read the dp_tunnel/info debugfs file for @output into + * @buf. The buffer is zeroed up front and the read is bounded to size-1 so + * the result is always a properly NUL-terminated C string, safe to feed + * straight into strstr/strncmp/sscanf without an explicit length check. + * + * Returns the byte count from igt_debugfs_simple_read(), or -1 if the + * dp_tunnel/ debugfs directory does not exist (no tunnel). + */ +static int read_tunnel_info(int drm_fd, igt_output_t *output, + char *buf, int size) +{ + int dir, ret; + + igt_assert(size > 0); + memset(buf, 0, size); + + dir = tunnel_dbg_open_dir(drm_fd, output); + if (dir < 0) + return -1; + + ret = igt_debugfs_simple_read(dir, TUNNEL_DBG_INFO, buf, size - 1); + close(dir); + + if (ret <= 0) { + igt_debug("kms_tbt: empty/error read of dp_tunnel/info on %s " + "(ret=%d)\n", output->name, ret); + buf[0] = '\0'; + return ret; + } + + buf[min(ret, size - 1)] = '\0'; + return ret; +} + +static int get_allocated_bw(int drm_fd, igt_output_t *output) +{ + char buf[TUNNEL_INFO_BUF_SIZE]; + + read_tunnel_info(drm_fd, output, buf, sizeof(buf)); + return parse_tunnel_field_int(buf, "Allocated BW:"); +} + +static int get_estimated_bw(int drm_fd, igt_output_t *output) +{ + char buf[TUNNEL_INFO_BUF_SIZE]; + + read_tunnel_info(drm_fd, output, buf, sizeof(buf)); + return parse_tunnel_field_int(buf, "Estimated BW:"); +} + +static int get_granularity(int drm_fd, igt_output_t *output) +{ + char buf[TUNNEL_INFO_BUF_SIZE]; + + read_tunnel_info(drm_fd, output, buf, sizeof(buf)); + return parse_tunnel_field_int(buf, "BW granularity:"); +} + +static int get_dprx_rate(int drm_fd, igt_output_t *output) +{ + char buf[TUNNEL_INFO_BUF_SIZE]; + + read_tunnel_info(drm_fd, output, buf, sizeof(buf)); + return parse_tunnel_field_int(buf, "DPRX max rate:"); +} + +/* + * get_tunnel_group_id - Returns a combined host:link key from the DPTUN name + * "Tunnel: DPTUN <host>:<link>:<ep>". Two tunnels share a BW group only when + * they have the same host AND link number (same physical USB4 connection). + * Encoding: host*1000 + link, so TC1 (1:1:x) -> 1001 and TC2 (1:2:x) -> 1002. + */ +static int get_tunnel_group_id(int drm_fd, igt_output_t *output) +{ + char buf[TUNNEL_INFO_BUF_SIZE]; + int host = -1, link = -1; + + read_tunnel_info(drm_fd, output, buf, sizeof(buf)); + if (sscanf(buf, "Tunnel: DPTUN %d:%d:", &host, &link) == 2) + return host * 1000 + link; + return -1; +} + +/* + * find_mode_bw_threshold - Binary-search for the minimum bw_limit (kB/s) at + * which @mode appears in the connector's reprobed mode list. + * + * The kernel's mode_valid BW check uses minimum-bpp accounting and may allow + * DSC-capable modes to survive limits that would reject uncompressed modes. + * Rather than hard-coding any formula, probe the actual kernel threshold. + * + * Search range is [1, estimated_bw]. A cap of 0 means "no cap", so the + * lowest meaningful filtering cap is 1. If the mode is still present at + * limit=1, no positive cap exists that rejects it, and the caller must skip. + * + * Returns: + * threshold > 0 - minimum bw_limit that keeps mode present + * 0 - mode cannot be filtered (survives at limit=1) + * -1 - mode not in unfiltered connector list + * + * On return, bw_limit is left at 0. + */ +static int find_mode_bw_threshold(int drm_fd, igt_output_t *output, + uint32_t connector_id, + const drmModeModeInfo *mode, + int estimated_bw) +{ + drmModeConnector *conn; + char numbuf[32]; + int lo, hi, mid; + int dir; + bool present; + + /* + * The binary search issues ~log2(estimated_bw) writes to + * bw_limit (typically 30+). Open the per-connector dp_tunnel/ + * directory once and reuse the fd to avoid re-walking debugfs + * for every step. + */ + dir = tunnel_dbg_open_dir(drm_fd, output); + if (dir < 0) + return -1; + + #define WRITE_LIMIT(_v) do { \ + int _n = snprintf(numbuf, sizeof(numbuf), "%d", (_v)); \ + int _ret = igt_sysfs_write(dir, TUNNEL_DBG_BW_LIMIT, \ + numbuf, _n); \ + igt_assert_f(_ret == _n, \ + "Failed to write bw_limit=%d (ret=%d): %m\n", \ + (_v), _ret); \ + } while (0) + + /* Verify mode is present with no limit */ + WRITE_LIMIT(0); + conn = drmModeGetConnector(drm_fd, connector_id); + if (!conn) { + close(dir); + return -1; + } + present = igt_connector_mode_in_list(conn, mode); + drmModeFreeConnector(conn); + if (!present) { + close(dir); + return -1; + } + + /* Quick check: is mode still present at the minimum (1 kB/s) cap? */ + WRITE_LIMIT(1); + conn = drmModeGetConnector(drm_fd, connector_id); + present = conn && igt_connector_mode_in_list(conn, mode); + drmModeFreeConnector(conn); + if (present) { + WRITE_LIMIT(0); + close(dir); + return 0; /* mode survives min cap - cannot filter */ + } + + /* + * Binary search. + * lo = highest limit where mode is absent (starts at 1). + * hi = lowest limit where mode is present. + */ + lo = 1; + hi = estimated_bw; + while (hi - lo > 1) { + mid = lo + (hi - lo) / 2; + WRITE_LIMIT(mid); + conn = drmModeGetConnector(drm_fd, connector_id); + if (conn && igt_connector_mode_in_list(conn, mode)) + hi = mid; + else + lo = mid; + drmModeFreeConnector(conn); + } + + WRITE_LIMIT(0); + close(dir); + #undef WRITE_LIMIT + return hi; /* minimum limit at which mode is present */ +} + +/* + * assign_outputs_to_crtcs - Assigns each output in @outputs to the next + * available CRTC, iterating over all display CRTCs. + */ +static void assign_outputs_to_crtcs(igt_display_t *display, + igt_output_t **outputs, int n_outputs) +{ + int i, n_crtcs; + + igt_require_f(n_outputs > 0, "No outputs to assign\n"); + + n_crtcs = igt_display_n_crtcs(display); + igt_require_f(n_crtcs >= n_outputs, + "Not enough CRTCs (%d) for %d outputs\n", + n_crtcs, n_outputs); + + for (i = 0; i < n_outputs; i++) + igt_output_set_crtc(outputs[i], + igt_crtc_for_pipe(display, (enum pipe)i)); +} + +/* + * do_modeset - Sets up and commits a modeset for @outputs with @modes. + * If @modes[i] is NULL, the default preferred mode is used. Creates solid + * blue FBs stored in @fbs which the caller must free with cleanup_outputs(). + */ +static void do_modeset(data_t *data, igt_output_t **outputs, int n_outputs, + drmModeModeInfo **modes, struct igt_fb *fbs) +{ + igt_plane_t *plane; + int i; + + igt_display_reset(&data->display); + assign_outputs_to_crtcs(&data->display, outputs, n_outputs); + + for (i = 0; i < n_outputs; i++) { + drmModeModeInfo *mode; + + if (modes && modes[i]) + igt_output_override_mode(outputs[i], modes[i]); + mode = igt_output_get_mode(outputs[i]); + igt_assert_f(mode, "No mode available for output %s\n", + igt_output_name(outputs[i])); + + igt_info("Modeset %s at %dx%d@%d\n", + igt_output_name(outputs[i]), + mode->hdisplay, mode->vdisplay, mode->vrefresh); + + igt_create_color_fb(data->drm_fd, + mode->hdisplay, mode->vdisplay, + DRM_FORMAT_XRGB8888, + DRM_FORMAT_MOD_LINEAR, + 0.0, 0.0, 1.0, &fbs[i]); + plane = igt_output_get_plane_type(outputs[i], + DRM_PLANE_TYPE_PRIMARY); + igt_plane_set_fb(plane, &fbs[i]); + } + + igt_display_commit2(&data->display, COMMIT_ATOMIC); +} + +/* + * cleanup_outputs - Disables all outputs, commits blank state, removes FBs, + * and clears any mode overrides. Must be called after do_modeset(). + */ +static void cleanup_outputs(data_t *data, igt_output_t **outputs, + int n_outputs, struct igt_fb *fbs) +{ + int i; + + igt_display_reset(&data->display); + igt_display_commit2(&data->display, COMMIT_ATOMIC); + + for (i = 0; i < n_outputs; i++) { + igt_remove_fb(data->drm_fd, &fbs[i]); + igt_output_override_mode(outputs[i], NULL); + } +} + +/* + * retrigger_modeset - Disables the output, then re-enables it at the same + * mode. Used after setting bw_limit to force a fresh modeset that re-evaluates + * BW constraints. + */ +static void retrigger_modeset(data_t *data, igt_output_t **outputs, + int n_outputs, drmModeModeInfo **modes, + struct igt_fb *old_fbs, struct igt_fb *new_fbs) +{ + cleanup_outputs(data, outputs, n_outputs, old_fbs); + do_modeset(data, outputs, n_outputs, modes, new_fbs); +} + +/* + * find_tunneled_output - Finds the first connected DP output that has an + * active DP tunnel (has_tunnel() returns true). Returns NULL if none found. + */ +static igt_output_t *find_tunneled_output(data_t *data) +{ + igt_output_t *output; + + for_each_connected_output(&data->display, output) { + if (output->config.connector->connector_type != + DRM_MODE_CONNECTOR_DisplayPort) + continue; + if (has_tunnel(data->drm_fd, output)) + return output; + } + return NULL; +} + +/* + * sst_tunnel_group - Helper: returns the USB4 group id for @output if it is + * a connected non-MST DP output with an active tunnel, or -1 otherwise. + * Centralises the eligibility filter for the dual-SST selectors below. + */ +static int sst_tunnel_group(data_t *data, igt_output_t *output) +{ + if (output->config.connector->connector_type != + DRM_MODE_CONNECTOR_DisplayPort) + return -1; + if (igt_check_output_is_dp_mst(output)) + return -1; + if (!has_tunnel(data->drm_fd, output)) + return -1; + return get_tunnel_group_id(data->drm_fd, output); +} + +/* + * find_two_tunneled_sst_outputs - Finds two connected SST DP outputs whose + * tunnels share the same physical USB4 link (same host:link group), so the + * pair is suitable for shared-group accounting tests (dual-bw-sum, + * dual-bwa-disable). + * + * Two MST sinks behind the same hub also share host:link so they would + * pass the group check; sst_tunnel_group() filters them out via + * igt_check_output_is_dp_mst() since their BW is aggregated on a single + * tunnel slot, not summed from two. + * + * Implementation: O(n^2) pair search rather than first-found-then-match, + * so a topology like A(group X), B(group Y), C(group Y) still produces + * the valid B+C pair instead of dead-locking on A having no peer. + * + * Stores the two outputs in data->output and data->output2. Returns true + * on success. + */ +static bool find_two_tunneled_sst_outputs(data_t *data) +{ + int i, j; + + for (i = 0; i < data->display.n_outputs; i++) { + igt_output_t *out_a = &data->display.outputs[i]; + int group_a; + + if (!igt_output_is_connected(out_a)) + continue; + group_a = sst_tunnel_group(data, out_a); + if (group_a < 0) + continue; + + for (j = 0; j < data->display.n_outputs; j++) { + igt_output_t *out_b = &data->display.outputs[j]; + + if (j == i) + continue; + if (!igt_output_is_connected(out_b)) + continue; + if (sst_tunnel_group(data, out_b) != group_a) + continue; + + data->output = out_a; + data->output2 = out_b; + register_for_cleanup(data, out_a); + register_for_cleanup(data, out_b); + return true; + } + } + return false; +} + +/* + * find_mst_outputs - Finds at least 2 connected MST outputs that share the + * same tunnel. Populates data->mst_outputs[] and data->n_mst_outputs. + * Returns true if at least 2 MST outputs with a common tunnel are found. + * + * Some TBT docks present their SST SINK ports as MST virtual connectors + * (igt_check_output_is_dp_mst() returns true for them). For mst-* tests + * we need a TRUE MST hub where both outputs share one aggregate BW slot. + * Strategy: prefer an MST tree on a DIFFERENT tunnel group than the primary + * output (data->output) - that USB4 path is more likely to have a real MST + * hub rather than the dock's internal pseudo-MST routing. Fall back to any + * MST tree with 2+ connected outputs if no better option exists. + */ +static bool find_mst_outputs(data_t *data) +{ + igt_output_t *output; + igt_output_t *best_root = NULL; + int primary_group = -1; + + if (data->output) + primary_group = get_tunnel_group_id(data->drm_fd, data->output); + + for_each_connected_output(&data->display, output) { + igt_output_t *candidates[IGT_MAX_PIPES]; + int count = 0, n_connected = 0, i, root_group; + + if (output->config.connector->connector_type != + DRM_MODE_CONNECTOR_DisplayPort) + continue; + if (!igt_check_output_is_dp_mst(output)) + continue; + if (!has_tunnel(data->drm_fd, output)) + continue; + + root_group = get_tunnel_group_id(data->drm_fd, output); + + if (igt_find_all_mst_output_in_topology(data->drm_fd, + &data->display, + output, candidates, + &count) != 0) + continue; + + for (i = 0; i < count; i++) { + if (candidates[i]->config.connector->connection == + DRM_MODE_CONNECTED) + n_connected++; + } + if (n_connected < 2) + continue; + + /* Prefer a tree on a different tunnel group from data->output */ + if (root_group != primary_group) { + best_root = output; + break; + } + if (!best_root) + best_root = output; /* fallback: same group */ + } + + if (!best_root) + return false; + + { + igt_output_t *candidates[IGT_MAX_PIPES]; + int count = 0, i; + + if (igt_find_all_mst_output_in_topology(data->drm_fd, + &data->display, + best_root, candidates, + &count) != 0) + return false; + + data->n_mst_outputs = 0; + for (i = 0; i < count; i++) { + if (candidates[i]->config.connector->connection == + DRM_MODE_CONNECTED) { + data->mst_outputs[data->n_mst_outputs++] = + candidates[i]; + register_for_cleanup(data, candidates[i]); + } + } + } + + return data->n_mst_outputs >= 2; +} + +/* ------------------------------------------------------------------ */ +/* Per-subtest setup helpers: encapsulate the early-skip boilerplate. */ +/* ------------------------------------------------------------------ */ + +/* + * require_sst - Skip the calling subtest if the primary tunneled output + * is gone (e.g. the user yanked the dock between subtests). Returns the + * primary tunneled output, ready for use. + */ +static igt_output_t *require_sst(data_t *d) +{ + igt_output_t *out = d->output; + + igt_require_f(out, "No primary tunneled output\n"); + igt_require_f(has_tunnel(d->drm_fd, out), + "No DP tunnel on %s, skipping\n", out->name); + return out; +} + +/* + * require_bwa - Skip the calling subtest unless BWA is currently enabled + * on @out's tunnel. Subtests that depend on toggling BWA (bwa-*, bwa-cycle, + * dual-bwa-*, mst-bwa-*) call this so they don't hard-assert on a sink that + * doesn't advertise the BWA capability. + */ +static void require_bwa(data_t *d, igt_output_t *out) +{ + igt_require_f(get_bwa_enabled(d->drm_fd, out), + "BWA not enabled on %s; sink may not support it\n", + out->name); +} + +/* + * require_dual_sst_same_group - Skip if two tunneled SST outputs sharing + * one USB4 link cannot be found. On success d->output and d->output2 are + * populated. + */ +static void require_dual_sst_same_group(data_t *d) +{ + igt_require_f(find_two_tunneled_sst_outputs(d), + "Need 2 tunneled non-MST DP outputs on same dock\n"); + igt_require_f(has_tunnel(d->drm_fd, d->output) && + has_tunnel(d->drm_fd, d->output2), + "Both outputs need tunnels\n"); +} + +/* + * require_mst_pair - Skip unless 2+ connected MST outputs sharing a + * single tunnel are available. On success d->mst_outputs[] is populated. + */ +static void require_mst_pair(data_t *d) +{ + igt_require_f(find_mst_outputs(d), + "Need 2 connected MST outputs on same tunnel\n"); + igt_require_f(has_tunnel(d->drm_fd, d->mst_outputs[0]) && + has_tunnel(d->drm_fd, d->mst_outputs[1]), + "Both MST outputs (%s, %s) need tunnel debugfs\n", + d->mst_outputs[0]->name, d->mst_outputs[1]->name); +} + +/* + * Output of prepare_limit_setup() consumed by the limit-* subtests. + */ +struct limit_setup { + uint32_t connector_id; + drmModeModeInfo preferred; + int estimated_bw; + int full_mode_count; + int threshold; /* min bw_limit at which preferred is present */ +}; + +/* + * limit_setup_status - prepare_limit_setup() result. + * + * Helpers don't call igt_skip() / igt_require_f() so that the per-subtest + * caller controls the skip reason and the IGT framework attributes the + * skip to the right subtest in CI logs. + */ +enum limit_setup_status { + LIMIT_SETUP_OK, + LIMIT_SETUP_NO_ESTIMATED_BW, + LIMIT_SETUP_NO_MODES, + LIMIT_SETUP_NO_THRESHOLD, +}; + +/* + * prepare_limit_setup - Common preamble for limit-fallback / limit-boundary + * / limit-suspend: + * - Clear stale bw_limit. + * - Probe the unfiltered connector for the preferred mode and full count. + * - Binary-search for the kernel's actual rejection threshold for the + * preferred mode. + * + * Returns one of #limit_setup_status; @s is populated only on + * %LIMIT_SETUP_OK. Caller decides how (or whether) to skip on the other + * statuses. + */ +static enum limit_setup_status prepare_limit_setup(data_t *d, + igt_output_t *out, + struct limit_setup *s) +{ + drmModeConnector *conn; + int i; + + set_bw_limit(d->drm_fd, out, 0); + + s->connector_id = out->config.connector->connector_id; + s->estimated_bw = get_estimated_bw(d->drm_fd, out); + if (s->estimated_bw <= 0) + return LIMIT_SETUP_NO_ESTIMATED_BW; + + conn = drmModeGetConnector(d->drm_fd, s->connector_id); + igt_assert_f(conn, "Failed to probe connector\n"); + if (conn->count_modes <= 0) { + drmModeFreeConnector(conn); + return LIMIT_SETUP_NO_MODES; + } + s->full_mode_count = conn->count_modes; + s->preferred = conn->modes[0]; + for (i = 0; i < conn->count_modes; i++) { + if (conn->modes[i].type & DRM_MODE_TYPE_PREFERRED) { + s->preferred = conn->modes[i]; + break; + } + } + drmModeFreeConnector(conn); + + s->threshold = find_mode_bw_threshold(d->drm_fd, out, s->connector_id, + &s->preferred, s->estimated_bw); + if (s->threshold <= 0) + return LIMIT_SETUP_NO_THRESHOLD; + + return LIMIT_SETUP_OK; +} + +/* + * require_limit_setup - prepare_limit_setup() wrapper that turns each non-OK + * status into an igt_require_f skip with a specific message. Use this from + * limit-* subtests for uniform skip behaviour. + */ +static void require_limit_setup(data_t *d, igt_output_t *out, + struct limit_setup *s) +{ + enum limit_setup_status st = prepare_limit_setup(d, out, s); + + switch (st) { + case LIMIT_SETUP_OK: + return; + case LIMIT_SETUP_NO_ESTIMATED_BW: + igt_skip("No estimated BW on %s\n", out->name); + break; + case LIMIT_SETUP_NO_MODES: + igt_skip("No modes on %s\n", out->name); + break; + case LIMIT_SETUP_NO_THRESHOLD: + igt_skip("Cannot filter preferred mode (clock=%d): " + "always present or not in list\n", + s->preferred.clock); + break; + } +} + +/* + * preferred_mode_present_at_limit - Apply @limit, reprobe @connector_id and + * return whether @preferred survives in the filtered mode list. Optionally + * stores the post-filter mode count in @mode_count_out. Centralises the + * write-bw_limit / drmModeGetConnector / membership-check pattern shared by + * the limit-* subtests. + */ +static bool preferred_mode_present_at_limit(data_t *d, igt_output_t *out, + uint32_t connector_id, + const drmModeModeInfo *preferred, + int limit, int *mode_count_out) +{ + drmModeConnector *conn; + bool present; + + set_bw_limit(d->drm_fd, out, limit); + conn = drmModeGetConnector(d->drm_fd, connector_id); + igt_assert_f(conn, "Failed to reprobe connector\n"); + + present = igt_connector_mode_in_list(conn, preferred); + if (mode_count_out) + *mode_count_out = conn->count_modes; + + drmModeFreeConnector(conn); + return present; +} + +/* ------------------------------------------------------------------ */ +/* Subtest implementations. */ +/* */ +/* Each test_* assumes its caller has already established the */ +/* connectors it needs (via the require_* helpers above). */ +/* ------------------------------------------------------------------ */ + +/* + * test_basic - Functional baseline: + * 1. Modeset the preferred mode on a tunneled output. + * 2. Tunnel info begins with "Tunnel: DPTUN" (debugfs format sanity). + * 3. Allocated BW becomes positive within BW_RETRY_TIMEOUT_MS (BWA + * negotiation runs on a worker after commit returns). + * 4. Tunnel DPRX max rate is at least the link's current max rate + * (i.e. the tunnel can carry whatever the link is using). + * + * TODO: split into basic-sst-{uhbr,non-uhbr} / basic-mst-{uhbr,non-uhbr} + * once test-rig coverage exists. + */ +static void test_basic(data_t *d, igt_output_t *out) +{ + char buf[TUNNEL_INFO_BUF_SIZE]; + struct igt_fb fb; + int allocated, dprx_rate, current_max_rate; + int t; + + igt_require_f(out->config.connector->count_modes > 0, + "No modes available on %s\n", out->name); + + /* + * Reset bw_limit=0 in case a previously crashed limit-* subtest + * left a stale cap on the tunnel that would now make BW + * allocation fail for unrelated reasons. + */ + set_bw_limit(d->drm_fd, out, 0); + do_modeset(d, &out, 1, NULL, &fb); + + read_tunnel_info(d->drm_fd, out, buf, sizeof(buf)); + igt_info("tunnel_info:\n%s\n", buf); + + igt_assert_f(strncmp(buf, "Tunnel: DPTUN", 13) == 0, + "Unexpected tunnel name format: %s\n", buf); + + /* + * BWA negotiation with the USB4 host runs on a worker after the + * modeset commit returns. Poll for up to BW_RETRY_TIMEOUT_MS for a + * positive allocation rather than racing it with a single sample. + */ + allocated = get_allocated_bw(d->drm_fd, out); + for (t = 0; t < BW_RETRY_TIMEOUT_MS / BW_RETRY_STEP_MS && + allocated <= 0; t++) { + usleep(BW_RETRY_STEP_MS * 1000); + allocated = get_allocated_bw(d->drm_fd, out); + } + igt_info("[basic] allocated_bw=%d kB/s\n", allocated); + igt_assert_f(allocated > 0, + "Allocated BW is %d, expected > 0\n", allocated); + + dprx_rate = get_dprx_rate(d->drm_fd, out); + current_max_rate = igt_get_max_link_rate(d->drm_fd, out); + igt_info("[basic] dprx_rate=%d kbps link_max_rate=%d kbps\n", + dprx_rate, current_max_rate); + igt_assert_f(dprx_rate > 0, + "DPRX max rate %d invalid\n", dprx_rate); + igt_assert_f(current_max_rate > 0, + "Current max link rate %d invalid\n", current_max_rate); + igt_assert_f(dprx_rate >= current_max_rate, + "DPRX rate %d < current max link rate %d\n", + dprx_rate, current_max_rate); + + cleanup_outputs(d, &out, 1, &fb); +} + +static void test_modeset_bw(data_t *d, igt_output_t *out) +{ + drmModeConnector *c = out->config.connector; + struct igt_fb fb_low = {}, fb_high = {}, fb_back = {}; + drmModeModeInfo low_mode_copy, high_mode_copy; + drmModeModeInfo *modes[1]; + int bw_low, bw_high, bw_back; + + igt_require_f(c->count_modes >= 2, + "Need at least 2 modes on %s\n", out->name); + igt_require_f(igt_connector_find_lowest_clock_mode(out, &low_mode_copy) && + igt_connector_find_preferred_mode(out, &high_mode_copy) && + low_mode_copy.clock != high_mode_copy.clock, + "Need distinct low and high modes on %s\n", out->name); + + /* Step 1: lowest mode */ + modes[0] = &low_mode_copy; + do_modeset(d, &out, 1, modes, &fb_low); + bw_low = get_allocated_bw(d->drm_fd, out); + igt_info("[modeset-bw] Step1 low_mode=%dx%d@%d bw_low=%d kB/s\n", + low_mode_copy.hdisplay, low_mode_copy.vdisplay, + low_mode_copy.vrefresh, bw_low); + igt_assert_f(bw_low > 0, "Low mode allocated BW %d <= 0\n", bw_low); + + /* Step 2: highest mode */ + cleanup_outputs(d, &out, 1, &fb_low); + modes[0] = &high_mode_copy; + do_modeset(d, &out, 1, modes, &fb_high); + bw_high = get_allocated_bw(d->drm_fd, out); + igt_info("[modeset-bw] Step2 high_mode=%dx%d@%d bw_high=%d kB/s" + " pass=(bw_high > bw_low): %d > %d\n", + high_mode_copy.hdisplay, high_mode_copy.vdisplay, + high_mode_copy.vrefresh, bw_high, bw_high, bw_low); + igt_assert_f(bw_high > bw_low, + "High mode BW %d not > low mode BW %d\n", + bw_high, bw_low); + + /* + * Step 3: back to lowest mode. With the same input mode and the + * same group state (single tunnel, no other allocations changed), + * the kernel's BWA path is deterministic, so allocation must round + * to exactly the same value as Step 1. + */ + cleanup_outputs(d, &out, 1, &fb_high); + modes[0] = &low_mode_copy; + do_modeset(d, &out, 1, modes, &fb_back); + bw_back = get_allocated_bw(d->drm_fd, out); + igt_info("[modeset-bw] Step3 round-trip bw_back=%d kB/s" + " pass=(bw_back == bw_low): %d == %d\n", + bw_back, bw_back, bw_low); + igt_assert_f(bw_back == bw_low, + "BW after round-trip %d != bw_low %d\n", + bw_back, bw_low); + + cleanup_outputs(d, &out, 1, &fb_back); +} + +static void test_disable_bw(data_t *d, igt_output_t *out) +{ + struct igt_fb fb; + int allocated; + + do_modeset(d, &out, 1, NULL, &fb); + allocated = get_allocated_bw(d->drm_fd, out); + igt_info("[disable-bw] Before disable: allocated_bw=%d kB/s\n", + allocated); + igt_assert_f(allocated > 0, + "Expected allocated BW > 0 before disable\n"); + + igt_output_set_crtc(out, NULL); + igt_display_commit2(&d->display, COMMIT_ATOMIC); + igt_remove_fb(d->drm_fd, &fb); + + allocated = get_allocated_bw(d->drm_fd, out); + igt_info("[disable-bw] After disable: allocated_bw=%d kB/s " + "pass=(==0): %d == 0\n", allocated, allocated); + igt_assert_f(allocated == 0, + "Allocated BW %d != 0 after output disabled\n", allocated); + + do_modeset(d, &out, 1, NULL, &fb); + allocated = get_allocated_bw(d->drm_fd, out); + igt_info("[disable-bw] After re-enable: allocated_bw=%d kB/s " + "pass=(>0): %d > 0\n", allocated, allocated); + igt_assert_f(allocated > 0, + "Expected allocated BW > 0 after re-enable\n"); + + cleanup_outputs(d, &out, 1, &fb); +} + +/* + * await_tunnel_after_resume_identity - Wait up to 3s for the cached @out + * pointer to regain a working tunnel; if the kernel re-enumerated the + * connector, rebuild IGT's display state and look up the new connector + * for *the same physical sink* by matching @pre_path (preferred, more + * reliable for MST topologies) or @pre_serial (EDID fallback). Returns + * the (possibly updated) output, or NULL if the original sink does not + * re-establish a tunnel within 30s. + * + * @pre_path / @pre_serial: pre-suspend identity captured via + * igt_connector_get_info(); either may be empty. + * @tag: log prefix for diagnostics. + */ +static igt_output_t *await_tunnel_after_resume_identity(data_t *d, + igt_output_t *out, + const char *pre_path, + const char *pre_serial, + const char *tag) +{ + igt_until_timeout(3) { + if (has_tunnel(d->drm_fd, out)) + return out; + usleep(100 * 1000); + } + + igt_display_fini(&d->display); + igt_display_require(&d->display, d->drm_fd); + + igt_until_timeout(30) { + uint32_t new_id = 0; + igt_output_t *new_out; + + igt_connector_reprobe_all(d->drm_fd); + + if (pre_path[0] && + !igt_connector_find_by_path(d->drm_fd, pre_path, &new_id)) { + new_id = 0; + } + if (!new_id && pre_serial[0]) { + if (!igt_connector_find_by_serial(d->drm_fd, pre_serial, + &new_id)) + new_id = 0; + } + if (new_id) { + new_out = igt_connector_find_output_by_id(&d->display, + new_id); + if (new_out && has_tunnel(d->drm_fd, new_out)) { + igt_info("[%s] Tunnel re-established on %s " + "(re-enumerated id=%u)\n", + tag, new_out->name, new_id); + register_for_cleanup(d, new_out); + return new_out; + } + } + usleep(500 * 1000); + } + return NULL; +} + +static void test_suspend(data_t *d, igt_output_t *out) +{ + struct igt_fb fb; + int pre_allocated, pre_dprx_rate, pre_group; + int post_allocated, granularity; + bool pre_bwa; + char pre_path[128] = {}; + char pre_serial[64] = {}; + char tmp[32]; + + igt_connector_get_info(d->drm_fd, + out->config.connector->connector_id, + tmp, sizeof(tmp), + pre_serial, sizeof(pre_serial), + pre_path, sizeof(pre_path)); + + do_modeset(d, &out, 1, NULL, &fb); + + pre_allocated = get_allocated_bw(d->drm_fd, out); + pre_dprx_rate = get_dprx_rate(d->drm_fd, out); + pre_group = get_tunnel_group_id(d->drm_fd, out); + granularity = get_granularity(d->drm_fd, out); + pre_bwa = get_bwa_enabled(d->drm_fd, out); + igt_info("[suspend] Pre-suspend: %s allocated_bw=%d kB/s dprx_rate=%d kbps" + " group_id=%d granularity=%d kB/s bwa=%d path='%s' serial='%s'\n", + out->name, pre_allocated, pre_dprx_rate, pre_group, granularity, + pre_bwa, pre_path, pre_serial); + + igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE); + + out = await_tunnel_after_resume_identity(d, out, pre_path, pre_serial, + "suspend"); + if (!out) { + igt_remove_fb(d->drm_fd, &fb); + igt_skip("Tunnel not re-established 30s after resume\n"); + } + + if (pre_bwa) + igt_assert_f(get_bwa_enabled(d->drm_fd, out), + "BWA was enabled pre-suspend but not restored after resume\n"); + + post_allocated = get_allocated_bw(d->drm_fd, out); + igt_info("[suspend] Post-resume: allocated_bw=%d kB/s bwa_enabled=%d" + " dprx_rate=%d kbps group_id=%d\n", + post_allocated, get_bwa_enabled(d->drm_fd, out), + get_dprx_rate(d->drm_fd, out), + get_tunnel_group_id(d->drm_fd, out)); + igt_info("[suspend] pass=(|post-pre| <= gran): |%d - %d| = %d <= %d\n", + post_allocated, pre_allocated, + abs(post_allocated - pre_allocated), granularity); + igt_assert_f(abs(post_allocated - pre_allocated) <= granularity, + "Allocated BW changed more than one granularity step " + "after resume: pre=%d post=%d gran=%d\n", + pre_allocated, post_allocated, granularity); + igt_assert_f(get_dprx_rate(d->drm_fd, out) == pre_dprx_rate, + "DPRX rate changed after resume\n"); + igt_assert_f(get_tunnel_group_id(d->drm_fd, out) == pre_group, + "Tunnel group ID changed after resume\n"); + + /* + * After suspend/resume, TBT re-enumerates connectors which can + * cause a stale DRM state in IGT. Use targeted per-output disable + * to avoid touching connectors that may have changed. + */ + igt_output_set_crtc(out, NULL); + igt_output_override_mode(out, NULL); + igt_display_commit2(&d->display, COMMIT_ATOMIC); + igt_remove_fb(d->drm_fd, &fb); +} + +static void test_limit_fallback(data_t *d, igt_output_t *out) +{ + struct igt_fb fb; + struct limit_setup s; + drmModeConnector *conn; + drmModeModeInfo fallback_copy; + drmModeModeInfo *modes[1]; + int reject_limit, pref_alloc, fallback_alloc, count; + bool present; + + require_limit_setup(d, out, &s); + + /* Record the BW actually allocated for the preferred mode */ + modes[0] = &s.preferred; + do_modeset(d, &out, 1, modes, &fb); + pref_alloc = get_allocated_bw(d->drm_fd, out); + igt_info("[limit-fallback] preferred_mode=%dx%d@%d clock=%d kHz" + " pref_alloc=%d kB/s estimated_bw=%d kB/s\n", + s.preferred.hdisplay, s.preferred.vdisplay, + s.preferred.vrefresh, s.preferred.clock, + pref_alloc, s.estimated_bw); + cleanup_outputs(d, &out, 1, &fb); + + reject_limit = s.threshold - 1; + igt_info("[limit-fallback] threshold=%d reject_limit=%d\n", + s.threshold, reject_limit); + + /* Apply the reject limit and verify preferred is gone */ + present = preferred_mode_present_at_limit(d, out, s.connector_id, + &s.preferred, reject_limit, + &count); + igt_info("[limit-fallback] At T-1=%d: preferred_present=%d modes_remaining=%d\n", + reject_limit, present, count); + igt_assert_f(!present, + "Preferred mode (clock=%d) still present at " + "limit=%d (threshold=%d)\n", + s.preferred.clock, reject_limit, s.threshold); + + conn = drmModeGetConnector(d->drm_fd, s.connector_id); + igt_assert_f(conn, "Failed to reprobe connector\n"); + if (!igt_connector_find_highest_clock_mode_in(conn, &fallback_copy)) { + drmModeFreeConnector(conn); + set_bw_limit(d->drm_fd, out, 0); + igt_skip("No modes available at limit=%d\n", reject_limit); + } + drmModeFreeConnector(conn); + + modes[0] = &fallback_copy; + do_modeset(d, &out, 1, modes, &fb); + fallback_alloc = get_allocated_bw(d->drm_fd, out); + /* + * The kernel filters modes using 18bpp minimum + * (intel_dp_mode_valid_format) but allocates BWA at the actual + * pixel rate. On low-res displays the granularity rounding can + * make fallback_alloc == pref_alloc. Assert on clock difference + * instead (proves mode-list filtering worked). + */ + igt_info("[limit-fallback] fallback_mode=%dx%d@%d fallback_alloc=%d kB/s" + " pref_alloc=%d kB/s pass=(fallback_clock < pref_clock): %d < %d\n", + fallback_copy.hdisplay, fallback_copy.vdisplay, + fallback_copy.vrefresh, fallback_alloc, pref_alloc, + fallback_copy.clock, s.preferred.clock); + igt_assert_f(fallback_copy.clock < s.preferred.clock, + "Expected fallback mode (clock %d < preferred %d) " + "but mode-list filtering did not work\n", + fallback_copy.clock, s.preferred.clock); + igt_assert_f(fallback_alloc > 0, + "Fallback allocated BW %d <= 0\n", fallback_alloc); + + set_bw_limit(d->drm_fd, out, 0); + cleanup_outputs(d, &out, 1, &fb); +} + +/* + * test_limit_boundary - Three-stage off-by-one + clear check on the same + * tunnel: + * 1. limit = threshold T: preferred must be present. + * 2. limit = T - 1: preferred must be absent. + * 3. limit = 0: preferred and full mode count restored. + * + * Stage 3 absorbs what test_limit_clear used to cover separately - the + * unique "full mode count restored after clearing" check now lives here. + */ +static void test_limit_boundary(data_t *d, igt_output_t *out) +{ + struct limit_setup s; + int count; + bool present; + + require_limit_setup(d, out, &s); + + igt_info("[limit-boundary] preferred_mode=%dx%d@%d clock=%d kHz" + " estimated_bw=%d kB/s threshold(T)=%d kB/s" + " full_mode_count=%d\n", + s.preferred.hdisplay, s.preferred.vdisplay, + s.preferred.vrefresh, s.preferred.clock, + s.estimated_bw, s.threshold, s.full_mode_count); + + /* At threshold: preferred must be present */ + present = preferred_mode_present_at_limit(d, out, s.connector_id, + &s.preferred, s.threshold, + &count); + igt_info("[limit-boundary] At T=%d: preferred_present=%d (expect 1)" + " modes_count=%d\n", s.threshold, present, count); + igt_assert_f(present, + "Preferred mode (clock=%d) absent at boundary limit=%d\n", + s.preferred.clock, s.threshold); + + /* One below threshold: preferred must be absent */ + present = preferred_mode_present_at_limit(d, out, s.connector_id, + &s.preferred, + s.threshold - 1, &count); + igt_info("[limit-boundary] At T-1=%d: preferred_present=%d (expect 0)" + " modes_count=%d\n", s.threshold - 1, present, count); + igt_assert_f(!present, + "Preferred mode (clock=%d) still present at " + "limit=%d (one below threshold=%d)\n", + s.preferred.clock, s.threshold - 1, s.threshold); + + /* Clear: full mode list and preferred must be restored */ + present = preferred_mode_present_at_limit(d, out, s.connector_id, + &s.preferred, 0, &count); + igt_info("[limit-boundary] After clear (limit=0): modes_count=%d" + " preferred_present=%d pass=(count == full): %d == %d\n", + count, present, count, s.full_mode_count); + igt_assert_f(get_bw_limit(d->drm_fd, out) == 0, + "bw_limit not 0 after clearing\n"); + igt_assert_f(count == s.full_mode_count, + "Mode count %d != original %d after clearing\n", + count, s.full_mode_count); + igt_assert_f(present, + "Preferred mode not restored after clearing limit\n"); +} + +static void test_limit_suspend(data_t *d, igt_output_t *out) +{ + struct igt_fb fb; + struct limit_setup s; + drmModeConnector *conn; + drmModeModeInfo fallback_copy; + drmModeModeInfo *modes[1]; + int allocated_before, limit, allocated_pre, allocated_after; + char pre_path[128] = {}; + char pre_serial[64] = {}; + char tmp[32]; + + igt_connector_get_info(d->drm_fd, + out->config.connector->connector_id, + tmp, sizeof(tmp), + pre_serial, sizeof(pre_serial), + pre_path, sizeof(pre_path)); + + require_limit_setup(d, out, &s); + + /* Modeset at preferred mode, then record allocated BW */ + modes[0] = &s.preferred; + do_modeset(d, &out, 1, modes, &fb); + allocated_before = get_allocated_bw(d->drm_fd, out); + igt_info("[limit-suspend] preferred_mode=%dx%d@%d allocated_before=%d kB/s\n", + s.preferred.hdisplay, s.preferred.vdisplay, + s.preferred.vrefresh, allocated_before); + cleanup_outputs(d, &out, 1, &fb); + + limit = s.threshold - 1; + set_bw_limit(d->drm_fd, out, limit); + + conn = drmModeGetConnector(d->drm_fd, s.connector_id); + if (!conn || conn->count_modes == 0) { + if (conn) + drmModeFreeConnector(conn); + set_bw_limit(d->drm_fd, out, 0); + igt_skip("No modes available within limit=%d\n", limit); + } + + igt_assert_f(igt_connector_find_highest_clock_mode_in(conn, &fallback_copy), + "No modes in filtered connector list at limit=%d\n", limit); + drmModeFreeConnector(conn); + + modes[0] = &fallback_copy; + do_modeset(d, &out, 1, modes, &fb); + + /* + * Note: bw_limit filters using 18bpp; actual BWA is at display + * pixel rate, so allocated_pre may exceed limit. Log the value + * as evidence but don't assert allocated <= limit. The meaningful + * check is that bw_limit is reset across suspend. + */ + allocated_pre = get_allocated_bw(d->drm_fd, out); + igt_info("[limit-suspend] fallback_mode=%dx%d@%d limit=%d kB/s" + " allocated_pre=%d kB/s" + " (note: alloc may exceed limit due to 18bpp filter)\n", + fallback_copy.hdisplay, fallback_copy.vdisplay, + fallback_copy.vrefresh, limit, allocated_pre); + igt_assert_f(allocated_pre > 0, + "Allocated BW %d <= 0 for fallback mode\n", allocated_pre); + + igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE); + + out = await_tunnel_after_resume_identity(d, out, pre_path, pre_serial, + "limit-suspend"); + if (!out) { + igt_remove_fb(d->drm_fd, &fb); + igt_skip("Tunnel not re-established 30s after resume\n"); + } + + /* + * bw_limit lives on the tunnel object; the tunnel is destroyed on + * suspend and re-created on resume, so the cap is reset to 0. + */ + igt_assert_f(get_bw_limit(d->drm_fd, out) == 0, + "bw_limit not reset after resume: expected 0, got %d\n", + get_bw_limit(d->drm_fd, out)); + + allocated_after = get_allocated_bw(d->drm_fd, out); + igt_info("[limit-suspend] Post-resume: bw_limit=%d kB/s allocated_after=%d kB/s" + " allocated_pre=%d kB/s delta=%d kB/s\n", + get_bw_limit(d->drm_fd, out), allocated_after, + allocated_pre, allocated_after - allocated_pre); + igt_assert_f(allocated_after > 0, + "Allocated BW %d <= 0 after resume\n", allocated_after); + + if (has_tunnel(d->drm_fd, out)) + set_bw_limit(d->drm_fd, out, 0); + igt_output_set_crtc(out, NULL); + igt_output_override_mode(out, NULL); + igt_display_commit2(&d->display, COMMIT_ATOMIC); + igt_remove_fb(d->drm_fd, &fb); +} + +/* + * test_bwa_re_enable - End-to-end BWA toggle lifecycle. Replaces three + * earlier subtests (bwa-disable / bwa-link-params / bwa-modeset): + * + * 1. Modeset preferred mode; record alloc_initial, rate_on. BWA must be + * enabled and allocation positive. + * 2. Disable BWA via debugfs (no commit). Snapshot tunnel info once + * and assert: bwa is off, Allocated BW == -1, "Tunnel:" header still + * present, rate_off > 0 (DPCD fallback path). + * 3. Disable display, re-enable BWA, fresh modeset on the same preferred + * mode. alloc_post must equal alloc_initial (same input, same group + * state -> deterministic), and rate_restored must equal rate_on. + */ +static void test_bwa_re_enable(data_t *d, igt_output_t *out) +{ + struct igt_fb fb; + char buf[TUNNEL_INFO_BUF_SIZE]; + int alloc_initial, rate_on, rate_off, rate_restored, alloc_post; + int disabled_alloc; + bool tunnel_alive, bwa_off; + + do_modeset(d, &out, 1, NULL, &fb); + require_bwa(d, out); + + alloc_initial = get_allocated_bw(d->drm_fd, out); + rate_on = igt_get_max_link_rate(d->drm_fd, out); + igt_info("[bwa-re-enable] Stage1 alloc_initial=%d kB/s rate_on=%d kbps\n", + alloc_initial, rate_on); + igt_assert_f(alloc_initial > 0, + "Expected positive allocated BW, got %d\n", alloc_initial); + igt_assert_f(rate_on > 0, "Max link rate %d invalid\n", rate_on); + + /* + * Stage 2: disable BWA and snapshot the resulting state once. Reading + * tunnel info / link rate / bwa_enabled all in one go avoids racing + * the debugfs against any background activity that might mutate state + * between separate reads. + */ + set_bwa_enabled(d->drm_fd, out, false); + read_tunnel_info(d->drm_fd, out, buf, sizeof(buf)); + bwa_off = !get_bwa_enabled(d->drm_fd, out); + disabled_alloc = parse_tunnel_field_int(buf, "Allocated BW:"); + tunnel_alive = strncmp(buf, "Tunnel:", 7) == 0; + rate_off = igt_get_max_link_rate(d->drm_fd, out); + igt_info("[bwa-re-enable] Stage2 (BWA off): bwa_off=%d alloc=%d (expect -1)" + " tunnel_alive=%d rate_off=%d kbps\n", + bwa_off, disabled_alloc, tunnel_alive, rate_off); + igt_assert_f(bwa_off, "BWA still enabled after disabling\n"); + igt_assert_f(disabled_alloc == -1, + "Allocated BW should be -1 when BWA disabled, got %d\n", + disabled_alloc); + igt_assert_f(tunnel_alive, "Tunnel disappeared after BWA disable\n"); + igt_assert_f(rate_off > 0, + "Max link rate %d invalid after BWA off\n", rate_off); + + /* + * Stage 3: bring the display down, re-enable BWA on the quiesced + * tunnel, then bring it back up. BWA negotiation with the USB4 host + * runs as part of the display-enable transition, so a fresh modeset + * is what verifies the knob took effect. + */ + cleanup_outputs(d, &out, 1, &fb); + set_bwa_enabled(d->drm_fd, out, true); + igt_assert_f(get_bwa_enabled(d->drm_fd, out), "BWA not re-enabled\n"); + do_modeset(d, &out, 1, NULL, &fb); + + alloc_post = get_allocated_bw(d->drm_fd, out); + rate_restored = igt_get_max_link_rate(d->drm_fd, out); + igt_info("[bwa-re-enable] Stage3 (re-enable+fresh modeset):" + " alloc_post=%d kB/s estimated=%d kB/s rate_restored=%d kbps" + " pass=(alloc_post == alloc_initial && rate_restored == rate_on):" + " %d == %d && %d == %d\n", + alloc_post, get_estimated_bw(d->drm_fd, out), rate_restored, + alloc_post, alloc_initial, rate_restored, rate_on); + igt_assert_f(alloc_post > 0, + "Allocated BW %d <= 0 after re-enable\n", alloc_post); + igt_assert_f(get_estimated_bw(d->drm_fd, out) > 0, + "Estimated BW <= 0 after re-enable\n"); + igt_assert_f(alloc_post == alloc_initial, + "Post-re-enable alloc %d != initial %d\n", + alloc_post, alloc_initial); + igt_assert_f(rate_restored == rate_on, + "Max link rate after re-enable (%d) != original (%d)\n", + rate_restored, rate_on); + + cleanup_outputs(d, &out, 1, &fb); +} + +/* + * test_bwa_cycle - Stress repeated debugfs-only BWA toggle (no modeset + * inside the loop) and verify that BW allocation is unchanged once a + * fresh modeset re-establishes the link. This exercises rapid + * debugfs-knob handling, not BWA renegotiation. + */ +static void test_bwa_cycle(data_t *d, igt_output_t *out) +{ + struct igt_fb fb; + int original, post, i; + + do_modeset(d, &out, 1, NULL, &fb); + require_bwa(d, out); + + original = get_allocated_bw(d->drm_fd, out); + igt_info("[bwa-cycle] Initial: original_bw=%d kB/s n_cycles=%d\n", + original, BWA_CYCLE_COUNT); + igt_assert_f(original > 0, + "Expected positive allocated BW, got %d\n", original); + + for (i = 0; i < BWA_CYCLE_COUNT; i++) { + set_bwa_enabled(d->drm_fd, out, false); + igt_assert_f(!get_bwa_enabled(d->drm_fd, out), + "BWA still enabled in cycle %d\n", i); + /* + * Sanity-check that the knob has the expected debugfs side + * effect (Allocated BW becomes -1) once per run, not every + * iteration - one reading per cycle is enough overhead. + */ + if (i == 0) + igt_assert_f(get_allocated_bw(d->drm_fd, out) == -1, + "Allocated BW != -1 after first disable\n"); + set_bwa_enabled(d->drm_fd, out, true); + igt_assert_f(get_bwa_enabled(d->drm_fd, out), + "BWA not re-enabled in cycle %d\n", i); + } + + cleanup_outputs(d, &out, 1, &fb); + do_modeset(d, &out, 1, NULL, &fb); + + post = get_allocated_bw(d->drm_fd, out); + igt_info("[bwa-cycle] After %d cycles + fresh modeset: post_bw=%d kB/s" + " pass=(post == original): %d == %d\n", + BWA_CYCLE_COUNT, post, post, original); + igt_assert_f(post > 0, + "Allocated BW %d <= 0 after cycles\n", post); + igt_assert_f(post == original, + "BW drifted after %d BWA cycles: orig=%d post=%d\n", + BWA_CYCLE_COUNT, original, post); + + cleanup_outputs(d, &out, 1, &fb); +} + +static void test_dual_bw_sum(data_t *d) +{ + igt_output_t *outs[2] = { d->output, d->output2 }; + struct igt_fb fbs[2] = {}; + int alloc_a, alloc_b, estimated_a, estimated_b; + int group_a, group_b, group_free_a, group_free_b; + + do_modeset(d, outs, 2, NULL, fbs); + + group_a = get_tunnel_group_id(d->drm_fd, outs[0]); + group_b = get_tunnel_group_id(d->drm_fd, outs[1]); + igt_assert_f(group_a >= 0 && group_b >= 0, + "Invalid tunnel group IDs: %d vs %d\n", group_a, group_b); + igt_assert_f(group_a == group_b, + "Tunnels have different group IDs: %d vs %d\n", + group_a, group_b); + + alloc_a = get_allocated_bw(d->drm_fd, outs[0]); + alloc_b = get_allocated_bw(d->drm_fd, outs[1]); + estimated_a = get_estimated_bw(d->drm_fd, outs[0]); + estimated_b = get_estimated_bw(d->drm_fd, outs[1]); + + /* + * Per-tunnel "Estimated BW" reported by the TBT Connection Manager + * is (this tunnel's allocated BW) + (group free BW). Two tunnels in + * the same group therefore see the same group_free, even though + * their per-tunnel estimated values legitimately differ when their + * allocations differ. The shared-group invariant is: + * + * estimated_a - alloc_a == estimated_b - alloc_b == group_free + * + * and that group_free must be non-negative. + */ + group_free_a = estimated_a - alloc_a; + group_free_b = estimated_b - alloc_b; + igt_info("[dual-bw-sum] group=%d alloc_a=%d estimated_a=%d " + "alloc_b=%d estimated_b=%d group_free_a=%d group_free_b=%d\n", + group_a, alloc_a, estimated_a, alloc_b, estimated_b, + group_free_a, group_free_b); + igt_assert_f(alloc_a > 0 && alloc_b > 0, + "Both outputs must have positive allocated BW (got %d, %d)\n", + alloc_a, alloc_b); + igt_assert_f(group_free_a == group_free_b, + "Grouped tunnels report different free BW (%d vs %d). " + "estimated_a=%d alloc_a=%d estimated_b=%d alloc_b=%d\n", + group_free_a, group_free_b, + estimated_a, alloc_a, estimated_b, alloc_b); + igt_assert_f(group_free_a >= 0, + "Negative group free BW (%d): allocations overran the pool\n", + group_free_a); + + cleanup_outputs(d, outs, 2, fbs); +} + +/* + * test_dual_limit_isolation - Per-tunnel bw_limit isolation within a shared + * group. + * + * The strong contract being tested: bw_limit is per-tunnel state + * (tunnel->bw_limit), not group state, even when two tunnels share one USB4 + * group's BW pool. Writing to A's bw_limit debugfs file must: + * + * (a) clip A's connector mode list (modes whose 18bpp BW exceed the cap + * are filtered from drmModeGetConnector() on A). + * (b) NOT clip B's connector mode list (B's mode count + preferred mode + * are unchanged at the moment A's cap is set). + * (c) After a retrigger that pins B to its prior mode, B's mode is + * preserved and B's allocation drifts by at most one granularity + * step (group BW accounting can redistribute the freed BW within + * the group, which can shift B's bucket; that is allowed). + * + * This complements dual-bw-sum (which tests the group BW invariant) and + * mst-limit-fallback (which tests bw_limit on a single tunnel with two + * streams). Neither covers the per-tunnel-vs-group scope of bw_limit. + */ +static void test_dual_limit_isolation(data_t *d) +{ + igt_output_t *outs[2] = { d->output, d->output2 }; + struct igt_fb fbs[2] = {}, fbs2[2] = {}; + drmModeModeInfo *modes[2] = {}; + drmModeModeInfo limited_mode, mode_a_before, mode_b_before; + drmModeConnector *conn; + uint32_t connector_id_a, connector_id_b; + int alloc_a_before, alloc_b_before, alloc_a_after, alloc_b_after, limit_a; + int gran_b, delta_b; + int b_modes_unfiltered, b_modes_under_a_limit; + int group_a, group_b; + bool b_preferred_under_a_limit; + const drmModeModeInfo *mode_b_after; + + do_modeset(d, outs, 2, NULL, fbs); + + /* + * Sanity: the require_dual_sst_same_group() helper at the call site + * already filters by group, but assert it inside the test too so the + * trace is unambiguous when looking at logs. + */ + group_a = get_tunnel_group_id(d->drm_fd, outs[0]); + group_b = get_tunnel_group_id(d->drm_fd, outs[1]); + igt_assert_f(group_a >= 0 && group_b >= 0 && group_a == group_b, + "Pair not in same group: group_a=%d group_b=%d\n", + group_a, group_b); + + mode_a_before = *igt_output_get_mode(outs[0]); + mode_b_before = *igt_output_get_mode(outs[1]); + alloc_a_before = get_allocated_bw(d->drm_fd, outs[0]); + alloc_b_before = get_allocated_bw(d->drm_fd, outs[1]); + gran_b = get_granularity(d->drm_fd, outs[1]); + limit_a = alloc_a_before / 2; + igt_require_f(limit_a > 0, "Allocated BW too small for test\n"); + + /* + * Probe B's connector once with no cap on A so we can compare the + * mode-list count + preferred-mode presence after applying A's cap. + */ + connector_id_a = outs[0]->config.connector->connector_id; + connector_id_b = outs[1]->config.connector->connector_id; + + conn = drmModeGetConnector(d->drm_fd, connector_id_b); + igt_assert_f(conn, "Failed to probe B unfiltered\n"); + b_modes_unfiltered = conn->count_modes; + drmModeFreeConnector(conn); + + /* + * Apply limit to tunnel A only, then probe both connectors: + * - A's filtered list: pick the highest-clock surviving mode. + * - B's filtered list: must be unchanged (count + preferred mode + * present), which is the per-tunnel-scope assertion. + */ + set_bw_limit(d->drm_fd, outs[0], limit_a); + + conn = drmModeGetConnector(d->drm_fd, connector_id_a); + if (!conn || conn->count_modes == 0) { + if (conn) + drmModeFreeConnector(conn); + set_bw_limit(d->drm_fd, outs[0], 0); + igt_skip("No modes on A after applying bw_limit\n"); + } + if (!igt_connector_find_highest_clock_mode_in(conn, &limited_mode)) { + drmModeFreeConnector(conn); + set_bw_limit(d->drm_fd, outs[0], 0); + igt_skip("No modes available within limit=%d\n", limit_a); + } + drmModeFreeConnector(conn); + + conn = drmModeGetConnector(d->drm_fd, connector_id_b); + igt_assert_f(conn, "Failed to reprobe B under A's cap\n"); + b_modes_under_a_limit = conn->count_modes; + b_preferred_under_a_limit = + igt_connector_mode_in_list(conn, &mode_b_before); + drmModeFreeConnector(conn); + + igt_info("[dual-limit-isolation] group=%d " + "B_modes: unfiltered=%d under_A_limit=%d " + "B_preferred_under_A_limit=%d " + "A_clk_before=%d A_clk_under_limit=%d limit_a=%d\n", + group_a, b_modes_unfiltered, b_modes_under_a_limit, + b_preferred_under_a_limit, + mode_a_before.clock, limited_mode.clock, limit_a); + + /* Per-tunnel scope: A's cap must NOT shrink B's mode list. */ + igt_assert_f(b_modes_under_a_limit == b_modes_unfiltered, + "B's mode count changed when A was capped: " + "unfiltered=%d under_A_limit=%d (bw_limit leaked from A to B)\n", + b_modes_unfiltered, b_modes_under_a_limit); + igt_assert_f(b_preferred_under_a_limit, + "B's previously-active mode (clk=%d) was filtered out " + "when A was capped (bw_limit leaked from A to B)\n", + mode_b_before.clock); + + /* A's cap took effect on A's own list. */ + igt_assert_f(limited_mode.clock < mode_a_before.clock, + "A's mode list was not constrained by its bw_limit: " + "limited_clock=%d, original_clock=%d\n", + limited_mode.clock, mode_a_before.clock); + + /* + * Pin tunnel B to its prior mode and bring A up at the limited + * mode. After commit, B's mode must be preserved and B's + * allocation must stay within one granularity step (the freed + * BW from A may shift B's BWA bucket via group accounting). + */ + modes[0] = &limited_mode; + modes[1] = &mode_b_before; + retrigger_modeset(d, outs, 2, modes, fbs, fbs2); + + alloc_a_after = get_allocated_bw(d->drm_fd, outs[0]); + alloc_b_after = get_allocated_bw(d->drm_fd, outs[1]); + mode_b_after = igt_output_get_mode(outs[1]); + delta_b = abs(alloc_b_after - alloc_b_before); + + igt_info("[dual-limit-isolation] post-retrigger: " + "alloc_a: %d->%d alloc_b: %d->%d (gran=%d delta=%d) " + "B_clk: %d->%d\n", + alloc_a_before, alloc_a_after, + alloc_b_before, alloc_b_after, gran_b, delta_b, + mode_b_before.clock, mode_b_after->clock); + igt_assert_f(alloc_a_after > 0, + "A allocated BW %d <= 0 after limited modeset\n", + alloc_a_after); + igt_assert_f(mode_b_after->clock == mode_b_before.clock, + "B mode changed across A's cap retrigger: " + "before clk=%d after clk=%d\n", + mode_b_before.clock, mode_b_after->clock); + igt_assert_f(alloc_b_after > 0, + "B alloc invalid after retrigger: %d\n", alloc_b_after); + igt_assert_f(delta_b <= gran_b, + "B alloc drifted beyond one granularity step: " + "before=%d after=%d gran=%d delta=%d\n", + alloc_b_before, alloc_b_after, gran_b, delta_b); + + set_bw_limit(d->drm_fd, outs[0], 0); + cleanup_outputs(d, outs, 2, fbs2); +} + +static void test_dual_bwa_disable(data_t *d) +{ + igt_output_t *outs[2] = { d->output, d->output2 }; + struct igt_fb fbs[2] = {}; + int alloc_b_before, alloc_b_after, gran_b, delta_b; + int group_a, group_b; + + do_modeset(d, outs, 2, NULL, fbs); + require_bwa(d, outs[0]); + require_bwa(d, outs[1]); + + group_a = get_tunnel_group_id(d->drm_fd, outs[0]); + group_b = get_tunnel_group_id(d->drm_fd, outs[1]); + igt_require_f(group_a >= 0 && group_b >= 0, + "Invalid tunnel group IDs: %d vs %d\n", + group_a, group_b); + igt_require_f(group_a == group_b, + "Need two tunnels in same group, got %d vs %d\n", + group_a, group_b); + + alloc_b_before = get_allocated_bw(d->drm_fd, outs[1]); + gran_b = get_granularity(d->drm_fd, outs[1]); + + set_bwa_enabled(d->drm_fd, outs[0], false); + + igt_assert_f(!get_bwa_enabled(d->drm_fd, outs[0]), + "Tunnel A BWA still enabled\n"); + igt_assert_f(get_bwa_enabled(d->drm_fd, outs[1]), + "Tunnel B BWA was also disabled\n"); + igt_assert_f(get_allocated_bw(d->drm_fd, outs[0]) == -1, + "Tunnel A Allocated BW != -1 after BWA disable\n"); + + alloc_b_after = get_allocated_bw(d->drm_fd, outs[1]); + delta_b = abs(alloc_b_after - alloc_b_before); + igt_info("[dual-bwa-disable] alloc_b: before=%d after=%d gran_b=%d " + "delta=%d\n", + alloc_b_before, alloc_b_after, gran_b, delta_b); + igt_assert_f(alloc_b_after > 0, + "Tunnel B alloc invalid after disabling A's BWA: %d\n", + alloc_b_after); + igt_assert_f(delta_b <= gran_b, + "Tunnel B alloc drifted beyond granularity: " + "before=%d after=%d gran=%d\n", + alloc_b_before, alloc_b_after, gran_b); + + /* + * Re-enable tunnel A BWA on a quiesced display. BWA negotiation with + * the USB4 host runs as part of the display-enable transition, so we + * first bring the displays down, flip the bw_alloc_enable knob, and + * bring them back up. The fresh modeset is what verifies that + * allocation can be restored after re-enabling the knob. + */ + cleanup_outputs(d, outs, 2, fbs); + set_bwa_enabled(d->drm_fd, outs[0], true); + igt_assert_f(get_bwa_enabled(d->drm_fd, outs[0]), + "Tunnel A BWA not re-enabled\n"); + do_modeset(d, outs, 2, NULL, fbs); + igt_assert_f(get_allocated_bw(d->drm_fd, outs[0]) > 0, + "Tunnel A alloc not restored after BWA re-enable\n"); + + cleanup_outputs(d, outs, 2, fbs); +} + +/* + * test_mst_basic - Two MST streams share one tunnel object so both MST + * connectors expose the same per-tunnel debugfs allocation. Verify that + * (a) the two connectors report the same allocated BW, (b) the value is + * positive. We deliberately do not compare the allocation to a 18bpp + * pixel-rate estimate of either stream because the kernel may use DSC + * to compress streams below 18bpp aggregate, making such estimates + * fragile. + */ +static void test_mst_basic(data_t *d) +{ + struct igt_fb fbs[2] = {}; + int alloc0, alloc1; + + do_modeset(d, d->mst_outputs, 2, NULL, fbs); + + alloc0 = get_allocated_bw(d->drm_fd, d->mst_outputs[0]); + alloc1 = get_allocated_bw(d->drm_fd, d->mst_outputs[1]); + igt_info("[mst-basic] alloc0=%d kB/s alloc1=%d kB/s\n", alloc0, alloc1); + igt_assert_f(alloc0 > 0, + "Allocated BW %d <= 0 with 2 MST streams\n", alloc0); + igt_assert_f(alloc0 == alloc1, + "MST connectors under same tunnel report different " + "allocations: %d vs %d\n", alloc0, alloc1); + + cleanup_outputs(d, d->mst_outputs, 2, fbs); +} + +/* + * test_mst_modeset_bw - Raise stream 0's mode from lowest- to preferred- + * clock while stream 1 keeps whatever do_modeset() picks by default. + * Aggregate allocation should not decrease. Strict-greater is avoided + * because BWA granularity rounding can make distinct modes share an + * allocation bucket. + */ +static void test_mst_modeset_bw(data_t *d) +{ + struct igt_fb fbs_low0[2] = {}, fbs_high0[2] = {}; + drmModeModeInfo low0_copy, high0_copy; + drmModeModeInfo *modes[2]; + int bw_low0_default1, bw_high0_default1; + + igt_require_f(d->mst_outputs[0]->config.connector->count_modes >= 2, + "MST output 0 needs at least 2 modes\n"); + igt_require_f(igt_connector_find_lowest_clock_mode(d->mst_outputs[0], &low0_copy) && + igt_connector_find_preferred_mode(d->mst_outputs[0], &high0_copy), + "Could not locate low / preferred modes on MST output 0\n"); + igt_require_f(high0_copy.clock > low0_copy.clock, + "Preferred mode clock %d not greater than lowest clock %d " + "on MST output 0\n", high0_copy.clock, low0_copy.clock); + + modes[0] = &low0_copy; + modes[1] = NULL; + do_modeset(d, d->mst_outputs, 2, modes, fbs_low0); + bw_low0_default1 = get_allocated_bw(d->drm_fd, d->mst_outputs[0]); + + cleanup_outputs(d, d->mst_outputs, 2, fbs_low0); + modes[0] = &high0_copy; + modes[1] = NULL; + do_modeset(d, d->mst_outputs, 2, modes, fbs_high0); + bw_high0_default1 = get_allocated_bw(d->drm_fd, d->mst_outputs[0]); + + igt_info("[mst-modeset-bw] bw_low0_default1=%d bw_high0_default1=%d " + "low0_clk=%d high0_clk=%d\n", + bw_low0_default1, bw_high0_default1, + low0_copy.clock, high0_copy.clock); + igt_assert_f(bw_high0_default1 >= bw_low0_default1, + "BW decreased when raising stream 0's mode: low=%d high=%d\n", + bw_low0_default1, bw_high0_default1); + + cleanup_outputs(d, d->mst_outputs, 2, fbs_high0); +} + +/* + * test_mst_partial_disable - Disabling one MST stream leaves the tunnel + * alive on the remaining stream. Allocation must stay positive and not + * grow. Strict-less-than is avoided because granularity rounding can + * make the residual allocation share a bucket with the two-stream value. + */ +static void test_mst_partial_disable(data_t *d) +{ + struct igt_fb fbs[2] = {}; + int bw_both, bw_one; + + do_modeset(d, d->mst_outputs, 2, NULL, fbs); + bw_both = get_allocated_bw(d->drm_fd, d->mst_outputs[0]); + igt_assert_f(bw_both > 0, "Expected positive BW with 2 streams\n"); + + igt_output_set_crtc(d->mst_outputs[1], NULL); + igt_display_commit2(&d->display, COMMIT_ATOMIC); + igt_remove_fb(d->drm_fd, &fbs[1]); + + igt_assert_f(has_tunnel(d->drm_fd, d->mst_outputs[0]), + "Tunnel disappeared after partial MST disable\n"); + + bw_one = get_allocated_bw(d->drm_fd, d->mst_outputs[0]); + igt_info("[mst-partial-disable] bw_both=%d bw_one=%d\n", + bw_both, bw_one); + igt_assert_f(bw_one > 0, + "Allocated BW %d <= 0 after partial MST disable\n", bw_one); + igt_assert_f(bw_one <= bw_both, + "BW after partial disable increased: one=%d both=%d\n", + bw_one, bw_both); + + cleanup_outputs(d, d->mst_outputs, 1, fbs); +} + +/* + * mst_outputs_remapped_with_bw - True iff both cached MST output pointers + * are non-NULL, both expose a tunnel via debugfs, and at least one of them + * has a positive Allocated BW. The "at least one" rule reflects the known + * resume limitation: intel_dp_tunnel_resume() only re-allocates BW for the + * single crtc_state it's passed (see "TODO: Add support for MST" in + * drivers/gpu/drm/i915/display/intel_dp_tunnel.c::intel_dp_tunnel_resume()). + */ +static bool mst_outputs_remapped_with_bw(data_t *d) +{ + if (!d->mst_outputs[0] || !d->mst_outputs[1]) + return false; + + if (!has_tunnel(d->drm_fd, d->mst_outputs[0]) || + !has_tunnel(d->drm_fd, d->mst_outputs[1])) + return false; + + return get_allocated_bw(d->drm_fd, d->mst_outputs[0]) > 0 || + get_allocated_bw(d->drm_fd, d->mst_outputs[1]) > 0; +} + +static void test_mst_suspend(data_t *d) +{ + struct igt_fb fbs[2] = {}; + int bw_before, bw_after, bw_after1; + /* + * Stable pre-suspend identity (PATH + EDID serial) for both streams. + * After resume the kernel re-enumerates connectors with new DRM IDs; + * PATH and EDID serial persist and let us map old IGT pointers to + * new connectors without a fresh modeset (kernel retains the BW + * allocation). PATH is preferred (captures MST topology); EDID + * serial is a fallback. + */ + char pre_path[2][128] = {}; + char pre_serial[2][64] = {}; + char pre_name[2][32] = {}; + int i; + + for (i = 0; i < 2; i++) { + uint32_t cid = d->mst_outputs[i]->config.connector->connector_id; + char tmp[32]; + + igt_connector_get_info(d->drm_fd, cid, + tmp, sizeof(tmp), + pre_serial[i], sizeof(pre_serial[i]), + pre_path[i], sizeof(pre_path[i])); + snprintf(pre_name[i], sizeof(pre_name[i]), "%s", + d->mst_outputs[i]->name); + igt_info("[mst-suspend] pre[%d]: %s id=%u path='%s' serial='%s'\n", + i, pre_name[i], cid, pre_path[i], pre_serial[i]); + } + + do_modeset(d, d->mst_outputs, 2, NULL, fbs); + bw_before = get_allocated_bw(d->drm_fd, d->mst_outputs[0]); + igt_assert_f(bw_before > 0, "Expected positive BW before suspend\n"); + + igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE); + + /* + * Fast path: poll up to 3s for cached MST pointers to regain a + * working tunnel - that means the kernel preserved their DRM IDs. + */ + igt_until_timeout(3) { + if (mst_outputs_remapped_with_bw(d)) + break; + usleep(100 * 1000); + } + + if (mst_outputs_remapped_with_bw(d)) { + igt_info("[mst-suspend] cached pointers survived resume\n"); + } else { + bool mst_found = false; + + /* + * Refresh IGT's connector/output cache. The kernel may have + * re-created MST connectors with new DRM IDs while the + * restored display state is still active; we keep the FB + * handles and only rebuild the IGT display object before + * remapping outputs. Drop the stale igt_output_t * pointers + * first so the cleanup-by-name exit handler doesn't race + * post-fini access. + */ + d->mst_outputs[0] = NULL; + d->mst_outputs[1] = NULL; + igt_display_fini(&d->display); + igt_display_require(&d->display, d->drm_fd); + + igt_until_timeout(60) { + uint32_t new_ids[2] = {0, 0}; + bool mapped[2] = {false, false}; + + igt_connector_reprobe_all(d->drm_fd); + + for (i = 0; i < 2; i++) { + if (pre_path[i][0] && + igt_connector_find_by_path(d->drm_fd, + pre_path[i], + &new_ids[i])) { + mapped[i] = true; + continue; + } + if (pre_serial[i][0] && + igt_connector_find_by_serial(d->drm_fd, + pre_serial[i], + &new_ids[i])) { + mapped[i] = true; + } + } + + if (!mapped[0] || !mapped[1]) { + usleep(500 * 1000); + continue; + } + + /* + * Reject mapping both pre-suspend identities to the + * same connector_id - happens if a sink reports an + * empty / duplicated EDID serial and PATH lookup + * fell back to that. + */ + if (new_ids[0] == new_ids[1]) { + igt_info("[mst-suspend] both streams mapped to " + "same connector id=%u, retrying\n", + new_ids[0]); + usleep(500 * 1000); + continue; + } + + for (i = 0; i < 2; i++) + d->mst_outputs[i] = + igt_connector_find_output_by_id(&d->display, + new_ids[i]); + + if (mst_outputs_remapped_with_bw(d)) { + igt_info("[mst-suspend] remapped: " + "pre=%s->%s id=%u pre=%s->%s id=%u\n", + pre_name[0], + d->mst_outputs[0]->name, new_ids[0], + pre_name[1], + d->mst_outputs[1]->name, new_ids[1]); + mst_found = true; + break; + } + usleep(500 * 1000); + } + if (!mst_found) { + igt_remove_fb(d->drm_fd, &fbs[0]); + igt_remove_fb(d->drm_fd, &fbs[1]); + igt_skip("MST outputs not re-mapped 60s after resume " + "(pre=%s,%s)\n", pre_name[0], pre_name[1]); + } + } + + /* + * Known limitation: intel_dp_tunnel_resume() takes a single + * crtc_state and re-allocates BW only for that pipe (see + * drivers/gpu/drm/i915/display/intel_dp_tunnel.c, the + * "TODO: Add support for MST" hunk in intel_dp_tunnel_resume()). + * MST sinks therefore see only one stream's BW re-allocated post- + * resume; pick whichever connector has the positive value. + */ + bw_after = get_allocated_bw(d->drm_fd, d->mst_outputs[0]); + bw_after1 = get_allocated_bw(d->drm_fd, d->mst_outputs[1]); + if (bw_after <= 0) + bw_after = bw_after1; + igt_info("[mst-suspend] BW before=%d after[0]=%d after[1]=%d " + "(partial resume expected)\n", + bw_before, get_allocated_bw(d->drm_fd, d->mst_outputs[0]), + bw_after1); + igt_assert_f(bw_after > 0, + "MST allocated BW <= 0 on both connectors after resume\n"); + + cleanup_outputs(d, d->mst_outputs, 2, fbs); +} + +/* + * mst_clear_limits - Clear bw_limit on all MST children up to and + * including index @upto. Safe to call from skip paths. + */ +static void mst_clear_limits(data_t *d, int upto) +{ + int k; + + for (k = 0; k <= upto; k++) + set_bw_limit(d->drm_fd, d->mst_outputs[k], 0); +} + +static void test_mst_limit_fallback(data_t *d) +{ + struct igt_fb fbs[2] = {}, fbs2[2] = {}; + drmModeModeInfo best_modes[2], pref_modes[2]; + drmModeModeInfo *modes[2]; + int bw_both, limit, bw_after; + igt_output_t *parent = d->mst_outputs[0]; + int i, min_pref_18bpp; + bool active_modeset = false; + const char *skip_reason = NULL; + char skip_msg[160] = {}; + + do_modeset(d, d->mst_outputs, 2, NULL, fbs); + active_modeset = true; + bw_both = get_allocated_bw(d->drm_fd, parent); + igt_assert_f(bw_both > 0, "Expected positive BW with 2 MST streams\n"); + + /* + * bw_limit filters modes using 18bpp minimum per + * intel_dp_mode_valid_format(). Compute the 18bpp BW needed for + * each stream's preferred mode, then set a limit one kB/s below + * the smaller of the two so BOTH preferred modes are filtered + * out on each connector but as many fallback modes as possible + * remain available. + */ + min_pref_18bpp = INT_MAX; + for (i = 0; i < 2; i++) { + if (!igt_connector_find_preferred_mode(d->mst_outputs[i], + &pref_modes[i])) { + snprintf(skip_msg, sizeof(skip_msg), + "No preferred mode on MST output %d\n", i); + skip_reason = skip_msg; + goto out; + } + min_pref_18bpp = min(min_pref_18bpp, + (int)(pref_modes[i].clock * 18 / 8)); + } + limit = min_pref_18bpp - 1; + if (limit <= 0) { + skip_reason = "Cannot derive meaningful limit\n"; + goto out; + } + + /* + * The MST connectors share a single tunnel object, so bw_limit is + * one knob: setting it via the parent connector is sufficient for + * every child's mode list to be re-filtered. We still probe each + * child connector independently because each has its own native + * mode set. + */ + set_bw_limit(d->drm_fd, parent, limit); + for (i = 0; i < 2; i++) { + uint32_t cid; + drmModeConnector *conn; + + cid = d->mst_outputs[i]->config.connector->connector_id; + conn = drmModeGetConnector(d->drm_fd, cid); + if (!conn || conn->count_modes == 0) { + if (conn) + drmModeFreeConnector(conn); + snprintf(skip_msg, sizeof(skip_msg), + "No modes left on MST output %d at limit=%d\n", + i, limit); + skip_reason = skip_msg; + goto out; + } + if (!igt_connector_find_highest_clock_mode_in(conn, + &best_modes[i])) { + drmModeFreeConnector(conn); + snprintf(skip_msg, sizeof(skip_msg), + "No usable fallback on MST output %d at limit=%d\n", + i, limit); + skip_reason = skip_msg; + goto out; + } + igt_info("[mst-limit-fallback] out%d: pref=%dx%d@%d" + " best_within_limit=%dx%d@%d limit=%d kB/s\n", + i, pref_modes[i].hdisplay, pref_modes[i].vdisplay, + pref_modes[i].vrefresh, + best_modes[i].hdisplay, best_modes[i].vdisplay, + best_modes[i].vrefresh, limit); + if (best_modes[i].clock >= pref_modes[i].clock) { + drmModeFreeConnector(conn); + snprintf(skip_msg, sizeof(skip_msg), + "Preferred mode not filtered on out%d " + "(limit %d too generous)\n", i, limit); + skip_reason = skip_msg; + goto out; + } + modes[i] = &best_modes[i]; + drmModeFreeConnector(conn); + } + + cleanup_outputs(d, d->mst_outputs, 2, fbs); + active_modeset = false; + do_modeset(d, d->mst_outputs, 2, modes, fbs2); + active_modeset = true; + bw_after = get_allocated_bw(d->drm_fd, parent); + + /* + * Primary signal that the cap took effect: each stream picked a + * strictly lower-clock mode (already asserted above). bw_after + * is logged as supporting evidence; granularity rounding can + * legitimately leave the aggregate in the same bucket, so a + * strict-decrease assert here would be flaky. + */ + igt_info("[mst-limit-fallback] bw_both=%d kB/s limit=%d kB/s" + " bw_after=%d kB/s pass=(bw_after > 0 && <= bw_both): %d, %d\n", + bw_both, limit, bw_after, bw_after, bw_both); + igt_assert_f(bw_after > 0, + "MST allocated BW %d <= 0 after limited modeset\n", + bw_after); + igt_assert_f(bw_after <= bw_both, + "MST BW after limit (%d) > pre-limit (%d)\n", + bw_after, bw_both); + + mst_clear_limits(d, 1); + cleanup_outputs(d, d->mst_outputs, 2, fbs2); + return; + +out: + mst_clear_limits(d, 1); + if (active_modeset) + cleanup_outputs(d, d->mst_outputs, 2, fbs); + igt_skip("%s", skip_reason); +} + +static void test_mst_bwa_re_enable(data_t *d) +{ + struct igt_fb fbs[2] = {}; + igt_output_t *parent = d->mst_outputs[0]; + int bw_both, granularity, post, disabled_bw; + + do_modeset(d, d->mst_outputs, 2, NULL, fbs); + require_bwa(d, parent); + + bw_both = get_allocated_bw(d->drm_fd, parent); + granularity = get_granularity(d->drm_fd, parent); + igt_assert_f(bw_both > 0, "Expected positive BW with 2 MST streams\n"); + igt_assert_f(granularity > 0, + "Invalid BW granularity: %d\n", granularity); + + set_bwa_enabled(d->drm_fd, parent, false); + disabled_bw = get_allocated_bw(d->drm_fd, parent); + igt_assert_f(!get_bwa_enabled(d->drm_fd, parent), + "BWA still enabled after disabling\n"); + igt_assert_f(disabled_bw == -1, + "Allocated BW should be -1 after BWA disable, got %d\n", + disabled_bw); + + /* + * Re-enable BWA and trigger a fresh modeset for all MST streams. + * BWA is re-allocated on the display-enable (off->on) path; toggling + * bw_alloc_enable with the display active does not re-negotiate BWA. + */ + set_bwa_enabled(d->drm_fd, parent, true); + igt_assert_f(get_bwa_enabled(d->drm_fd, parent), + "BWA not re-enabled\n"); + cleanup_outputs(d, d->mst_outputs, 2, fbs); + do_modeset(d, d->mst_outputs, 2, NULL, fbs); + + post = get_allocated_bw(d->drm_fd, parent); + igt_info("[mst-bwa-re-enable] bw_both=%d kB/s post=%d kB/s" + " pass=(post == bw_both): %d == %d\n", + bw_both, post, post, bw_both); + igt_assert_f(post > 0, + "Allocated BW %d <= 0 after MST BWA re-enable\n", post); + igt_assert_f(post == bw_both, + "Post-re-enable BW %d != bw_both %d\n", post, bw_both); + + cleanup_outputs(d, d->mst_outputs, 2, fbs); +} + +IGT_TEST_DESCRIPTION("Functional tests for i915 DP tunneling over " + "USB4/Thunderbolt using debugfs hooks"); + +int igt_main() +{ + data_t data = {}; + + igt_fixture() { + data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE); + data.devid = intel_get_drm_devid(data.drm_fd); + kmstest_set_vt_graphics_mode(); + igt_display_require(&data.display, data.drm_fd); + igt_display_require_output(&data.display); + + data.output = find_tunneled_output(&data); + if (!data.output) { + /* + * The TBT tunnel debugfs may be transiently + * unavailable right after a previous test's crash or + * a suspend/resume cycle. Poll for up to 5s instead + * of an unconditional fixed sleep so the common case + * (tunnel already present) costs ~0. + */ + igt_until_timeout(5) { + data.output = find_tunneled_output(&data); + if (data.output) + break; + usleep(200 * 1000); + } + } + igt_require_f(data.output, + "No connected DP output with tunnel found\n"); + igt_info("Using %s as primary tunneled output\n", + data.output->name); + register_for_cleanup(&data, data.output); + + /* + * Register a process-exit handler so that bw_limit and + * bwa_enable are always restored even if the test exits via + * SIGABRT, SIGTERM, or any other unhandled signal. + */ + g_data = &data; + igt_install_exit_handler(exit_handler); + } + + igt_describe("Verify a tunneled output exists, modesets the preferred mode, " + "allocates positive BW and reports a DPRX max rate >= link max rate"); + igt_subtest("basic") { + test_basic(&data, require_sst(&data)); + } + + igt_describe("Verify allocated BW updates correctly when switching modes " + "and returns to the same value on a low->high->low round-trip"); + igt_subtest("modeset-bw") { + test_modeset_bw(&data, require_sst(&data)); + } + + igt_describe("Verify disabling a tunneled output releases its allocated BW"); + igt_subtest("disable-bw") { + test_disable_bw(&data, require_sst(&data)); + } + + igt_describe("Verify tunnel state is fully restored after mem suspend/resume"); + igt_subtest("suspend") { + test_suspend(&data, require_sst(&data)); + } + + igt_describe("Verify bw_limit below preferred mode's BW removes it from connector mode list " + "and a lower-BW fallback can be modeseted"); + igt_subtest("limit-fallback") { + test_limit_fallback(&data, require_sst(&data)); + } + + igt_describe("Verify preferred mode accepted at its exact BW threshold, " + "rejected one kB/s below it, and restored after clearing the limit"); + igt_subtest("limit-boundary") { + test_limit_boundary(&data, require_sst(&data)); + } + + igt_describe("Verify bw_limit is reset to 0 across suspend/resume because " + "the tunnel object is destroyed and re-created"); + igt_subtest("limit-suspend") { + test_limit_suspend(&data, require_sst(&data)); + } + + igt_describe("Disable BWA: tunnel stays alive with allocated BW = -1 and " + "DPCD-derived link rate; re-enable BWA + fresh modeset restores " + "the original allocation and link rate"); + igt_subtest("bwa-re-enable") { + test_bwa_re_enable(&data, require_sst(&data)); + } + + igt_describe("Verify 10 rapid BWA disable/enable cycles do not corrupt the display"); + igt_subtest("bwa-cycle") { + test_bwa_cycle(&data, require_sst(&data)); + } + + igt_describe("Verify two SST tunnels in the same USB4 group report the " + "same group_free BW (estimated - allocated)"); + igt_subtest("dual-bw-sum") { + require_dual_sst_same_group(&data); + test_dual_bw_sum(&data); + } + + igt_describe("Verify bw_limit is per-tunnel-object, not per-group: " + "with two SST tunnels in one USB4 group, a cap on tunnel A " + "clips A's mode list and not B's, and B's previously-active " + "mode remains in B's filtered list"); + igt_subtest("dual-limit-isolation") { + require_dual_sst_same_group(&data); + test_dual_limit_isolation(&data); + } + + igt_describe("Verify BWA disable on one tunnel does not affect the other " + "tunnel sharing the same USB4 group BW pool"); + igt_subtest("dual-bwa-disable") { + require_dual_sst_same_group(&data); + test_dual_bwa_disable(&data); + } + + igt_describe("Verify two MST connectors sharing one tunnel object " + "report the same per-tunnel allocated BW"); + igt_subtest("mst-basic") { + require_mst_pair(&data); + test_mst_basic(&data); + } + + igt_describe("Verify aggregate allocated BW does not decrease when one " + "MST stream's mode is raised"); + igt_subtest("mst-modeset-bw") { + require_mst_pair(&data); + test_mst_modeset_bw(&data); + } + + igt_describe("Verify disabling one MST stream leaves the tunnel alive " + "with positive residual BW not larger than the two-stream " + "allocation"); + igt_subtest("mst-partial-disable") { + require_mst_pair(&data); + test_mst_partial_disable(&data); + } + + igt_describe("Verify MST tunnel survives suspend/resume; partial " + "per-pipe BW re-allocation is accepted (kernel TODO)"); + igt_subtest("mst-suspend") { + require_mst_pair(&data); + test_mst_suspend(&data); + } + + igt_describe("Verify bw_limit on the shared MST tunnel forces both " + "streams to fall back to lower-clock modes"); + igt_subtest("mst-limit-fallback") { + require_mst_pair(&data); + test_mst_limit_fallback(&data); + } + + igt_describe("Verify BWA re-enable + fresh modeset on an MST tunnel " + "restores allocation for all active streams to the " + "pre-disable value"); + igt_subtest("mst-bwa-re-enable") { + require_mst_pair(&data); + test_mst_bwa_re_enable(&data); + } + + igt_fixture() { + /* + * Reset bw_limit=0 and bwa_enable=1 on all tracked tunneled + * outputs before tearing down the display. try_reset_output() + * is non-asserting and guards with has_tunnel(), so it is safe + * even if a connector was re-enumerated after suspend/resume. + * This covers primary, dual-SST (output2), and all MST outputs. + */ + restore_all_debugfs(&data); + igt_display_fini(&data.display); + drm_close_driver(data.drm_fd); + data.drm_fd = -1; + } +} diff --git a/tests/meson.build b/tests/meson.build index 60cea3aa8..1f7a1b42b 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -279,6 +279,10 @@ intel_kms_progs = [ 'kms_sharpness_filter', ] +if libdisplay_info.found() + intel_kms_progs += 'kms_tbt' +endif + intel_xe_progs = [ 'xe_wedged', 'xe_ccs', @@ -407,6 +411,7 @@ extra_sources = { 'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ], 'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ], 'kms_psr2_sf': [ join_paths ('intel', 'kms_dsc_helper.c') ], + 'kms_tbt': [ join_paths ('intel', 'kms_mst_helper.c') ], } # Extra dependencies used on core and Intel drivers -- 2.25.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* ✓ i915.CI.BAT: success for tests/intel/kms_tbt: Add DP tunneling validation tests 2026-05-11 5:43 [PATCH i-g-t 0/2] tests/intel/kms_tbt: Add DP tunneling validation tests Kunal Joshi 2026-05-11 5:43 ` [PATCH i-g-t 1/2] lib/igt_connector_helper: Add DRM connector helpers using libdisplay-info Kunal Joshi 2026-05-11 5:43 ` [PATCH i-g-t 2/2] tests/intel/kms_tbt: Add DP tunneling validation tests Kunal Joshi @ 2026-05-12 0:14 ` Patchwork 2026-05-12 0:50 ` ✓ Xe.CI.BAT: " Patchwork ` (2 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2026-05-12 0:14 UTC (permalink / raw) To: Kunal Joshi; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 2211 bytes --] == Series Details == Series: tests/intel/kms_tbt: Add DP tunneling validation tests URL : https://patchwork.freedesktop.org/series/166290/ State : success == Summary == CI Bug Log - changes from IGT_8903 -> IGTPW_15146 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/index.html Participating hosts (42 -> 40) ------------------------------ Missing (2): bat-dg2-13 fi-snb-2520m Known issues ------------ Here are the changes found in IGTPW_15146 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@core_hotunplug@unbind-rebind: - bat-rpls-4: [PASS][1] -> [DMESG-WARN][2] ([i915#13400]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8903/bat-rpls-4/igt@core_hotunplug@unbind-rebind.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/bat-rpls-4/igt@core_hotunplug@unbind-rebind.html #### Possible fixes #### * igt@i915_selftest@live@workarounds: - bat-dg2-14: [DMESG-FAIL][3] ([i915#12061]) -> [PASS][4] +1 other test pass [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8903/bat-dg2-14/igt@i915_selftest@live@workarounds.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/bat-dg2-14/igt@i915_selftest@live@workarounds.html [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 [i915#13400]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13400 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_8903 -> IGTPW_15146 * Linux: CI_DRM_18467 -> CI_DRM_18469 CI-20190529: 20190529 CI_DRM_18467: f8ee23694aa6be213355905a78f79bb1b0861565 @ git://anongit.freedesktop.org/gfx-ci/linux CI_DRM_18469: 0ce1c813197dfbe15ff14143da97ec11161e1795 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_15146: 236252b6b6e0a9533bafd592dd033d4132aa888f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_8903: 6f88532e2fe22529195cc2f8cabff93d994688f8 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/index.html [-- Attachment #2: Type: text/html, Size: 2836 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* ✓ Xe.CI.BAT: success for tests/intel/kms_tbt: Add DP tunneling validation tests 2026-05-11 5:43 [PATCH i-g-t 0/2] tests/intel/kms_tbt: Add DP tunneling validation tests Kunal Joshi ` (2 preceding siblings ...) 2026-05-12 0:14 ` ✓ i915.CI.BAT: success for " Patchwork @ 2026-05-12 0:50 ` Patchwork 2026-05-12 3:20 ` ✗ Xe.CI.FULL: failure " Patchwork 2026-05-12 10:22 ` ✓ i915.CI.Full: success " Patchwork 5 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2026-05-12 0:50 UTC (permalink / raw) To: Kunal Joshi; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 1170 bytes --] == Series Details == Series: tests/intel/kms_tbt: Add DP tunneling validation tests URL : https://patchwork.freedesktop.org/series/166290/ State : success == Summary == CI Bug Log - changes from XEIGT_8903_BAT -> XEIGTPW_15146_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (13 -> 13) ------------------------------ No changes in participating hosts Changes ------- No changes found Build changes ------------- * IGT: IGT_8903 -> IGTPW_15146 * Linux: xe-5041-f8ee23694aa6be213355905a78f79bb1b0861565 -> xe-5043-0ce1c813197dfbe15ff14143da97ec11161e1795 IGTPW_15146: 236252b6b6e0a9533bafd592dd033d4132aa888f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_8903: 6f88532e2fe22529195cc2f8cabff93d994688f8 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-5041-f8ee23694aa6be213355905a78f79bb1b0861565: f8ee23694aa6be213355905a78f79bb1b0861565 xe-5043-0ce1c813197dfbe15ff14143da97ec11161e1795: 0ce1c813197dfbe15ff14143da97ec11161e1795 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/index.html [-- Attachment #2: Type: text/html, Size: 1729 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* ✗ Xe.CI.FULL: failure for tests/intel/kms_tbt: Add DP tunneling validation tests 2026-05-11 5:43 [PATCH i-g-t 0/2] tests/intel/kms_tbt: Add DP tunneling validation tests Kunal Joshi ` (3 preceding siblings ...) 2026-05-12 0:50 ` ✓ Xe.CI.BAT: " Patchwork @ 2026-05-12 3:20 ` Patchwork 2026-05-12 10:22 ` ✓ i915.CI.Full: success " Patchwork 5 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2026-05-12 3:20 UTC (permalink / raw) To: Kunal Joshi; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 41936 bytes --] == Series Details == Series: tests/intel/kms_tbt: Add DP tunneling validation tests URL : https://patchwork.freedesktop.org/series/166290/ State : failure == Summary == CI Bug Log - changes from XEIGT_8903_FULL -> XEIGTPW_15146_FULL ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with XEIGTPW_15146_FULL absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in XEIGTPW_15146_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_15146_FULL: ### IGT changes ### #### Possible regressions #### * igt@xe_exec_threads@threads-hang-rebind-err: - shard-bmg: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-10/igt@xe_exec_threads@threads-hang-rebind-err.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-10/igt@xe_exec_threads@threads-hang-rebind-err.html Known issues ------------ Here are the changes found in XEIGTPW_15146_FULL that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_big_fb@yf-tiled-64bpp-rotate-0: - shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#1124]) +2 other tests skip [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-7/igt@kms_big_fb@yf-tiled-64bpp-rotate-0.html * igt@kms_bw@linear-tiling-1-displays-target-1920x1080p: - shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#367]) [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_bw@linear-tiling-1-displays-target-1920x1080p.html * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs: - shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#2887]) +3 other tests skip [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs.html * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs: - shard-bmg: [PASS][6] -> [INCOMPLETE][7] ([Intel XE#7084]) +1 other test incomplete [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs: - shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#3432]) [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html * igt@kms_ccs@random-ccs-data-yf-tiled-ccs: - shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#2887]) [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-8/igt@kms_ccs@random-ccs-data-yf-tiled-ccs.html * igt@kms_chamelium_hpd@dp-hpd-after-suspend: - shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#2252]) +2 other tests skip [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-5/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html * igt@kms_content_protection@legacy-hdcp14@pipe-a-dp-2: - shard-bmg: NOTRUN -> [FAIL][11] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_content_protection@legacy-hdcp14@pipe-a-dp-2.html * igt@kms_content_protection@lic-type-1: - shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#7642]) [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-8/igt@kms_content_protection@lic-type-1.html * igt@kms_cursor_crc@cursor-onscreen-32x32: - shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#2320]) +1 other test skip [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-10/igt@kms_cursor_crc@cursor-onscreen-32x32.html * igt@kms_dp_link_training@non-uhbr-mst: - shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#4354] / [Intel XE#5882]) [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_dp_link_training@non-uhbr-mst.html * igt@kms_dsc@dsc-fractional-bpp: - shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#2244]) [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-10/igt@kms_dsc@dsc-fractional-bpp.html * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests: - shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#4422] / [Intel XE#7442]) [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-5/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html * igt@kms_fbcon_fbt@psr-suspend: - shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#6126] / [Intel XE#776]) [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@kms_fbcon_fbt@psr-suspend.html * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-dp2-hdmi-a3: - shard-bmg: [PASS][18] -> [FAIL][19] ([Intel XE#3321]) [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-dp2-hdmi-a3.html [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-dp2-hdmi-a3.html * igt@kms_flip@flip-vs-expired-vblank@a-edp1: - shard-lnl: NOTRUN -> [FAIL][20] ([Intel XE#301]) +1 other test fail [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html * igt@kms_flip@flip-vs-expired-vblank@c-dp2: - shard-bmg: NOTRUN -> [FAIL][21] ([Intel XE#3321]) +1 other test fail [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_flip@flip-vs-expired-vblank@c-dp2.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling: - shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#7178] / [Intel XE#7351]) [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html * igt@kms_frontbuffer_tracking@drrs-1p-offscreen-pri-shrfb-draw-blt: - shard-lnl: NOTRUN -> [SKIP][23] ([Intel XE#6312]) +1 other test skip [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-7/igt@kms_frontbuffer_tracking@drrs-1p-offscreen-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-fullscreen: - shard-bmg: NOTRUN -> [SKIP][24] ([Intel XE#2311]) +17 other tests skip [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-fullscreen.html * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-wc: - shard-lnl: NOTRUN -> [SKIP][25] ([Intel XE#656] / [Intel XE#7905]) [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-4/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt: - shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#4141]) +5 other tests skip [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbcdrrshdr-abgr161616f-draw-mmap-wc: - shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#7061]) [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcdrrshdr-abgr161616f-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-msflip-blt: - shard-lnl: NOTRUN -> [SKIP][28] ([Intel XE#7905]) +1 other test skip [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-7/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-msflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt: - shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#2313]) +14 other tests skip [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html * igt@kms_joiner@invalid-modeset-big-joiner: - shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#6901]) [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@kms_joiner@invalid-modeset-big-joiner.html * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier: - shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#7283]) [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier.html - shard-lnl: NOTRUN -> [SKIP][32] ([Intel XE#7283]) [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-7/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier.html * igt@kms_plane_cursor@overlay@pipe-c-dp-2-size-128: - shard-bmg: [PASS][33] -> [ABORT][34] ([Intel XE#7814]) +1 other test abort [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-3/igt@kms_plane_cursor@overlay@pipe-c-dp-2-size-128.html [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_plane_cursor@overlay@pipe-c-dp-2-size-128.html * igt@kms_plane_cursor@overlay@pipe-c-dp-2-size-256: - shard-bmg: [PASS][35] -> [DMESG-WARN][36] ([Intel XE#7814]) +3 other tests dmesg-warn [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-3/igt@kms_plane_cursor@overlay@pipe-c-dp-2-size-256.html [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_plane_cursor@overlay@pipe-c-dp-2-size-256.html * igt@kms_plane_multiple@2x-tiling-y: - shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#5021] / [Intel XE#7377]) [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@kms_plane_multiple@2x-tiling-y.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b: - shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#2763] / [Intel XE#6886]) +4 other tests skip [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-8/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b.html * igt@kms_pm_dc@dc5-psr: - shard-lnl: [PASS][39] -> [FAIL][40] ([Intel XE#7340]) [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-lnl-1/igt@kms_pm_dc@dc5-psr.html [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-3/igt@kms_pm_dc@dc5-psr.html * igt@kms_pm_dc@dc5-retention-flops: - shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#3309] / [Intel XE#7368]) [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@kms_pm_dc@dc5-retention-flops.html * igt@kms_pm_dc@deep-pkgc: - shard-lnl: [PASS][42] -> [FAIL][43] ([Intel XE#2029] / [Intel XE#7395]) [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-lnl-3/igt@kms_pm_dc@deep-pkgc.html [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-7/igt@kms_pm_dc@deep-pkgc.html * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait: - shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836]) [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf: - shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#1489]) +1 other test skip [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-10/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr@fbc-psr-primary-page-flip: - shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@kms_psr@fbc-psr-primary-page-flip.html * igt@kms_psr@psr2-primary-render: - shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#2234]) [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_psr@psr2-primary-render.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0: - shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#2330] / [Intel XE#5813]) [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html * igt@kms_sharpness_filter@filter-suspend: - shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#6503]) [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-10/igt@kms_sharpness_filter@filter-suspend.html * igt@kms_vrr@max-min: - shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#1499]) +1 other test skip [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-2/igt@kms_vrr@max-min.html * igt@xe_eudebug_online@resume-one: - shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#7636]) +2 other tests skip [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-3/igt@xe_eudebug_online@resume-one.html * igt@xe_evict@evict-mixed-many-threads-small: - shard-bmg: [PASS][52] -> [INCOMPLETE][53] ([Intel XE#6321]) +1 other test incomplete [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-3/igt@xe_evict@evict-mixed-many-threads-small.html [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-7/igt@xe_evict@evict-mixed-many-threads-small.html * igt@xe_evict@evict-mixed-threads-small-multi-vm: - shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#6540] / [Intel XE#688]) [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-3/igt@xe_evict@evict-mixed-threads-small-multi-vm.html * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr: - shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#2322] / [Intel XE#7372]) +2 other tests skip [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-7/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr.html * igt@xe_exec_fault_mode@twice-multi-queue-rebind-prefetch: - shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#7136]) +2 other tests skip [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-6/igt@xe_exec_fault_mode@twice-multi-queue-rebind-prefetch.html * igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-basic: - shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#6874]) +7 other tests skip [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-6/igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-basic.html * igt@xe_exec_threads@threads-multi-queue-mixed-userptr-rebind: - shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#7138]) [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-6/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-rebind.html * igt@xe_multigpu_svm@mgpu-coherency-basic: - shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#6964]) [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@xe_multigpu_svm@mgpu-coherency-basic.html * igt@xe_pat@pat-index-xelp: - shard-bmg: NOTRUN -> [SKIP][60] ([Intel XE#2245] / [Intel XE#7590]) [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-2/igt@xe_pat@pat-index-xelp.html * igt@xe_pm@d3cold-i2c: - shard-bmg: NOTRUN -> [SKIP][61] ([Intel XE#5694] / [Intel XE#7370]) [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-6/igt@xe_pm@d3cold-i2c.html * igt@xe_pm@d3cold-mmap-system: - shard-bmg: NOTRUN -> [SKIP][62] ([Intel XE#2284] / [Intel XE#7370]) [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-5/igt@xe_pm@d3cold-mmap-system.html * igt@xe_pxp@regular-src-to-pxp-dest-rendercopy: - shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#4733] / [Intel XE#7417]) [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@xe_pxp@regular-src-to-pxp-dest-rendercopy.html * igt@xe_sriov_flr@flr-twice: - shard-bmg: [PASS][64] -> [FAIL][65] ([Intel XE#6569]) [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-4/igt@xe_sriov_flr@flr-twice.html [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-7/igt@xe_sriov_flr@flr-twice.html * igt@xe_survivability@runtime-survivability: - shard-bmg: [PASS][66] -> [DMESG-WARN][67] ([Intel XE#6627] / [Intel XE#7419]) [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@xe_survivability@runtime-survivability.html [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@xe_survivability@runtime-survivability.html #### Possible fixes #### * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-dp2-hdmi-a3: - shard-bmg: [DMESG-FAIL][68] ([Intel XE#5545]) -> [PASS][69] [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-dp2-hdmi-a3.html [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-dp2-hdmi-a3.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1: - shard-lnl: [FAIL][70] ([Intel XE#301]) -> [PASS][71] +1 other test pass [70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html * igt@kms_hdmi_inject@inject-audio: - shard-bmg: [SKIP][72] ([Intel XE#7308]) -> [PASS][73] [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-9/igt@kms_hdmi_inject@inject-audio.html [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-7/igt@kms_hdmi_inject@inject-audio.html * igt@kms_hdr@invalid-hdr: - shard-bmg: [SKIP][74] ([Intel XE#1503]) -> [PASS][75] [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-10/igt@kms_hdr@invalid-hdr.html [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-7/igt@kms_hdr@invalid-hdr.html * igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010: - shard-bmg: [SKIP][76] ([Intel XE#7922]) -> [PASS][77] +1 other test pass [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-10/igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010.html [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-7/igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010.html * igt@kms_pm_dc@dc6-psr: - shard-lnl: [FAIL][78] ([Intel XE#7340]) -> [PASS][79] [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-lnl-2/igt@kms_pm_dc@dc6-psr.html [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-7/igt@kms_pm_dc@dc6-psr.html * igt@kms_psr_stress_test@invalidate-primary-flip-overlay: - shard-lnl: [SKIP][80] ([Intel XE#4692] / [Intel XE#7508]) -> [PASS][81] [80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-lnl-7/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html [81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-4/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html * igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1: - shard-lnl: [FAIL][82] ([Intel XE#2142]) -> [PASS][83] +1 other test pass [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-lnl-7/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-7/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html * igt@xe_copy_basic@mem-page-copy-17: - shard-lnl: [ABORT][84] -> [PASS][85] [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-lnl-2/igt@xe_copy_basic@mem-page-copy-17.html [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-lnl-8/igt@xe_copy_basic@mem-page-copy-17.html * igt@xe_sriov_admin@sched-priority-vf-write-denied: - shard-bmg: [SKIP][86] ([Intel XE#6703]) -> [PASS][87] +120 other tests pass [86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@xe_sriov_admin@sched-priority-vf-write-denied.html [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-6/igt@xe_sriov_admin@sched-priority-vf-write-denied.html * igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs@vf-random: - shard-bmg: [FAIL][88] ([Intel XE#5937]) -> [PASS][89] +1 other test pass [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-10/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs@vf-random.html [89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-7/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs@vf-random.html #### Warnings #### * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip: - shard-bmg: [SKIP][90] ([Intel XE#6703]) -> [SKIP][91] ([Intel XE#7059] / [Intel XE#7085]) [90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip.html [91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip.html * igt@kms_big_fb@y-tiled-8bpp-rotate-270: - shard-bmg: [SKIP][92] ([Intel XE#6703]) -> [SKIP][93] ([Intel XE#1124]) +2 other tests skip [92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html [93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-3/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html * igt@kms_bw@linear-tiling-3-displays-target-1920x1080p: - shard-bmg: [SKIP][94] ([Intel XE#6703]) -> [SKIP][95] ([Intel XE#367]) [94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_bw@linear-tiling-3-displays-target-1920x1080p.html [95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_bw@linear-tiling-3-displays-target-1920x1080p.html * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc: - shard-bmg: [SKIP][96] ([Intel XE#6703]) -> [SKIP][97] ([Intel XE#2887]) +1 other test skip [96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc.html [97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-8/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc.html * igt@kms_chamelium_color@ctm-0-25: - shard-bmg: [SKIP][98] ([Intel XE#6703]) -> [SKIP][99] ([Intel XE#2325] / [Intel XE#7358]) +1 other test skip [98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_chamelium_color@ctm-0-25.html [99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-5/igt@kms_chamelium_color@ctm-0-25.html * igt@kms_chamelium_frames@hdmi-crc-single: - shard-bmg: [SKIP][100] ([Intel XE#6703]) -> [SKIP][101] ([Intel XE#2252]) [100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_chamelium_frames@hdmi-crc-single.html [101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_chamelium_frames@hdmi-crc-single.html * igt@kms_content_protection@legacy-hdcp14: - shard-bmg: [SKIP][102] ([Intel XE#6703]) -> [FAIL][103] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) [102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_content_protection@legacy-hdcp14.html [103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@kms_content_protection@legacy-hdcp14.html * igt@kms_cursor_crc@cursor-onscreen-32x10: - shard-bmg: [SKIP][104] ([Intel XE#6703]) -> [SKIP][105] ([Intel XE#2320]) [104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_cursor_crc@cursor-onscreen-32x10.html [105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-7/igt@kms_cursor_crc@cursor-onscreen-32x10.html * igt@kms_dirtyfb@fbc-dirtyfb-ioctl: - shard-bmg: [SKIP][106] ([Intel XE#6703]) -> [SKIP][107] ([Intel XE#4210] / [Intel XE#7467]) [106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_dirtyfb@fbc-dirtyfb-ioctl.html [107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-8/igt@kms_dirtyfb@fbc-dirtyfb-ioctl.html * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible: - shard-bmg: [DMESG-FAIL][108] ([Intel XE#5545]) -> [FAIL][109] ([Intel XE#3321]) [108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html [109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render: - shard-bmg: [SKIP][110] ([Intel XE#6703]) -> [SKIP][111] ([Intel XE#4141]) +1 other test skip [110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html [111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html * igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-render: - shard-bmg: [SKIP][112] ([Intel XE#6703]) -> [SKIP][113] ([Intel XE#7061] / [Intel XE#7356]) [112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-render.html [113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-render.html * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-move: - shard-bmg: [SKIP][114] ([Intel XE#6703]) -> [SKIP][115] ([Intel XE#2311]) +11 other tests skip [114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-move.html [115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-move.html * igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-blt: - shard-bmg: [SKIP][116] ([Intel XE#6703]) -> [SKIP][117] ([Intel XE#7061]) +2 other tests skip [116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-blt.html [117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-2/igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-blt.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt: - shard-bmg: [SKIP][118] ([Intel XE#6703]) -> [SKIP][119] ([Intel XE#2313]) +9 other tests skip [118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt.html [119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt.html * igt@kms_hdr@brightness-with-hdr: - shard-bmg: [SKIP][120] ([Intel XE#3544] / [Intel XE#7916]) -> [SKIP][121] ([Intel XE#3544] / [Intel XE#7915] / [Intel XE#7916]) [120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-9/igt@kms_hdr@brightness-with-hdr.html [121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_hdr@brightness-with-hdr.html * igt@kms_hdr@brightness-with-hdr@pipe-a-hdmi-a-3-xrgb16161616f: - shard-bmg: [SKIP][122] ([Intel XE#7916]) -> [SKIP][123] ([Intel XE#7915]) +1 other test skip [122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-9/igt@kms_hdr@brightness-with-hdr@pipe-a-hdmi-a-3-xrgb16161616f.html [123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@kms_hdr@brightness-with-hdr@pipe-a-hdmi-a-3-xrgb16161616f.html * igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping: - shard-bmg: [SKIP][124] ([Intel XE#6703]) -> [SKIP][125] ([Intel XE#7283]) [124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html [125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area: - shard-bmg: [SKIP][126] ([Intel XE#6703]) -> [SKIP][127] ([Intel XE#1489]) +1 other test skip [126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html [127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html * igt@kms_psr@psr-basic: - shard-bmg: [SKIP][128] ([Intel XE#6703]) -> [SKIP][129] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip [128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_psr@psr-basic.html [129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-5/igt@kms_psr@psr-basic.html * igt@kms_sharpness_filter@filter-scaler-upscale: - shard-bmg: [SKIP][130] ([Intel XE#6703]) -> [SKIP][131] ([Intel XE#6503]) [130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@kms_sharpness_filter@filter-scaler-upscale.html [131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-5/igt@kms_sharpness_filter@filter-scaler-upscale.html * igt@kms_tiled_display@basic-test-pattern: - shard-bmg: [SKIP][132] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][133] ([Intel XE#1729] / [Intel XE#7424]) [132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern.html [133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-2/igt@kms_tiled_display@basic-test-pattern.html * igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-vram: - shard-bmg: [SKIP][134] ([Intel XE#6703]) -> [SKIP][135] ([Intel XE#7636]) +3 other tests skip [134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-vram.html [135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-8/igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-vram.html * igt@xe_exec_basic@multigpu-no-exec-basic-defer-bind: - shard-bmg: [SKIP][136] ([Intel XE#6703]) -> [SKIP][137] ([Intel XE#2322] / [Intel XE#7372]) +2 other tests skip [136]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@xe_exec_basic@multigpu-no-exec-basic-defer-bind.html [137]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@xe_exec_basic@multigpu-no-exec-basic-defer-bind.html * igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind: - shard-bmg: [SKIP][138] ([Intel XE#6703]) -> [SKIP][139] ([Intel XE#7136]) [138]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind.html [139]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-6/igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind.html * igt@xe_exec_multi_queue@few-execs-preempt-mode-dyn-priority: - shard-bmg: [SKIP][140] ([Intel XE#6703]) -> [SKIP][141] ([Intel XE#6874]) +7 other tests skip [140]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@xe_exec_multi_queue@few-execs-preempt-mode-dyn-priority.html [141]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-8/igt@xe_exec_multi_queue@few-execs-preempt-mode-dyn-priority.html * igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr: - shard-bmg: [SKIP][142] ([Intel XE#6703]) -> [SKIP][143] ([Intel XE#7138]) +2 other tests skip [142]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr.html [143]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-6/igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr.html * igt@xe_page_reclaim@binds-1g-partial: - shard-bmg: [SKIP][144] ([Intel XE#6703]) -> [SKIP][145] ([Intel XE#7793]) [144]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@xe_page_reclaim@binds-1g-partial.html [145]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-9/igt@xe_page_reclaim@binds-1g-partial.html * igt@xe_pm@d3cold-mmap-vram: - shard-bmg: [SKIP][146] ([Intel XE#6703]) -> [SKIP][147] ([Intel XE#2284] / [Intel XE#7370]) [146]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@xe_pm@d3cold-mmap-vram.html [147]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-4/igt@xe_pm@d3cold-mmap-vram.html * igt@xe_query@multigpu-query-topology: - shard-bmg: [SKIP][148] ([Intel XE#6703]) -> [SKIP][149] ([Intel XE#944]) [148]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8903/shard-bmg-2/igt@xe_query@multigpu-query-topology.html [149]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/shard-bmg-1/igt@xe_query@multigpu-query-topology.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#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439 [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#2029]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2029 [Intel XE#2142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2142 [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#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245 [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#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311 [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313 [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320 [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322 [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325 [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330 [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426 [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#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301 [Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141 [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304 [Intel XE#3309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3309 [Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321 [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432 [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544 [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#4210]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4210 [Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354 [Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422 [Intel XE#4692]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4692 [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733 [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021 [Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545 [Intel XE#5694]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5694 [Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813 [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848 [Intel XE#5882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5882 [Intel XE#5937]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5937 [Intel XE#6126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6126 [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312 [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321 [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503 [Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540 [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656 [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569 [Intel XE#6627]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6627 [Intel XE#6703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6703 [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874 [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688 [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#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964 [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#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084 [Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085 [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#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178 [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283 [Intel XE#7308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7308 [Intel XE#7340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7340 [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351 [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356 [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358 [Intel XE#7368]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7368 [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#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374 [Intel XE#7377]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7377 [Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383 [Intel XE#7395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7395 [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417 [Intel XE#7419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7419 [Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424 [Intel XE#7442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7442 [Intel XE#7467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7467 [Intel XE#7508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7508 [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590 [Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636 [Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642 [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776 [Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793 [Intel XE#7814]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7814 [Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905 [Intel XE#7915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7915 [Intel XE#7916]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7916 [Intel XE#7922]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7922 [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836 [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944 Build changes ------------- * IGT: IGT_8903 -> IGTPW_15146 * Linux: xe-5041-f8ee23694aa6be213355905a78f79bb1b0861565 -> xe-5043-0ce1c813197dfbe15ff14143da97ec11161e1795 IGTPW_15146: 236252b6b6e0a9533bafd592dd033d4132aa888f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_8903: 6f88532e2fe22529195cc2f8cabff93d994688f8 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-5041-f8ee23694aa6be213355905a78f79bb1b0861565: f8ee23694aa6be213355905a78f79bb1b0861565 xe-5043-0ce1c813197dfbe15ff14143da97ec11161e1795: 0ce1c813197dfbe15ff14143da97ec11161e1795 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15146/index.html [-- Attachment #2: Type: text/html, Size: 49151 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* ✓ i915.CI.Full: success for tests/intel/kms_tbt: Add DP tunneling validation tests 2026-05-11 5:43 [PATCH i-g-t 0/2] tests/intel/kms_tbt: Add DP tunneling validation tests Kunal Joshi ` (4 preceding siblings ...) 2026-05-12 3:20 ` ✗ Xe.CI.FULL: failure " Patchwork @ 2026-05-12 10:22 ` Patchwork 5 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2026-05-12 10:22 UTC (permalink / raw) To: Kunal Joshi; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 138643 bytes --] == Series Details == Series: tests/intel/kms_tbt: Add DP tunneling validation tests URL : https://patchwork.freedesktop.org/series/166290/ State : success == Summary == CI Bug Log - changes from CI_DRM_18469_full -> IGTPW_15146_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/index.html Participating hosts (10 -> 10) ------------------------------ No changes in participating hosts New tests --------- New tests have been introduced between CI_DRM_18469_full and IGTPW_15146_full: ### New IGT tests (4) ### * igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-a-dp-3: - Statuses : 1 pass(s) - Exec time: [2.30] s * igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-b-dp-3: - Statuses : 1 pass(s) - Exec time: [2.12] s * igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-dp-3: - Statuses : 1 pass(s) - Exec time: [2.12] s * igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-d-dp-3: - Statuses : 1 pass(s) - Exec time: [2.12] s Known issues ------------ Here are the changes found in IGTPW_15146_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@api_intel_bb@blit-reloc-purge-cache: - shard-rkl: NOTRUN -> [SKIP][1] ([i915#14544] / [i915#8411]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@api_intel_bb@blit-reloc-purge-cache.html * igt@gem_busy@semaphore: - shard-dg2: NOTRUN -> [SKIP][2] ([i915#3936]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@gem_busy@semaphore.html * igt@gem_ccs@block-multicopy-inplace: - shard-tglu-1: NOTRUN -> [SKIP][3] ([i915#3555] / [i915#9323]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@gem_ccs@block-multicopy-inplace.html * igt@gem_ccs@ctrl-surf-copy: - shard-rkl: NOTRUN -> [SKIP][4] ([i915#3555] / [i915#9323]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@gem_ccs@ctrl-surf-copy.html * igt@gem_ccs@ctrl-surf-copy-new-ctx: - shard-tglu: NOTRUN -> [SKIP][5] ([i915#9323]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-6/igt@gem_ccs@ctrl-surf-copy-new-ctx.html * igt@gem_ccs@suspend-resume: - shard-tglu-1: NOTRUN -> [SKIP][6] ([i915#9323]) +1 other test skip [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@gem_ccs@suspend-resume.html * igt@gem_close_race@multigpu-basic-process: - shard-rkl: NOTRUN -> [SKIP][7] ([i915#7697]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@gem_close_race@multigpu-basic-process.html * igt@gem_ctx_isolation@preservation-s3@rcs0: - shard-glk: NOTRUN -> [INCOMPLETE][8] ([i915#13356]) +1 other test incomplete [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk1/igt@gem_ctx_isolation@preservation-s3@rcs0.html * igt@gem_ctx_persistence@processes: - shard-snb: NOTRUN -> [SKIP][9] ([i915#1099]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-snb6/igt@gem_ctx_persistence@processes.html * igt@gem_ctx_persistence@saturated-hostile-nopreempt: - shard-dg2: NOTRUN -> [SKIP][10] ([i915#5882]) +7 other tests skip [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-3/igt@gem_ctx_persistence@saturated-hostile-nopreempt.html * igt@gem_ctx_persistence@saturated-hostile-nopreempt@vcs1: - shard-mtlp: NOTRUN -> [SKIP][11] ([i915#5882]) +6 other tests skip [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-2/igt@gem_ctx_persistence@saturated-hostile-nopreempt@vcs1.html * igt@gem_ctx_sseu@engines: - shard-tglu-1: NOTRUN -> [SKIP][12] ([i915#280]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@gem_ctx_sseu@engines.html * igt@gem_exec_balancer@bonded-true-hang: - shard-dg2: NOTRUN -> [SKIP][13] ([i915#4812]) +1 other test skip [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@gem_exec_balancer@bonded-true-hang.html - shard-dg1: NOTRUN -> [SKIP][14] ([i915#4812]) +1 other test skip [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-17/igt@gem_exec_balancer@bonded-true-hang.html - shard-mtlp: NOTRUN -> [SKIP][15] ([i915#4812]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-7/igt@gem_exec_balancer@bonded-true-hang.html * igt@gem_exec_balancer@invalid-bonds: - shard-dg2: NOTRUN -> [SKIP][16] ([i915#4036]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@gem_exec_balancer@invalid-bonds.html - shard-dg1: NOTRUN -> [SKIP][17] ([i915#4036]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-17/igt@gem_exec_balancer@invalid-bonds.html - shard-mtlp: NOTRUN -> [SKIP][18] ([i915#4036]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-2/igt@gem_exec_balancer@invalid-bonds.html * igt@gem_exec_balancer@parallel: - shard-tglu-1: NOTRUN -> [SKIP][19] ([i915#4525]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@gem_exec_balancer@parallel.html * igt@gem_exec_balancer@parallel-ordering: - shard-rkl: NOTRUN -> [SKIP][20] ([i915#4525]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@gem_exec_balancer@parallel-ordering.html - shard-tglu: NOTRUN -> [SKIP][21] ([i915#4525]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-10/igt@gem_exec_balancer@parallel-ordering.html * igt@gem_exec_big@single: - shard-tglu-1: NOTRUN -> [FAIL][22] ([i915#15816]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@gem_exec_big@single.html - shard-mtlp: [PASS][23] -> [FAIL][24] ([i915#15871]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-mtlp-2/igt@gem_exec_big@single.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-3/igt@gem_exec_big@single.html * igt@gem_exec_flush@basic-wb-pro-default: - shard-dg2: NOTRUN -> [SKIP][25] ([i915#3539] / [i915#4852]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@gem_exec_flush@basic-wb-pro-default.html * igt@gem_exec_reloc@basic-gtt-wc-active: - shard-rkl: NOTRUN -> [SKIP][26] ([i915#14544] / [i915#3281]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-wc-active.html * igt@gem_exec_reloc@basic-range: - shard-mtlp: NOTRUN -> [SKIP][27] ([i915#3281]) +3 other tests skip [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-4/igt@gem_exec_reloc@basic-range.html * igt@gem_exec_reloc@basic-wc: - shard-dg2: NOTRUN -> [SKIP][28] ([i915#3281]) +7 other tests skip [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@gem_exec_reloc@basic-wc.html * igt@gem_exec_reloc@basic-write-cpu-active: - shard-dg1: NOTRUN -> [SKIP][29] ([i915#3281]) +5 other tests skip [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-14/igt@gem_exec_reloc@basic-write-cpu-active.html * igt@gem_exec_reloc@basic-write-read-noreloc: - shard-rkl: NOTRUN -> [SKIP][30] ([i915#3281]) +8 other tests skip [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@gem_exec_reloc@basic-write-read-noreloc.html * igt@gem_exec_schedule@preempt-queue-contexts-chain: - shard-dg2: NOTRUN -> [SKIP][31] ([i915#4537] / [i915#4812]) +1 other test skip [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-4/igt@gem_exec_schedule@preempt-queue-contexts-chain.html - shard-mtlp: NOTRUN -> [SKIP][32] ([i915#4537] / [i915#4812]) [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-4/igt@gem_exec_schedule@preempt-queue-contexts-chain.html * igt@gem_exec_suspend@basic-s0: - shard-dg2: [PASS][33] -> [INCOMPLETE][34] ([i915#13356]) +2 other tests incomplete [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-1/igt@gem_exec_suspend@basic-s0.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-5/igt@gem_exec_suspend@basic-s0.html * igt@gem_fence_thrash@bo-write-verify-threaded-none: - shard-dg2: NOTRUN -> [SKIP][35] ([i915#4860]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@gem_fence_thrash@bo-write-verify-threaded-none.html * igt@gem_huc_copy@huc-copy: - shard-glk: NOTRUN -> [SKIP][36] ([i915#2190]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk2/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@heavy-verify-random: - shard-rkl: NOTRUN -> [SKIP][37] ([i915#4613]) +1 other test skip [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-2/igt@gem_lmem_swapping@heavy-verify-random.html - shard-tglu: NOTRUN -> [SKIP][38] ([i915#4613]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-5/igt@gem_lmem_swapping@heavy-verify-random.html - shard-mtlp: NOTRUN -> [SKIP][39] ([i915#4613]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-4/igt@gem_lmem_swapping@heavy-verify-random.html * igt@gem_lmem_swapping@parallel-random-engines: - shard-rkl: NOTRUN -> [SKIP][40] ([i915#14544] / [i915#4613]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@gem_lmem_swapping@parallel-random-engines.html * igt@gem_lmem_swapping@random-engines: - shard-glk: NOTRUN -> [SKIP][41] ([i915#4613]) +4 other tests skip [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk8/igt@gem_lmem_swapping@random-engines.html * igt@gem_lmem_swapping@verify-random-ccs: - shard-tglu-1: NOTRUN -> [SKIP][42] ([i915#4613]) +1 other test skip [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@gem_lmem_swapping@verify-random-ccs.html * igt@gem_madvise@dontneed-before-pwrite: - shard-dg2: NOTRUN -> [SKIP][43] ([i915#3282]) +2 other tests skip [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@gem_madvise@dontneed-before-pwrite.html - shard-rkl: NOTRUN -> [SKIP][44] ([i915#3282]) +2 other tests skip [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@gem_madvise@dontneed-before-pwrite.html - shard-dg1: NOTRUN -> [SKIP][45] ([i915#3282]) +3 other tests skip [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-17/igt@gem_madvise@dontneed-before-pwrite.html * igt@gem_media_fill@media-fill: - shard-dg2: NOTRUN -> [SKIP][46] ([i915#8289]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@gem_media_fill@media-fill.html * igt@gem_mmap_gtt@coherency: - shard-mtlp: NOTRUN -> [SKIP][47] ([i915#4077]) +1 other test skip [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-8/igt@gem_mmap_gtt@coherency.html * igt@gem_mmap_gtt@cpuset-medium-copy-xy: - shard-dg2: NOTRUN -> [SKIP][48] ([i915#4077]) +5 other tests skip [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@gem_mmap_gtt@cpuset-medium-copy-xy.html * igt@gem_mmap_wc@copy: - shard-dg2: NOTRUN -> [SKIP][49] ([i915#4083]) +2 other tests skip [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@gem_mmap_wc@copy.html - shard-dg1: NOTRUN -> [SKIP][50] ([i915#4083]) +1 other test skip [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-18/igt@gem_mmap_wc@copy.html - shard-mtlp: NOTRUN -> [SKIP][51] ([i915#4083]) [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-8/igt@gem_mmap_wc@copy.html * igt@gem_partial_pwrite_pread@reads-display: - shard-mtlp: NOTRUN -> [SKIP][52] ([i915#3282]) +3 other tests skip [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-6/igt@gem_partial_pwrite_pread@reads-display.html - shard-rkl: NOTRUN -> [SKIP][53] ([i915#14544] / [i915#3282]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@gem_partial_pwrite_pread@reads-display.html * igt@gem_pxp@protected-encrypted-src-copy-not-readible: - shard-dg2: NOTRUN -> [SKIP][54] ([i915#4270]) +1 other test skip [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-7/igt@gem_pxp@protected-encrypted-src-copy-not-readible.html - shard-dg1: NOTRUN -> [SKIP][55] ([i915#4270]) +1 other test skip [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-16/igt@gem_pxp@protected-encrypted-src-copy-not-readible.html * igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs: - shard-dg2: NOTRUN -> [SKIP][56] ([i915#5190] / [i915#8428]) +5 other tests skip [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html * igt@gem_render_copy@yf-tiled-ccs-to-yf-tiled: - shard-mtlp: NOTRUN -> [SKIP][57] ([i915#8428]) +4 other tests skip [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-7/igt@gem_render_copy@yf-tiled-ccs-to-yf-tiled.html * igt@gem_set_tiling_vs_blt@untiled-to-tiled: - shard-rkl: NOTRUN -> [SKIP][58] ([i915#8411]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html * igt@gem_set_tiling_vs_gtt: - shard-dg1: NOTRUN -> [SKIP][59] ([i915#4079]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-15/igt@gem_set_tiling_vs_gtt.html - shard-mtlp: NOTRUN -> [SKIP][60] ([i915#4079]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-4/igt@gem_set_tiling_vs_gtt.html - shard-dg2: NOTRUN -> [SKIP][61] ([i915#4079]) [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@gem_set_tiling_vs_gtt.html * igt@gem_tiled_partial_pwrite_pread@reads: - shard-dg1: NOTRUN -> [SKIP][62] ([i915#4077]) +2 other tests skip [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-17/igt@gem_tiled_partial_pwrite_pread@reads.html * igt@gem_userptr_blits@coherency-unsync: - shard-dg2: NOTRUN -> [SKIP][63] ([i915#3297]) +1 other test skip [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@gem_userptr_blits@coherency-unsync.html * igt@gem_userptr_blits@dmabuf-sync: - shard-tglu-1: NOTRUN -> [SKIP][64] ([i915#3297] / [i915#3323]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@gem_userptr_blits@dmabuf-sync.html * igt@gem_userptr_blits@forbidden-operations: - shard-rkl: NOTRUN -> [SKIP][65] ([i915#3282] / [i915#3297]) [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@gem_userptr_blits@forbidden-operations.html * igt@gem_userptr_blits@invalid-mmap-offset-unsync: - shard-dg1: NOTRUN -> [SKIP][66] ([i915#3297]) [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-19/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html * igt@gem_userptr_blits@map-fixed-invalidate-overlap: - shard-dg1: NOTRUN -> [SKIP][67] ([i915#3297] / [i915#4880]) [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-12/igt@gem_userptr_blits@map-fixed-invalidate-overlap.html * igt@gem_userptr_blits@unsync-unmap: - shard-rkl: NOTRUN -> [SKIP][68] ([i915#3297]) [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-2/igt@gem_userptr_blits@unsync-unmap.html * igt@gem_userptr_blits@unsync-unmap-cycles: - shard-tglu-1: NOTRUN -> [SKIP][69] ([i915#3297]) +1 other test skip [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@gem_userptr_blits@unsync-unmap-cycles.html * igt@gem_workarounds@suspend-resume: - shard-glk: NOTRUN -> [INCOMPLETE][70] ([i915#13356] / [i915#14586]) [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk8/igt@gem_workarounds@suspend-resume.html * igt@gen9_exec_parse@basic-rejected: - shard-rkl: NOTRUN -> [SKIP][71] ([i915#14544] / [i915#2527]) [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@gen9_exec_parse@basic-rejected.html * igt@gen9_exec_parse@basic-rejected-ctx-param: - shard-snb: NOTRUN -> [SKIP][72] +149 other tests skip [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-snb7/igt@gen9_exec_parse@basic-rejected-ctx-param.html * igt@gen9_exec_parse@batch-invalid-length: - shard-dg2: NOTRUN -> [SKIP][73] ([i915#2856]) +4 other tests skip [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-3/igt@gen9_exec_parse@batch-invalid-length.html * igt@gen9_exec_parse@bb-start-far: - shard-rkl: NOTRUN -> [SKIP][74] ([i915#2527]) +4 other tests skip [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@gen9_exec_parse@bb-start-far.html * igt@gen9_exec_parse@shadow-peek: - shard-dg1: NOTRUN -> [SKIP][75] ([i915#2527]) +5 other tests skip [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-18/igt@gen9_exec_parse@shadow-peek.html * igt@gen9_exec_parse@unaligned-jump: - shard-tglu: NOTRUN -> [SKIP][76] ([i915#2527] / [i915#2856]) +6 other tests skip [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-5/igt@gen9_exec_parse@unaligned-jump.html - shard-mtlp: NOTRUN -> [SKIP][77] ([i915#2856]) +4 other tests skip [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-3/igt@gen9_exec_parse@unaligned-jump.html * igt@gen9_exec_parse@valid-registers: - shard-tglu-1: NOTRUN -> [SKIP][78] ([i915#2527] / [i915#2856]) +2 other tests skip [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@gen9_exec_parse@valid-registers.html * igt@i915_drm_fdinfo@busy-check-all@vecs0: - shard-dg2: NOTRUN -> [SKIP][79] ([i915#11527]) +7 other tests skip [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@i915_drm_fdinfo@busy-check-all@vecs0.html * igt@i915_drm_fdinfo@virtual-busy-idle-all: - shard-dg1: NOTRUN -> [SKIP][80] ([i915#14118]) [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-19/igt@i915_drm_fdinfo@virtual-busy-idle-all.html * igt@i915_module_load@reload-no-display: - shard-tglu-1: NOTRUN -> [DMESG-WARN][81] ([i915#13029] / [i915#14545]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@i915_module_load@reload-no-display.html * igt@i915_pm_freq_api@freq-reset-multiple: - shard-rkl: NOTRUN -> [SKIP][82] ([i915#8399]) +1 other test skip [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@i915_pm_freq_api@freq-reset-multiple.html * igt@i915_pm_rc6_residency@rc6-accuracy: - shard-dg2: NOTRUN -> [FAIL][83] ([i915#12964]) +1 other test fail [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-7/igt@i915_pm_rc6_residency@rc6-accuracy.html * igt@i915_pm_rpm@system-suspend-execbuf: - shard-glk11: NOTRUN -> [INCOMPLETE][84] ([i915#13356] / [i915#15172]) [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk11/igt@i915_pm_rpm@system-suspend-execbuf.html * igt@i915_query@hwconfig_table: - shard-dg1: NOTRUN -> [SKIP][85] ([i915#6245]) [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-13/igt@i915_query@hwconfig_table.html * igt@i915_query@query-topology-coherent-slice-mask: - shard-dg2: NOTRUN -> [SKIP][86] ([i915#6188]) [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-4/igt@i915_query@query-topology-coherent-slice-mask.html * igt@i915_query@test-query-geometry-subslices: - shard-tglu-1: NOTRUN -> [SKIP][87] ([i915#5723]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@i915_query@test-query-geometry-subslices.html * igt@kms_addfb_basic@clobberred-modifier: - shard-dg2: NOTRUN -> [SKIP][88] ([i915#4212]) +1 other test skip [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_addfb_basic@clobberred-modifier.html * igt@kms_async_flips@async-flip-suspend-resume: - shard-rkl: [PASS][89] -> [INCOMPLETE][90] ([i915#12761]) [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-5/igt@kms_async_flips@async-flip-suspend-resume.html [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_async_flips@async-flip-suspend-resume.html - shard-glk: NOTRUN -> [INCOMPLETE][91] ([i915#12761]) +1 other test incomplete [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk5/igt@kms_async_flips@async-flip-suspend-resume.html * igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [INCOMPLETE][92] ([i915#12761]) [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels: - shard-glk: NOTRUN -> [SKIP][93] ([i915#1769]) [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk9/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html - shard-rkl: NOTRUN -> [SKIP][94] ([i915#1769] / [i915#3555]) [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html - shard-tglu: NOTRUN -> [SKIP][95] ([i915#1769] / [i915#3555]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-9/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1: - shard-tglu: NOTRUN -> [FAIL][96] ([i915#15662]) +1 other test fail [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-10/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html * igt@kms_big_fb@4-tiled-32bpp-rotate-270: - shard-rkl: NOTRUN -> [SKIP][97] ([i915#5286]) +1 other test skip [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html - shard-dg1: NOTRUN -> [SKIP][98] ([i915#4538] / [i915#5286]) +1 other test skip [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-16/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html * igt@kms_big_fb@4-tiled-32bpp-rotate-90: - shard-tglu-1: NOTRUN -> [SKIP][99] ([i915#5286]) +2 other tests skip [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html * igt@kms_big_fb@4-tiled-addfb: - shard-tglu: NOTRUN -> [SKIP][100] ([i915#5286]) +2 other tests skip [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-8/igt@kms_big_fb@4-tiled-addfb.html * igt@kms_big_fb@linear-8bpp-rotate-270: - shard-rkl: NOTRUN -> [SKIP][101] ([i915#3638]) +1 other test skip [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-4/igt@kms_big_fb@linear-8bpp-rotate-270.html * igt@kms_big_fb@x-tiled-16bpp-rotate-90: - shard-dg2: NOTRUN -> [SKIP][102] +9 other tests skip [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html - shard-dg1: NOTRUN -> [SKIP][103] ([i915#3638]) [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-12/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html * igt@kms_big_fb@x-tiled-64bpp-rotate-270: - shard-rkl: NOTRUN -> [SKIP][104] ([i915#14544] / [i915#3638]) [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html * igt@kms_big_fb@y-tiled-16bpp-rotate-180: - shard-mtlp: NOTRUN -> [SKIP][105] +9 other tests skip [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-5/igt@kms_big_fb@y-tiled-16bpp-rotate-180.html * igt@kms_big_fb@y-tiled-64bpp-rotate-0: - shard-dg2: NOTRUN -> [SKIP][106] ([i915#4538] / [i915#5190]) +9 other tests skip [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180: - shard-dg1: NOTRUN -> [SKIP][107] ([i915#4538]) +3 other tests skip [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-14/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4: - shard-dg1: NOTRUN -> [SKIP][108] ([i915#6095]) +190 other tests skip [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-16/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4.html * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs: - shard-dg2: NOTRUN -> [SKIP][109] ([i915#10307] / [i915#6095]) +96 other tests skip [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs.html * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][110] ([i915#14544] / [i915#6095]) +8 other tests skip [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-2.html * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][111] ([i915#6095]) +74 other tests skip [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2: - shard-glk: NOTRUN -> [SKIP][112] +500 other tests skip [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk2/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs: - shard-dg1: NOTRUN -> [SKIP][113] ([i915#12313]) +1 other test skip [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-18/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html - shard-tglu: NOTRUN -> [SKIP][114] ([i915#12313]) [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-2/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html - shard-dg2: NOTRUN -> [SKIP][115] ([i915#12313]) [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html - shard-rkl: NOTRUN -> [SKIP][116] ([i915#12313]) [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-4/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs: - shard-glk10: NOTRUN -> [SKIP][117] +98 other tests skip [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk10/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc@pipe-a-edp-1: - shard-mtlp: NOTRUN -> [SKIP][118] ([i915#6095]) +24 other tests skip [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc@pipe-a-edp-1.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs: - shard-tglu-1: NOTRUN -> [SKIP][119] ([i915#12313]) [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs: - shard-tglu-1: NOTRUN -> [SKIP][120] ([i915#12805]) [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [INCOMPLETE][121] ([i915#15582]) +1 other test incomplete [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk5/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1.html * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-d-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][122] ([i915#6095]) +9 other tests skip [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-7/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-d-hdmi-a-3.html * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs: - shard-glk10: NOTRUN -> [INCOMPLETE][123] ([i915#15582]) +1 other test incomplete [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk10/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][124] ([i915#14098] / [i915#14544] / [i915#6095]) +5 other tests skip [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-hdmi-a-2.html * igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][125] ([i915#10307] / [i915#10434] / [i915#6095]) +2 other tests skip [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-4/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-d-hdmi-a-1.html * igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1: - shard-tglu-1: NOTRUN -> [SKIP][126] ([i915#6095]) +29 other tests skip [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][127] ([i915#14098] / [i915#6095]) +48 other tests skip [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2.html * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc: - shard-tglu: NOTRUN -> [SKIP][128] ([i915#6095]) +84 other tests skip [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-4/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc.html * igt@kms_cdclk@mode-transition: - shard-tglu-1: NOTRUN -> [SKIP][129] ([i915#3742]) [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_cdclk@mode-transition.html * igt@kms_cdclk@plane-scaling: - shard-rkl: NOTRUN -> [SKIP][130] ([i915#3742]) [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@kms_cdclk@plane-scaling.html * igt@kms_cdclk@plane-scaling@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][131] ([i915#13783]) +3 other tests skip [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-4/igt@kms_cdclk@plane-scaling@pipe-d-hdmi-a-1.html * igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k: - shard-dg2: NOTRUN -> [SKIP][132] ([i915#11151] / [i915#7828]) +5 other tests skip [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-7/igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k.html * igt@kms_chamelium_frames@dp-crc-single: - shard-tglu: NOTRUN -> [SKIP][133] ([i915#11151] / [i915#7828]) +6 other tests skip [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-8/igt@kms_chamelium_frames@dp-crc-single.html * igt@kms_chamelium_frames@hdmi-crc-fast: - shard-tglu-1: NOTRUN -> [SKIP][134] ([i915#11151] / [i915#7828]) +5 other tests skip [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_chamelium_frames@hdmi-crc-fast.html * igt@kms_chamelium_hpd@vga-hpd-fast: - shard-rkl: NOTRUN -> [SKIP][135] ([i915#11151] / [i915#7828]) +5 other tests skip [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-4/igt@kms_chamelium_hpd@vga-hpd-fast.html - shard-dg1: NOTRUN -> [SKIP][136] ([i915#11151] / [i915#7828]) +4 other tests skip [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-18/igt@kms_chamelium_hpd@vga-hpd-fast.html - shard-mtlp: NOTRUN -> [SKIP][137] ([i915#11151] / [i915#7828]) +2 other tests skip [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-8/igt@kms_chamelium_hpd@vga-hpd-fast.html * igt@kms_chamelium_hpd@vga-hpd-without-ddc: - shard-rkl: NOTRUN -> [SKIP][138] ([i915#11151] / [i915#14544] / [i915#7828]) [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_chamelium_hpd@vga-hpd-without-ddc.html * igt@kms_color@deep-color: - shard-dg2: [PASS][139] -> [SKIP][140] ([i915#12655] / [i915#3555]) [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-10/igt@kms_color@deep-color.html [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-3/igt@kms_color@deep-color.html * igt@kms_content_protection@atomic-dpms-hdcp14: - shard-dg2: NOTRUN -> [SKIP][141] ([i915#15865]) [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_content_protection@atomic-dpms-hdcp14.html * igt@kms_content_protection@content-type-change: - shard-rkl: NOTRUN -> [SKIP][142] ([i915#15865]) +1 other test skip [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_content_protection@content-type-change.html - shard-tglu: NOTRUN -> [SKIP][143] ([i915#15865]) +1 other test skip [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-5/igt@kms_content_protection@content-type-change.html * igt@kms_content_protection@dp-mst-lic-type-1: - shard-tglu-1: NOTRUN -> [SKIP][144] ([i915#15330] / [i915#3116] / [i915#3299]) [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_content_protection@dp-mst-lic-type-1.html * igt@kms_content_protection@dp-mst-type-0-suspend-resume: - shard-tglu: NOTRUN -> [SKIP][145] ([i915#15330]) [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-3/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html * igt@kms_content_protection@mei-interface: - shard-tglu-1: NOTRUN -> [SKIP][146] ([i915#15865]) +1 other test skip [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_content_protection@mei-interface.html * igt@kms_content_protection@suspend-resume@pipe-a-dp-3: - shard-dg2: NOTRUN -> [FAIL][147] ([i915#7173]) [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_content_protection@suspend-resume@pipe-a-dp-3.html * igt@kms_cursor_crc@cursor-offscreen-512x512: - shard-rkl: NOTRUN -> [SKIP][148] ([i915#13049]) [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@kms_cursor_crc@cursor-offscreen-512x512.html * igt@kms_cursor_crc@cursor-onscreen-256x85: - shard-tglu: [PASS][149] -> [FAIL][150] ([i915#13566]) +1 other test fail [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-tglu-6/igt@kms_cursor_crc@cursor-onscreen-256x85.html [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-9/igt@kms_cursor_crc@cursor-onscreen-256x85.html * igt@kms_cursor_crc@cursor-onscreen-32x32: - shard-tglu-1: NOTRUN -> [SKIP][151] ([i915#3555]) +3 other tests skip [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-32x32.html * igt@kms_cursor_crc@cursor-onscreen-512x512: - shard-tglu: NOTRUN -> [SKIP][152] ([i915#13049]) +1 other test skip [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-3/igt@kms_cursor_crc@cursor-onscreen-512x512.html - shard-mtlp: NOTRUN -> [SKIP][153] ([i915#13049]) [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-2/igt@kms_cursor_crc@cursor-onscreen-512x512.html - shard-dg2: NOTRUN -> [SKIP][154] ([i915#13049]) [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-5/igt@kms_cursor_crc@cursor-onscreen-512x512.html - shard-dg1: NOTRUN -> [SKIP][155] ([i915#13049]) [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-17/igt@kms_cursor_crc@cursor-onscreen-512x512.html * igt@kms_cursor_crc@cursor-onscreen-max-size: - shard-rkl: NOTRUN -> [SKIP][156] ([i915#3555]) +4 other tests skip [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_cursor_crc@cursor-onscreen-max-size.html - shard-dg1: NOTRUN -> [SKIP][157] ([i915#3555]) [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-13/igt@kms_cursor_crc@cursor-onscreen-max-size.html - shard-mtlp: NOTRUN -> [SKIP][158] ([i915#3555] / [i915#8814]) [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-3/igt@kms_cursor_crc@cursor-onscreen-max-size.html * igt@kms_cursor_crc@cursor-random-32x32: - shard-rkl: NOTRUN -> [SKIP][159] ([i915#14544] / [i915#3555]) [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_cursor_crc@cursor-random-32x32.html * igt@kms_cursor_crc@cursor-rapid-movement-32x32: - shard-dg2: NOTRUN -> [SKIP][160] ([i915#3555]) +3 other tests skip [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html - shard-tglu: NOTRUN -> [SKIP][161] ([i915#3555]) +3 other tests skip [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-2/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html * igt@kms_cursor_crc@cursor-sliding-128x42: - shard-dg1: NOTRUN -> [DMESG-WARN][162] ([i915#4423]) [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-12/igt@kms_cursor_crc@cursor-sliding-128x42.html - shard-mtlp: NOTRUN -> [SKIP][163] ([i915#8814]) [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-5/igt@kms_cursor_crc@cursor-sliding-128x42.html * igt@kms_cursor_crc@cursor-suspend: - shard-glk: NOTRUN -> [INCOMPLETE][164] ([i915#12358] / [i915#14152] / [i915#7882]) [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk2/igt@kms_cursor_crc@cursor-suspend.html * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [INCOMPLETE][165] ([i915#12358] / [i915#14152]) [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk2/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1.html * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy: - shard-dg2: NOTRUN -> [SKIP][166] ([i915#13046] / [i915#5354]) +2 other tests skip [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: - shard-dg2: NOTRUN -> [SKIP][167] ([i915#4103] / [i915#4213]) [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html - shard-dg1: NOTRUN -> [SKIP][168] ([i915#4103] / [i915#4213]) [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-13/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html - shard-mtlp: NOTRUN -> [SKIP][169] ([i915#4213]) [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - shard-rkl: NOTRUN -> [SKIP][170] ([i915#4103]) +1 other test skip [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html - shard-tglu: NOTRUN -> [SKIP][171] ([i915#4103]) +2 other tests skip [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size: - shard-mtlp: NOTRUN -> [SKIP][172] ([i915#9809]) +2 other tests skip [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-4/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html * igt@kms_cursor_legacy@flip-vs-cursor-toggle: - shard-mtlp: [PASS][173] -> [FAIL][174] ([i915#15768]) [173]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-mtlp-1/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-2/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot: - shard-dg2: NOTRUN -> [SKIP][175] ([i915#9067]) [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-7/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html - shard-rkl: NOTRUN -> [SKIP][176] ([i915#9067]) [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html - shard-tglu: NOTRUN -> [SKIP][177] ([i915#9067]) [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-8/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html - shard-mtlp: NOTRUN -> [SKIP][178] ([i915#9067]) [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-6/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html * igt@kms_dirtyfb@psr-dirtyfb-ioctl: - shard-tglu-1: NOTRUN -> [SKIP][179] ([i915#9723]) [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html * igt@kms_dp_link_training@non-uhbr-sst: - shard-mtlp: NOTRUN -> [SKIP][180] ([i915#13749]) [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-6/igt@kms_dp_link_training@non-uhbr-sst.html - shard-dg2: NOTRUN -> [SKIP][181] ([i915#13749]) [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_dp_link_training@non-uhbr-sst.html - shard-rkl: NOTRUN -> [SKIP][182] ([i915#13749] / [i915#14544]) [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_dp_link_training@non-uhbr-sst.html - shard-dg1: NOTRUN -> [SKIP][183] ([i915#13749]) [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-13/igt@kms_dp_link_training@non-uhbr-sst.html - shard-tglu: NOTRUN -> [SKIP][184] ([i915#13749]) [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-8/igt@kms_dp_link_training@non-uhbr-sst.html * igt@kms_dp_linktrain_fallback@dp-fallback: - shard-dg2: NOTRUN -> [SKIP][185] ([i915#13707]) [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@kms_dp_linktrain_fallback@dp-fallback.html * igt@kms_dp_linktrain_fallback@dsc-fallback: - shard-rkl: NOTRUN -> [SKIP][186] ([i915#13707]) [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@kms_dp_linktrain_fallback@dsc-fallback.html - shard-tglu: NOTRUN -> [SKIP][187] ([i915#13707]) [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-10/igt@kms_dp_linktrain_fallback@dsc-fallback.html * igt@kms_dsc@dsc-with-bpc-formats: - shard-rkl: NOTRUN -> [SKIP][188] ([i915#3555] / [i915#3840]) +1 other test skip [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_dsc@dsc-with-bpc-formats.html - shard-tglu: NOTRUN -> [SKIP][189] ([i915#3555] / [i915#3840]) [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-8/igt@kms_dsc@dsc-with-bpc-formats.html * igt@kms_dsc@dsc-with-formats: - shard-mtlp: NOTRUN -> [SKIP][190] ([i915#3555] / [i915#3840]) [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-3/igt@kms_dsc@dsc-with-formats.html - shard-dg2: NOTRUN -> [SKIP][191] ([i915#3555] / [i915#3840]) [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_dsc@dsc-with-formats.html - shard-tglu-1: NOTRUN -> [SKIP][192] ([i915#3555] / [i915#3840]) [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_dsc@dsc-with-formats.html - shard-dg1: NOTRUN -> [SKIP][193] ([i915#3555] / [i915#3840]) [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-13/igt@kms_dsc@dsc-with-formats.html * igt@kms_fbcon_fbt@psr: - shard-tglu-1: NOTRUN -> [SKIP][194] ([i915#3469]) [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_fbcon_fbt@psr.html * igt@kms_feature_discovery@psr2: - shard-tglu-1: NOTRUN -> [SKIP][195] ([i915#658]) [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_feature_discovery@psr2.html - shard-rkl: NOTRUN -> [SKIP][196] ([i915#658]) [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-2/igt@kms_feature_discovery@psr2.html * igt@kms_flip@2x-plain-flip: - shard-rkl: NOTRUN -> [SKIP][197] ([i915#9934]) +4 other tests skip [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_flip@2x-plain-flip.html * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible: - shard-tglu-1: NOTRUN -> [SKIP][198] ([i915#3637] / [i915#9934]) +6 other tests skip [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html * igt@kms_flip@2x-wf_vblank-ts-check: - shard-dg2: NOTRUN -> [SKIP][199] ([i915#9934]) +3 other tests skip [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_flip@2x-wf_vblank-ts-check.html - shard-dg1: NOTRUN -> [SKIP][200] ([i915#9934]) +1 other test skip [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-12/igt@kms_flip@2x-wf_vblank-ts-check.html - shard-tglu: NOTRUN -> [SKIP][201] ([i915#3637] / [i915#9934]) +5 other tests skip [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-3/igt@kms_flip@2x-wf_vblank-ts-check.html - shard-mtlp: NOTRUN -> [SKIP][202] ([i915#3637] / [i915#9934]) +1 other test skip [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-5/igt@kms_flip@2x-wf_vblank-ts-check.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-glk: NOTRUN -> [INCOMPLETE][203] ([i915#12745] / [i915#4839]) [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk9/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1: - shard-glk: NOTRUN -> [INCOMPLETE][204] ([i915#12745]) [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk9/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling: - shard-mtlp: NOTRUN -> [SKIP][205] ([i915#15643]) +3 other tests skip [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling: - shard-dg2: NOTRUN -> [SKIP][206] ([i915#15643] / [i915#5190]) +2 other tests skip [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling: - shard-tglu: NOTRUN -> [SKIP][207] ([i915#15643]) +5 other tests skip [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling: - shard-rkl: NOTRUN -> [SKIP][208] ([i915#15643]) +2 other tests skip [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html - shard-dg1: NOTRUN -> [SKIP][209] ([i915#15643]) +3 other tests skip [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-17/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling: - shard-dg2: NOTRUN -> [SKIP][210] ([i915#15643]) [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu: - shard-tglu-1: NOTRUN -> [SKIP][211] +74 other tests skip [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc: - shard-mtlp: NOTRUN -> [SKIP][212] ([i915#15991] / [i915#1825]) +9 other tests skip [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-move: - shard-dg2: [PASS][213] -> [SKIP][214] ([i915#15989]) +2 other tests skip [213]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-10/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-move.html [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-7/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-move.html * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff: - shard-rkl: NOTRUN -> [SKIP][215] ([i915#15989]) +19 other tests skip [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-2/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html - shard-tglu-1: NOTRUN -> [SKIP][216] ([i915#15989]) +14 other tests skip [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html - shard-dg1: NOTRUN -> [SKIP][217] ([i915#15989]) +5 other tests skip [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-14/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-mmap-gtt: - shard-dg1: NOTRUN -> [SKIP][218] ([i915#15990]) +17 other tests skip [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-15/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbchdr-1p-rte: - shard-dg2: NOTRUN -> [SKIP][219] ([i915#15989]) +7 other tests skip [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@kms_frontbuffer_tracking@fbchdr-1p-rte.html * igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-pri-indfb-draw-mmap-gtt: - shard-glk: [PASS][220] -> [SKIP][221] +2 other tests skip [220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-glk8/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-pri-indfb-draw-mmap-gtt.html [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk9/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-pri-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-spr-indfb-draw-mmap-wc: - shard-dg2: NOTRUN -> [SKIP][222] ([i915#15990]) +26 other tests skip [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-spr-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-cur-indfb-draw-pwrite: - shard-dg2: NOTRUN -> [SKIP][223] ([i915#15991]) +26 other tests skip [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-cur-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-spr-indfb-draw-mmap-gtt: - shard-mtlp: NOTRUN -> [SKIP][224] ([i915#15990]) +9 other tests skip [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-2/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-spr-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbchdr-suspend: - shard-tglu: NOTRUN -> [SKIP][225] ([i915#15989]) +16 other tests skip [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-3/igt@kms_frontbuffer_tracking@fbchdr-suspend.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc: - shard-dg1: NOTRUN -> [SKIP][226] ([i915#15104] / [i915#15990]) [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-15/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-cpu: - shard-dg2: NOTRUN -> [SKIP][227] ([i915#15102]) +10 other tests skip [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-render: - shard-rkl: NOTRUN -> [SKIP][228] ([i915#14544] / [i915#15102]) +3 other tests skip [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite: - shard-dg2: NOTRUN -> [SKIP][229] ([i915#15102] / [i915#3458]) +12 other tests skip [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render: - shard-rkl: NOTRUN -> [SKIP][230] ([i915#14544] / [i915#15102] / [i915#3023]) [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-rte: - shard-rkl: NOTRUN -> [SKIP][231] ([i915#15102] / [i915#3023]) +13 other tests skip [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt: - shard-rkl: NOTRUN -> [SKIP][232] ([i915#1825]) +19 other tests skip [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt.html - shard-mtlp: NOTRUN -> [SKIP][233] ([i915#15990] / [i915#8708]) +2 other tests skip [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen: - shard-tglu: NOTRUN -> [SKIP][234] +98 other tests skip [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc: - shard-tglu-1: NOTRUN -> [SKIP][235] ([i915#15102]) +29 other tests skip [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc.html - shard-dg1: NOTRUN -> [SKIP][236] ([i915#15990] / [i915#8708]) +8 other tests skip [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-14/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-tiling-y: - shard-dg1: NOTRUN -> [SKIP][237] ([i915#15102] / [i915#3458]) +8 other tests skip [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-indfb-draw-render: - shard-glk11: NOTRUN -> [SKIP][238] +214 other tests skip [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk11/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-indfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-shrfb-plflip-blt: - shard-dg1: NOTRUN -> [SKIP][239] ([i915#15102]) +9 other tests skip [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-19/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-shrfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu: - shard-rkl: NOTRUN -> [SKIP][240] ([i915#15102]) +17 other tests skip [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-fullscreen: - shard-mtlp: NOTRUN -> [SKIP][241] ([i915#15989]) +12 other tests skip [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-4/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-fullscreen.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-4: - shard-dg1: NOTRUN -> [SKIP][242] ([i915#5439]) [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-19/igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-4.html * igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-onoff: - shard-rkl: NOTRUN -> [SKIP][243] ([i915#14544]) +2 other tests skip [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-onoff.html * igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-spr-indfb-draw-blt: - shard-mtlp: NOTRUN -> [SKIP][244] ([i915#15991]) +14 other tests skip [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-2/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-spr-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-pwrite: - shard-rkl: [PASS][245] -> [SKIP][246] ([i915#15989]) +13 other tests skip [245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-pwrite.html [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-pwrite.html * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-wc: - shard-dg2: NOTRUN -> [SKIP][247] ([i915#15104] / [i915#15990]) +1 other test skip [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt: - shard-dg2: NOTRUN -> [SKIP][248] ([i915#10433] / [i915#15102] / [i915#3458]) [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc: - shard-dg2: NOTRUN -> [SKIP][249] ([i915#15990] / [i915#8708]) +15 other tests skip [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-pgflip-blt: - shard-rkl: NOTRUN -> [SKIP][250] ([i915#14544] / [i915#1825]) +2 other tests skip [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt: - shard-dg2: NOTRUN -> [SKIP][251] ([i915#15991] / [i915#5354]) +19 other tests skip [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-blt: - shard-tglu: NOTRUN -> [SKIP][252] ([i915#15102]) +39 other tests skip [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-5/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move: - shard-rkl: NOTRUN -> [SKIP][253] +49 other tests skip [253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-2/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move.html - shard-dg1: NOTRUN -> [SKIP][254] +36 other tests skip [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-15/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move.html * igt@kms_hdr@bpc-switch-dpms: - shard-tglu-1: NOTRUN -> [SKIP][255] ([i915#16012] / [i915#3555] / [i915#8228]) [255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_hdr@bpc-switch-dpms.html * igt@kms_hdr@bpc-switch-dpms@pipe-a-hdmi-a-1-xrgb2101010: - shard-tglu-1: NOTRUN -> [SKIP][256] ([i915#16012]) +1 other test skip [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_hdr@bpc-switch-dpms@pipe-a-hdmi-a-1-xrgb2101010.html * igt@kms_hdr@bpc-switch@pipe-a-hdmi-a-1-xrgb2101010: - shard-rkl: NOTRUN -> [SKIP][257] ([i915#16012]) +1 other test skip [257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_hdr@bpc-switch@pipe-a-hdmi-a-1-xrgb2101010.html * igt@kms_hdr@bpc-switch@pipe-a-hdmi-a-3-xrgb16161616f: - shard-dg2: NOTRUN -> [SKIP][258] ([i915#16012]) +1 other test skip [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@kms_hdr@bpc-switch@pipe-a-hdmi-a-3-xrgb16161616f.html * igt@kms_hdr@brightness-with-hdr@pipe-a-hdmi-a-1-xrgb2101010: - shard-dg2: NOTRUN -> [SKIP][259] ([i915#16011]) +1 other test skip [259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-4/igt@kms_hdr@brightness-with-hdr@pipe-a-hdmi-a-1-xrgb2101010.html - shard-rkl: NOTRUN -> [SKIP][260] ([i915#16011]) +5 other tests skip [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@kms_hdr@brightness-with-hdr@pipe-a-hdmi-a-1-xrgb2101010.html * igt@kms_hdr@invalid-metadata-sizes: - shard-rkl: NOTRUN -> [SKIP][261] ([i915#16011] / [i915#3555] / [i915#8228]) [261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_hdr@invalid-metadata-sizes.html * igt@kms_hdr@static-swap: - shard-rkl: [PASS][262] -> [SKIP][263] ([i915#16011] / [i915#3555] / [i915#8228]) [262]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_hdr@static-swap.html [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_hdr@static-swap.html * igt@kms_hdr@static-swap@pipe-a-hdmi-a-2-xrgb2101010: - shard-rkl: [PASS][264] -> [SKIP][265] ([i915#16011]) +1 other test skip [264]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_hdr@static-swap@pipe-a-hdmi-a-2-xrgb2101010.html [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_hdr@static-swap@pipe-a-hdmi-a-2-xrgb2101010.html * igt@kms_hdr@static-toggle: - shard-dg1: NOTRUN -> [SKIP][266] ([i915#16011] / [i915#3555] / [i915#8228]) [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-12/igt@kms_hdr@static-toggle.html * igt@kms_hdr@static-toggle@pipe-a-hdmi-a-3-xrgb2101010: - shard-dg1: NOTRUN -> [SKIP][267] ([i915#16011]) +5 other tests skip [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-12/igt@kms_hdr@static-toggle@pipe-a-hdmi-a-3-xrgb2101010.html * igt@kms_joiner@basic-force-big-joiner: - shard-tglu: NOTRUN -> [SKIP][268] ([i915#15459]) [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-8/igt@kms_joiner@basic-force-big-joiner.html - shard-dg2: NOTRUN -> [SKIP][269] ([i915#15459]) [269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@kms_joiner@basic-force-big-joiner.html * igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier-source-clamping: - shard-tglu: NOTRUN -> [SKIP][270] ([i915#15709]) +2 other tests skip [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-2/igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier-source-clamping.html * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier: - shard-tglu-1: NOTRUN -> [SKIP][271] ([i915#15709]) +1 other test skip [271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier.html * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-a-plane-7: - shard-tglu: NOTRUN -> [SKIP][272] ([i915#15608]) +1 other test skip [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-8/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-a-plane-7.html * igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier: - shard-dg2: NOTRUN -> [SKIP][273] ([i915#15709]) +1 other test skip [273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-4/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-5: - shard-rkl: NOTRUN -> [SKIP][274] ([i915#15608]) +1 other test skip [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-2/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-5.html * igt@kms_plane@pixel-format-y-tiled-modifier@pipe-b-plane-7: - shard-tglu-1: NOTRUN -> [SKIP][275] ([i915#15608]) +1 other test skip [275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_plane@pixel-format-y-tiled-modifier@pipe-b-plane-7.html * igt@kms_plane@plane-panning-bottom-right-suspend: - shard-glk: NOTRUN -> [INCOMPLETE][276] ([i915#13026]) +1 other test incomplete [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk6/igt@kms_plane@plane-panning-bottom-right-suspend.html * igt@kms_plane_alpha_blend@alpha-basic: - shard-glk: NOTRUN -> [FAIL][277] ([i915#12178]) [277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk3/igt@kms_plane_alpha_blend@alpha-basic.html * igt@kms_plane_alpha_blend@alpha-basic@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [FAIL][278] ([i915#7862]) +1 other test fail [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk3/igt@kms_plane_alpha_blend@alpha-basic@pipe-a-hdmi-a-1.html * igt@kms_plane_alpha_blend@alpha-opaque-fb: - shard-glk: NOTRUN -> [FAIL][279] ([i915#10647] / [i915#12169]) [279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk2/igt@kms_plane_alpha_blend@alpha-opaque-fb.html * igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [FAIL][280] ([i915#10647]) +1 other test fail [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk2/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1.html * igt@kms_plane_alpha_blend@constant-alpha-max: - shard-glk11: NOTRUN -> [FAIL][281] ([i915#10647] / [i915#12169]) [281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk11/igt@kms_plane_alpha_blend@constant-alpha-max.html * igt@kms_plane_alpha_blend@constant-alpha-max@pipe-a-hdmi-a-1: - shard-glk11: NOTRUN -> [FAIL][282] ([i915#10647]) +1 other test fail [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk11/igt@kms_plane_alpha_blend@constant-alpha-max@pipe-a-hdmi-a-1.html * igt@kms_plane_lowres@tiling-yf: - shard-dg2: NOTRUN -> [SKIP][283] ([i915#3555] / [i915#8821]) [283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_plane_lowres@tiling-yf.html * igt@kms_plane_multiple@2x-tiling-none: - shard-dg2: NOTRUN -> [SKIP][284] ([i915#13958]) [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_plane_multiple@2x-tiling-none.html - shard-rkl: NOTRUN -> [SKIP][285] ([i915#13958]) [285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-4/igt@kms_plane_multiple@2x-tiling-none.html - shard-dg1: NOTRUN -> [SKIP][286] ([i915#13958]) [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-18/igt@kms_plane_multiple@2x-tiling-none.html - shard-tglu: NOTRUN -> [SKIP][287] ([i915#13958]) [287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-2/igt@kms_plane_multiple@2x-tiling-none.html - shard-mtlp: NOTRUN -> [SKIP][288] ([i915#13958]) [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-8/igt@kms_plane_multiple@2x-tiling-none.html * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-a: - shard-mtlp: NOTRUN -> [SKIP][289] ([i915#15329]) +9 other tests skip [289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-3/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-a.html * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-b: - shard-rkl: NOTRUN -> [SKIP][290] ([i915#14544] / [i915#15329]) +3 other tests skip [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-b.html * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c: - shard-tglu: NOTRUN -> [SKIP][291] ([i915#15329]) +4 other tests skip [291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-8/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c.html * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-d: - shard-dg1: NOTRUN -> [SKIP][292] ([i915#15329]) +9 other tests skip [292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-17/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-d.html * igt@kms_pm_backlight@brightness-with-dpms: - shard-rkl: NOTRUN -> [SKIP][293] ([i915#12343]) [293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-4/igt@kms_pm_backlight@brightness-with-dpms.html * igt@kms_pm_backlight@fade-with-dpms: - shard-tglu: NOTRUN -> [SKIP][294] ([i915#9812]) +1 other test skip [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-9/igt@kms_pm_backlight@fade-with-dpms.html - shard-dg2: NOTRUN -> [SKIP][295] ([i915#5354]) [295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@kms_pm_backlight@fade-with-dpms.html * igt@kms_pm_dc@dc3co-vpb-simulation: - shard-tglu-1: NOTRUN -> [SKIP][296] ([i915#15948]) [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_pm_dc@dc3co-vpb-simulation.html * igt@kms_pm_dc@dc5-psr: - shard-tglu: NOTRUN -> [SKIP][297] ([i915#15948]) [297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-6/igt@kms_pm_dc@dc5-psr.html * igt@kms_pm_dc@dc6-dpms: - shard-dg2: NOTRUN -> [SKIP][298] ([i915#15751]) [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_pm_dc@dc6-dpms.html - shard-rkl: NOTRUN -> [FAIL][299] ([i915#15752]) [299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_pm_dc@dc6-dpms.html - shard-dg1: NOTRUN -> [SKIP][300] ([i915#3361]) [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-13/igt@kms_pm_dc@dc6-dpms.html - shard-tglu: NOTRUN -> [FAIL][301] ([i915#15752]) [301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-8/igt@kms_pm_dc@dc6-dpms.html * igt@kms_pm_lpsp@screens-disabled: - shard-dg2: NOTRUN -> [SKIP][302] ([i915#8430]) [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-3/igt@kms_pm_lpsp@screens-disabled.html - shard-rkl: NOTRUN -> [SKIP][303] ([i915#8430]) [303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_pm_lpsp@screens-disabled.html - shard-dg1: NOTRUN -> [SKIP][304] ([i915#8430]) [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-14/igt@kms_pm_lpsp@screens-disabled.html - shard-tglu: NOTRUN -> [SKIP][305] ([i915#8430]) [305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-7/igt@kms_pm_lpsp@screens-disabled.html - shard-mtlp: NOTRUN -> [SKIP][306] ([i915#8430]) [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-2/igt@kms_pm_lpsp@screens-disabled.html * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait: - shard-dg2: NOTRUN -> [SKIP][307] ([i915#15073]) [307]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html - shard-dg1: [PASS][308] -> [SKIP][309] ([i915#15073]) [308]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg1-14/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html [309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-19/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html * igt@kms_pm_rpm@modeset-non-lpsp-stress: - shard-tglu-1: NOTRUN -> [SKIP][310] ([i915#15073]) [310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_pm_rpm@modeset-non-lpsp-stress.html * igt@kms_pm_rpm@system-suspend-modeset: - shard-glk: NOTRUN -> [INCOMPLETE][311] ([i915#10553]) [311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk9/igt@kms_pm_rpm@system-suspend-modeset.html * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf: - shard-dg2: NOTRUN -> [SKIP][312] ([i915#11520]) +7 other tests skip [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html - shard-rkl: NOTRUN -> [SKIP][313] ([i915#11520]) +5 other tests skip [313]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-4/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf: - shard-tglu: NOTRUN -> [SKIP][314] ([i915#11520]) +9 other tests skip [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-7/igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf.html * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf: - shard-rkl: NOTRUN -> [SKIP][315] ([i915#11520] / [i915#14544]) +1 other test skip [315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf: - shard-tglu-1: NOTRUN -> [SKIP][316] ([i915#11520]) +6 other tests skip [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area@pipe-a-edp-1: - shard-mtlp: NOTRUN -> [SKIP][317] ([i915#9808]) [317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-3/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area@pipe-a-edp-1.html * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area@pipe-b-edp-1: - shard-mtlp: NOTRUN -> [SKIP][318] ([i915#12316]) +3 other tests skip [318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-3/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area@pipe-b-edp-1.html * igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area: - shard-glk: NOTRUN -> [SKIP][319] ([i915#11520]) +5 other tests skip [319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk1/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf: - shard-glk10: NOTRUN -> [SKIP][320] ([i915#11520]) +1 other test skip [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk10/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf: - shard-snb: NOTRUN -> [SKIP][321] ([i915#11520]) +4 other tests skip [321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-snb4/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html - shard-dg1: NOTRUN -> [SKIP][322] ([i915#11520]) +5 other tests skip [322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-19/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr2_sf@psr2-cursor-plane-update-sf: - shard-glk11: NOTRUN -> [SKIP][323] ([i915#11520]) +4 other tests skip [323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk11/igt@kms_psr2_sf@psr2-cursor-plane-update-sf.html * igt@kms_psr2_su@page_flip-xrgb8888: - shard-tglu: NOTRUN -> [SKIP][324] ([i915#9683]) [324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-9/igt@kms_psr2_su@page_flip-xrgb8888.html * igt@kms_psr@fbc-pr-cursor-blt: - shard-mtlp: NOTRUN -> [SKIP][325] ([i915#9688]) +11 other tests skip [325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-5/igt@kms_psr@fbc-pr-cursor-blt.html * igt@kms_psr@fbc-pr-sprite-render: - shard-tglu-1: NOTRUN -> [SKIP][326] ([i915#9732]) +14 other tests skip [326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@kms_psr@fbc-pr-sprite-render.html * igt@kms_psr@fbc-psr-no-drrs: - shard-tglu: NOTRUN -> [SKIP][327] ([i915#9732]) +20 other tests skip [327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-5/igt@kms_psr@fbc-psr-no-drrs.html * igt@kms_psr@psr-basic: - shard-rkl: NOTRUN -> [SKIP][328] ([i915#1072] / [i915#14544] / [i915#9732]) [328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_psr@psr-basic.html * igt@kms_psr@psr-cursor-mmap-cpu: - shard-dg1: NOTRUN -> [SKIP][329] ([i915#1072] / [i915#9732]) +12 other tests skip [329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-14/igt@kms_psr@psr-cursor-mmap-cpu.html * igt@kms_psr@psr-sprite-plane-move: - shard-rkl: NOTRUN -> [SKIP][330] ([i915#1072] / [i915#9732]) +17 other tests skip [330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-2/igt@kms_psr@psr-sprite-plane-move.html * igt@kms_psr@psr2-primary-mmap-gtt: - shard-dg2: NOTRUN -> [SKIP][331] ([i915#1072] / [i915#9732]) +17 other tests skip [331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_psr@psr2-primary-mmap-gtt.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-tglu: NOTRUN -> [SKIP][332] ([i915#15949]) [332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-3/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@kms_rotation_crc@primary-y-tiled-reflect-x-270: - shard-dg2: NOTRUN -> [SKIP][333] ([i915#12755] / [i915#15867] / [i915#5190]) [333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html * igt@kms_rotation_crc@sprite-rotation-270: - shard-dg2: NOTRUN -> [SKIP][334] ([i915#12755] / [i915#15867]) [334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-7/igt@kms_rotation_crc@sprite-rotation-270.html - shard-mtlp: NOTRUN -> [SKIP][335] ([i915#12755] / [i915#15867]) +1 other test skip [335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-6/igt@kms_rotation_crc@sprite-rotation-270.html * igt@kms_tiled_display@basic-test-pattern-with-chamelium: - shard-dg1: NOTRUN -> [SKIP][336] ([i915#4423] / [i915#8623]) [336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-19/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html - shard-mtlp: NOTRUN -> [SKIP][337] ([i915#8623]) [337]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-5/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html - shard-dg2: NOTRUN -> [SKIP][338] ([i915#8623]) [338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html * igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2: - shard-glk: NOTRUN -> [INCOMPLETE][339] ([i915#12276]) +3 other tests incomplete [339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk2/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2.html * igt@kms_vblank@ts-continuation-suspend@pipe-d-dp-3: - shard-dg2: NOTRUN -> [ABORT][340] ([i915#15132]) +1 other test abort [340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_vblank@ts-continuation-suspend@pipe-d-dp-3.html * igt@kms_vrr@flipline: - shard-rkl: NOTRUN -> [SKIP][341] ([i915#15243] / [i915#3555]) [341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@kms_vrr@flipline.html * igt@kms_vrr@negative-basic: - shard-dg2: NOTRUN -> [SKIP][342] ([i915#3555] / [i915#9906]) [342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-4/igt@kms_vrr@negative-basic.html - shard-tglu: NOTRUN -> [SKIP][343] ([i915#3555] / [i915#9906]) [343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-2/igt@kms_vrr@negative-basic.html * igt@kms_vrr@seamless-rr-switch-drrs: - shard-dg2: NOTRUN -> [SKIP][344] ([i915#9906]) [344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_vrr@seamless-rr-switch-drrs.html - shard-rkl: NOTRUN -> [SKIP][345] ([i915#14544] / [i915#9906]) [345]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_vrr@seamless-rr-switch-drrs.html - shard-dg1: NOTRUN -> [SKIP][346] ([i915#9906]) [346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-19/igt@kms_vrr@seamless-rr-switch-drrs.html - shard-tglu: NOTRUN -> [SKIP][347] ([i915#9906]) [347]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-9/igt@kms_vrr@seamless-rr-switch-drrs.html - shard-mtlp: NOTRUN -> [SKIP][348] ([i915#8808] / [i915#9906]) [348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-5/igt@kms_vrr@seamless-rr-switch-drrs.html * igt@perf@unprivileged-single-ctx-counters: - shard-rkl: NOTRUN -> [SKIP][349] ([i915#14544] / [i915#2433]) [349]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@perf@unprivileged-single-ctx-counters.html - shard-dg1: NOTRUN -> [SKIP][350] ([i915#2433]) [350]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-13/igt@perf@unprivileged-single-ctx-counters.html * igt@perf_pmu@most-busy-idle-check-all: - shard-dg2: [PASS][351] -> [FAIL][352] ([i915#15997]) +1 other test fail [351]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-1/igt@perf_pmu@most-busy-idle-check-all.html [352]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@perf_pmu@most-busy-idle-check-all.html - shard-dg1: [PASS][353] -> [FAIL][354] ([i915#15997]) +1 other test fail [353]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg1-17/igt@perf_pmu@most-busy-idle-check-all.html [354]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-18/igt@perf_pmu@most-busy-idle-check-all.html * igt@perf_pmu@rc6-all-gts: - shard-rkl: NOTRUN -> [SKIP][355] ([i915#8516]) [355]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-2/igt@perf_pmu@rc6-all-gts.html - shard-tglu-1: NOTRUN -> [SKIP][356] ([i915#8516]) [356]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-1/igt@perf_pmu@rc6-all-gts.html * igt@perf_pmu@rc6@other-idle-gt0: - shard-tglu: NOTRUN -> [SKIP][357] ([i915#8516]) [357]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-3/igt@perf_pmu@rc6@other-idle-gt0.html * igt@prime_vgem@basic-fence-mmap: - shard-dg2: NOTRUN -> [SKIP][358] ([i915#3708] / [i915#4077]) [358]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@prime_vgem@basic-fence-mmap.html * igt@sriov_basic@enable-vfs-autoprobe-off: - shard-dg2: NOTRUN -> [SKIP][359] ([i915#9917]) [359]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-1/igt@sriov_basic@enable-vfs-autoprobe-off.html - shard-rkl: NOTRUN -> [SKIP][360] ([i915#9917]) +1 other test skip [360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@sriov_basic@enable-vfs-autoprobe-off.html - shard-dg1: NOTRUN -> [SKIP][361] ([i915#9917]) [361]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-14/igt@sriov_basic@enable-vfs-autoprobe-off.html * igt@sriov_basic@enable-vfs-autoprobe-off@numvfs-6: - shard-mtlp: NOTRUN -> [FAIL][362] ([i915#12910]) +9 other tests fail [362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-1/igt@sriov_basic@enable-vfs-autoprobe-off@numvfs-6.html * igt@sriov_basic@enable-vfs-bind-unbind-each@numvfs-random: - shard-tglu: NOTRUN -> [FAIL][363] ([i915#12910]) +18 other tests fail [363]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-tglu-3/igt@sriov_basic@enable-vfs-bind-unbind-each@numvfs-random.html #### Possible fixes #### * igt@gem_exec_suspend@basic-s3: - shard-glk: [INCOMPLETE][364] ([i915#13196] / [i915#13356]) -> [PASS][365] +1 other test pass [364]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-glk2/igt@gem_exec_suspend@basic-s3.html [365]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk1/igt@gem_exec_suspend@basic-s3.html * igt@i915_suspend@basic-s2idle-without-i915: - shard-rkl: [ABORT][366] ([i915#15131]) -> [PASS][367] [366]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-1/igt@i915_suspend@basic-s2idle-without-i915.html [367]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@i915_suspend@basic-s2idle-without-i915.html * igt@i915_suspend@debugfs-reader: - shard-dg2: [ABORT][368] ([i915#15131] / [i915#15140]) -> [PASS][369] [368]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-10/igt@i915_suspend@debugfs-reader.html [369]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-8/igt@i915_suspend@debugfs-reader.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip: - shard-mtlp: [FAIL][370] ([i915#15733] / [i915#5138]) -> [PASS][371] [370]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html [371]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html * igt@kms_cursor_crc@cursor-onscreen-64x21: - shard-rkl: [FAIL][372] ([i915#13566]) -> [PASS][373] [372]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_cursor_crc@cursor-onscreen-64x21.html [373]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@kms_cursor_crc@cursor-onscreen-64x21.html * igt@kms_flip@flip-vs-expired-vblank-interruptible: - shard-rkl: [FAIL][374] ([i915#13027]) -> [PASS][375] +1 other test pass [374]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html [375]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html * igt@kms_flip@flip-vs-suspend: - shard-dg2: [ABORT][376] ([i915#15132]) -> [PASS][377] +1 other test pass [376]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-10/igt@kms_flip@flip-vs-suspend.html [377]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_flip@flip-vs-suspend.html * igt@kms_force_connector_basic@force-connector-state: - shard-mtlp: [SKIP][378] ([i915#15672]) -> [PASS][379] [378]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-mtlp-1/igt@kms_force_connector_basic@force-connector-state.html [379]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-3/igt@kms_force_connector_basic@force-connector-state.html * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-shrfb-draw-mmap-wc: - shard-rkl: [SKIP][380] ([i915#15989]) -> [PASS][381] +6 other tests pass [380]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-3/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-shrfb-draw-mmap-wc.html [381]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-pwrite: - shard-glk: [SKIP][382] -> [PASS][383] [382]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-glk9/igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-pwrite.html [383]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk8/igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-pwrite.html * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-indfb-msflip-blt: - shard-dg2: [SKIP][384] ([i915#15989]) -> [PASS][385] +5 other tests pass [384]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-3/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-indfb-msflip-blt.html [385]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-indfb-msflip-blt.html * igt@kms_hdr@bpc-switch-dpms: - shard-dg2: [SKIP][386] ([i915#16012] / [i915#3555] / [i915#8228]) -> [PASS][387] [386]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-5/igt@kms_hdr@bpc-switch-dpms.html [387]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_hdr@bpc-switch-dpms.html * igt@kms_pm_rpm@dpms-lpsp: - shard-dg1: [SKIP][388] ([i915#15073]) -> [PASS][389] +2 other tests pass [388]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg1-19/igt@kms_pm_rpm@dpms-lpsp.html [389]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-14/igt@kms_pm_rpm@dpms-lpsp.html * igt@kms_pm_rpm@modeset-non-lpsp: - shard-dg2: [SKIP][390] ([i915#15073]) -> [PASS][391] [390]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-4/igt@kms_pm_rpm@modeset-non-lpsp.html [391]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-6/igt@kms_pm_rpm@modeset-non-lpsp.html * igt@kms_setmode@basic: - shard-dg1: [FAIL][392] ([i915#15106]) -> [PASS][393] [392]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg1-17/igt@kms_setmode@basic.html [393]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-12/igt@kms_setmode@basic.html - shard-dg2: [FAIL][394] ([i915#15106]) -> [PASS][395] [394]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-3/igt@kms_setmode@basic.html [395]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_setmode@basic.html #### Warnings #### * igt@api_intel_bb@object-reloc-purge-cache: - shard-rkl: [SKIP][396] ([i915#14544] / [i915#8411]) -> [SKIP][397] ([i915#8411]) [396]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@api_intel_bb@object-reloc-purge-cache.html [397]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@api_intel_bb@object-reloc-purge-cache.html * igt@gem_close_race@multigpu-basic-threads: - shard-rkl: [SKIP][398] ([i915#14544] / [i915#7697]) -> [SKIP][399] ([i915#7697]) [398]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@gem_close_race@multigpu-basic-threads.html [399]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@gem_close_race@multigpu-basic-threads.html * igt@gem_create@create-ext-cpu-access-sanity-check: - shard-rkl: [SKIP][400] ([i915#14544] / [i915#6335]) -> [SKIP][401] ([i915#6335]) [400]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@gem_create@create-ext-cpu-access-sanity-check.html [401]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@gem_create@create-ext-cpu-access-sanity-check.html * igt@gem_ctx_sseu@invalid-sseu: - shard-rkl: [SKIP][402] ([i915#14544] / [i915#280]) -> [SKIP][403] ([i915#280]) [402]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@gem_ctx_sseu@invalid-sseu.html [403]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@gem_ctx_sseu@invalid-sseu.html * igt@gem_exec_capture@capture-invisible@smem0: - shard-rkl: [SKIP][404] ([i915#14544] / [i915#6334]) -> [SKIP][405] ([i915#6334]) +1 other test skip [404]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@gem_exec_capture@capture-invisible@smem0.html [405]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@gem_exec_capture@capture-invisible@smem0.html * igt@gem_exec_reloc@basic-write-wc-noreloc: - shard-rkl: [SKIP][406] ([i915#3281]) -> [SKIP][407] ([i915#14544] / [i915#3281]) +1 other test skip [406]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-5/igt@gem_exec_reloc@basic-write-wc-noreloc.html [407]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@gem_exec_reloc@basic-write-wc-noreloc.html * igt@gem_lmem_swapping@verify-random: - shard-rkl: [SKIP][408] ([i915#14544] / [i915#4613]) -> [SKIP][409] ([i915#4613]) [408]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@gem_lmem_swapping@verify-random.html [409]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@gem_lmem_swapping@verify-random.html * igt@gem_partial_pwrite_pread@writes-after-reads-display: - shard-rkl: [SKIP][410] ([i915#3282]) -> [SKIP][411] ([i915#14544] / [i915#3282]) [410]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-8/igt@gem_partial_pwrite_pread@writes-after-reads-display.html [411]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@gem_partial_pwrite_pread@writes-after-reads-display.html * igt@gem_pread@display: - shard-rkl: [SKIP][412] ([i915#14544] / [i915#3282]) -> [SKIP][413] ([i915#3282]) +1 other test skip [412]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@gem_pread@display.html [413]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@gem_pread@display.html * igt@gem_userptr_blits@coherency-unsync: - shard-rkl: [SKIP][414] ([i915#3297]) -> [SKIP][415] ([i915#14544] / [i915#3297]) [414]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-4/igt@gem_userptr_blits@coherency-unsync.html [415]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@gem_userptr_blits@coherency-unsync.html * igt@gem_userptr_blits@unsync-overlap: - shard-rkl: [SKIP][416] ([i915#14544] / [i915#3297]) -> [SKIP][417] ([i915#3297]) [416]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@gem_userptr_blits@unsync-overlap.html [417]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@gem_userptr_blits@unsync-overlap.html * igt@gem_workarounds@suspend-resume-context: - shard-rkl: [ABORT][418] ([i915#15131]) -> [INCOMPLETE][419] ([i915#13356]) [418]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-1/igt@gem_workarounds@suspend-resume-context.html [419]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@gem_workarounds@suspend-resume-context.html * igt@i915_module_load@fault-injection: - shard-dg1: [ABORT][420] ([i915#11814] / [i915#15481]) -> [ABORT][421] ([i915#11814]) +1 other test abort [420]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg1-16/igt@i915_module_load@fault-injection.html [421]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-18/igt@i915_module_load@fault-injection.html * igt@i915_module_load@resize-bar: - shard-rkl: [SKIP][422] ([i915#14544] / [i915#6412]) -> [SKIP][423] ([i915#6412]) [422]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@i915_module_load@resize-bar.html [423]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@i915_module_load@resize-bar.html * igt@i915_pm_sseu@full-enable: - shard-rkl: [SKIP][424] ([i915#14544] / [i915#4387]) -> [SKIP][425] ([i915#4387]) [424]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@i915_pm_sseu@full-enable.html [425]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@i915_pm_sseu@full-enable.html * igt@kms_big_fb@4-tiled-16bpp-rotate-0: - shard-rkl: [SKIP][426] ([i915#14544] / [i915#5286]) -> [SKIP][427] ([i915#5286]) +2 other tests skip [426]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_big_fb@4-tiled-16bpp-rotate-0.html [427]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_big_fb@4-tiled-16bpp-rotate-0.html * igt@kms_big_fb@4-tiled-8bpp-rotate-270: - shard-rkl: [SKIP][428] ([i915#5286]) -> [SKIP][429] ([i915#14544] / [i915#5286]) [428]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-3/igt@kms_big_fb@4-tiled-8bpp-rotate-270.html [429]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_big_fb@4-tiled-8bpp-rotate-270.html * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip: - shard-rkl: [SKIP][430] ([i915#14544] / [i915#3828]) -> [SKIP][431] ([i915#3828]) [430]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html [431]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html * igt@kms_big_fb@x-tiled-16bpp-rotate-270: - shard-rkl: [SKIP][432] ([i915#14544] / [i915#3638]) -> [SKIP][433] ([i915#3638]) [432]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html [433]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-2/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip: - shard-rkl: [SKIP][434] -> [SKIP][435] ([i915#14544]) +25 other tests skip [434]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-4/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html [435]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html * igt@kms_ccs@bad-aux-stride-yf-tiled-ccs@pipe-b-hdmi-a-2: - shard-rkl: [SKIP][436] ([i915#6095]) -> [SKIP][437] ([i915#14544] / [i915#6095]) +3 other tests skip [436]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-3/igt@kms_ccs@bad-aux-stride-yf-tiled-ccs@pipe-b-hdmi-a-2.html [437]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_ccs@bad-aux-stride-yf-tiled-ccs@pipe-b-hdmi-a-2.html * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-2: - shard-rkl: [SKIP][438] ([i915#14544] / [i915#6095]) -> [SKIP][439] ([i915#6095]) +4 other tests skip [438]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-2.html [439]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-2.html * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2: - shard-rkl: [SKIP][440] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][441] ([i915#14098] / [i915#6095]) +7 other tests skip [440]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html [441]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs: - shard-rkl: [SKIP][442] ([i915#14098] / [i915#6095]) -> [SKIP][443] ([i915#14098] / [i915#14544] / [i915#6095]) +7 other tests skip [442]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-5/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html [443]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html * igt@kms_chamelium_frames@dp-crc-fast: - shard-rkl: [SKIP][444] ([i915#11151] / [i915#7828]) -> [SKIP][445] ([i915#11151] / [i915#14544] / [i915#7828]) +3 other tests skip [444]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-7/igt@kms_chamelium_frames@dp-crc-fast.html [445]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_chamelium_frames@dp-crc-fast.html * igt@kms_chamelium_hpd@hdmi-hpd-storm-disable: - shard-rkl: [SKIP][446] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][447] ([i915#11151] / [i915#7828]) +1 other test skip [446]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html [447]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html * igt@kms_content_protection@atomic: - shard-rkl: [SKIP][448] ([i915#14544] / [i915#15865]) -> [SKIP][449] ([i915#15865]) +1 other test skip [448]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_content_protection@atomic.html [449]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_content_protection@atomic.html * igt@kms_content_protection@atomic-dpms: - shard-dg2: [FAIL][450] ([i915#7173]) -> [SKIP][451] ([i915#15865]) [450]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-10/igt@kms_content_protection@atomic-dpms.html [451]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-4/igt@kms_content_protection@atomic-dpms.html * igt@kms_content_protection@atomic-hdcp14: - shard-rkl: [SKIP][452] ([i915#15865]) -> [SKIP][453] ([i915#14544] / [i915#15865]) [452]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-1/igt@kms_content_protection@atomic-hdcp14.html [453]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_content_protection@atomic-hdcp14.html * igt@kms_content_protection@suspend-resume: - shard-dg2: [SKIP][454] ([i915#15865]) -> [FAIL][455] ([i915#7173]) [454]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-3/igt@kms_content_protection@suspend-resume.html [455]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_content_protection@suspend-resume.html * igt@kms_cursor_crc@cursor-onscreen-512x170: - shard-dg2: [SKIP][456] ([i915#13049]) -> [SKIP][457] ([i915#13049] / [i915#3359]) [456]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-4/igt@kms_cursor_crc@cursor-onscreen-512x170.html [457]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_cursor_crc@cursor-onscreen-512x170.html * igt@kms_cursor_crc@cursor-sliding-32x32: - shard-rkl: [SKIP][458] ([i915#3555]) -> [SKIP][459] ([i915#14544] / [i915#3555]) [458]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-7/igt@kms_cursor_crc@cursor-sliding-32x32.html [459]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_cursor_crc@cursor-sliding-32x32.html * igt@kms_cursor_crc@cursor-sliding-512x170: - shard-rkl: [SKIP][460] ([i915#13049] / [i915#14544]) -> [SKIP][461] ([i915#13049]) +1 other test skip [460]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_cursor_crc@cursor-sliding-512x170.html [461]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_cursor_crc@cursor-sliding-512x170.html * igt@kms_cursor_crc@cursor-sliding-512x512: - shard-rkl: [SKIP][462] ([i915#13049]) -> [SKIP][463] ([i915#13049] / [i915#14544]) [462]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-512x512.html [463]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_cursor_crc@cursor-sliding-512x512.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions: - shard-rkl: [SKIP][464] ([i915#4103]) -> [SKIP][465] ([i915#14544] / [i915#4103]) [464]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-3/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html [465]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html * igt@kms_dsc@dsc-with-bpc: - shard-rkl: [SKIP][466] ([i915#14544] / [i915#3555] / [i915#3840]) -> [SKIP][467] ([i915#3555] / [i915#3840]) [466]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_dsc@dsc-with-bpc.html [467]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-4/igt@kms_dsc@dsc-with-bpc.html * igt@kms_feature_discovery@display-3x: - shard-rkl: [SKIP][468] ([i915#1839]) -> [SKIP][469] ([i915#14544] / [i915#1839]) [468]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-2/igt@kms_feature_discovery@display-3x.html [469]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_feature_discovery@display-3x.html * igt@kms_feature_discovery@psr1: - shard-rkl: [SKIP][470] ([i915#658]) -> [SKIP][471] ([i915#14544] / [i915#658]) [470]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-4/igt@kms_feature_discovery@psr1.html [471]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_feature_discovery@psr1.html * igt@kms_flip@2x-flip-vs-dpms: - shard-rkl: [SKIP][472] ([i915#14544] / [i915#9934]) -> [SKIP][473] ([i915#9934]) +2 other tests skip [472]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_flip@2x-flip-vs-dpms.html [473]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-2/igt@kms_flip@2x-flip-vs-dpms.html * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible: - shard-rkl: [SKIP][474] ([i915#9934]) -> [SKIP][475] ([i915#14544] / [i915#9934]) +2 other tests skip [474]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-2/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html [475]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html * igt@kms_flip@flip-vs-suspend: - shard-glk: [INCOMPLETE][476] ([i915#12745] / [i915#4839] / [i915#6113]) -> [INCOMPLETE][477] ([i915#12745] / [i915#4839]) [476]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-glk1/igt@kms_flip@flip-vs-suspend.html [477]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk6/igt@kms_flip@flip-vs-suspend.html * igt@kms_flip@flip-vs-suspend@a-hdmi-a1: - shard-glk: [INCOMPLETE][478] ([i915#12745] / [i915#6113]) -> [INCOMPLETE][479] ([i915#12745]) [478]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-glk1/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html [479]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-glk6/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling: - shard-rkl: [SKIP][480] ([i915#15643]) -> [SKIP][481] ([i915#14544] / [i915#15643]) +1 other test skip [480]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html [481]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt: - shard-rkl: [SKIP][482] ([i915#14544] / [i915#1825]) -> [SKIP][483] ([i915#1825]) +16 other tests skip [482]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt.html [483]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite: - shard-rkl: [SKIP][484] ([i915#15102] / [i915#3023]) -> [SKIP][485] ([i915#14544] / [i915#15102] / [i915#3023]) +7 other tests skip [484]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite.html [485]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt: - shard-dg1: [SKIP][486] -> [SKIP][487] ([i915#4423]) +1 other test skip [486]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg1-12/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html [487]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg1-19/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-suspend: - shard-dg2: [SKIP][488] ([i915#10433] / [i915#15102] / [i915#3458]) -> [SKIP][489] ([i915#15102] / [i915#3458]) +2 other tests skip [488]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html [489]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-7/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-rte: - shard-rkl: [SKIP][490] ([i915#14544] / [i915#15102]) -> [SKIP][491] ([i915#15102]) +5 other tests skip [490]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-rte.html [491]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-rte.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite: - shard-dg2: [SKIP][492] ([i915#15102] / [i915#3458]) -> [SKIP][493] ([i915#10433] / [i915#15102] / [i915#3458]) [492]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite.html [493]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc: - shard-rkl: [SKIP][494] ([i915#1825]) -> [SKIP][495] ([i915#14544] / [i915#1825]) +10 other tests skip [494]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc.html [495]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render: - shard-rkl: [SKIP][496] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][497] ([i915#15102] / [i915#3023]) +6 other tests skip [496]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render.html [497]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render.html * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-cur-indfb-draw-mmap-gtt: - shard-rkl: [SKIP][498] ([i915#15102]) -> [SKIP][499] ([i915#14544] / [i915#15102]) +7 other tests skip [498]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-2/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-cur-indfb-draw-mmap-gtt.html [499]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-cur-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-shrfb-plflip-blt: - shard-rkl: [SKIP][500] ([i915#14544]) -> [SKIP][501] +23 other tests skip [500]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-shrfb-plflip-blt.html [501]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-shrfb-plflip-blt.html * igt@kms_hdr@brightness-with-hdr: - shard-rkl: [SKIP][502] ([i915#14544]) -> [SKIP][503] ([i915#16011]) [502]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_hdr@brightness-with-hdr.html [503]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@kms_hdr@brightness-with-hdr.html * igt@kms_hdr@invalid-hdr: - shard-dg2: [SKIP][504] ([i915#16012] / [i915#3555] / [i915#8228]) -> [SKIP][505] ([i915#3555] / [i915#8228]) [504]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-4/igt@kms_hdr@invalid-hdr.html [505]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_hdr@invalid-hdr.html * igt@kms_joiner@basic-force-ultra-joiner: - shard-rkl: [SKIP][506] ([i915#15458]) -> [SKIP][507] ([i915#14544] / [i915#15458]) [506]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-3/igt@kms_joiner@basic-force-ultra-joiner.html [507]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_joiner@basic-force-ultra-joiner.html * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner: - shard-rkl: [SKIP][508] ([i915#14544] / [i915#15638] / [i915#15722]) -> [SKIP][509] ([i915#15638] / [i915#15722]) [508]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html [509]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html * igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping: - shard-rkl: [SKIP][510] ([i915#15709]) -> [SKIP][511] ([i915#14544] / [i915#15709]) +1 other test skip [510]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-5/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping.html [511]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping.html * igt@kms_plane_multiple@2x-tiling-4: - shard-rkl: [SKIP][512] ([i915#13958] / [i915#14544]) -> [SKIP][513] ([i915#13958]) +1 other test skip [512]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-4.html [513]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@kms_plane_multiple@2x-tiling-4.html * igt@kms_plane_multiple@2x-tiling-yf: - shard-rkl: [SKIP][514] ([i915#13958]) -> [SKIP][515] ([i915#13958] / [i915#14544]) [514]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-8/igt@kms_plane_multiple@2x-tiling-yf.html [515]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-yf.html * igt@kms_pm_dc@dc6-psr: - shard-rkl: [SKIP][516] ([i915#14544] / [i915#15948]) -> [SKIP][517] ([i915#15948]) [516]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_pm_dc@dc6-psr.html [517]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-4/igt@kms_pm_dc@dc6-psr.html * igt@kms_pm_lpsp@kms-lpsp: - shard-rkl: [SKIP][518] ([i915#9340]) -> [SKIP][519] ([i915#3828]) [518]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-7/igt@kms_pm_lpsp@kms-lpsp.html [519]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@kms_pm_lpsp@kms-lpsp.html * igt@kms_prime@d3hot: - shard-rkl: [SKIP][520] ([i915#14544] / [i915#6524]) -> [SKIP][521] ([i915#6524]) [520]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_prime@d3hot.html [521]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-8/igt@kms_prime@d3hot.html * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf: - shard-rkl: [SKIP][522] ([i915#11520] / [i915#14544]) -> [SKIP][523] ([i915#11520]) +1 other test skip [522]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html [523]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-5/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area: - shard-rkl: [SKIP][524] ([i915#11520]) -> [SKIP][525] ([i915#11520] / [i915#14544]) +2 other tests skip [524]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-2/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html [525]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html * igt@kms_psr@fbc-psr-cursor-plane-move: - shard-rkl: [SKIP][526] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][527] ([i915#1072] / [i915#9732]) +9 other tests skip [526]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_psr@fbc-psr-cursor-plane-move.html [527]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-7/igt@kms_psr@fbc-psr-cursor-plane-move.html * igt@kms_psr@fbc-psr-primary-blt: - shard-rkl: [SKIP][528] ([i915#1072] / [i915#9732]) -> [SKIP][529] ([i915#1072] / [i915#14544] / [i915#9732]) +12 other tests skip [528]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-1/igt@kms_psr@fbc-psr-primary-blt.html [529]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_psr@fbc-psr-primary-blt.html * igt@kms_rotation_crc@primary-y-tiled-reflect-x-90: - shard-dg2: [SKIP][530] ([i915#12755] / [i915#15867] / [i915#5190]) -> [SKIP][531] ([i915#15867] / [i915#5190]) [530]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-5/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html [531]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html * igt@kms_rotation_crc@sprite-rotation-90-pos-100-0: - shard-dg2: [SKIP][532] ([i915#12755] / [i915#15867]) -> [SKIP][533] ([i915#15867]) [532]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-dg2-1/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html [533]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-dg2-10/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html * igt@kms_vrr@flip-basic-fastset: - shard-rkl: [SKIP][534] ([i915#9906]) -> [SKIP][535] ([i915#14544] / [i915#9906]) +1 other test skip [534]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-1/igt@kms_vrr@flip-basic-fastset.html [535]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@kms_vrr@flip-basic-fastset.html * igt@kms_vrr@lobf: - shard-rkl: [SKIP][536] ([i915#11920] / [i915#14544]) -> [SKIP][537] ([i915#11920]) [536]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@kms_vrr@lobf.html [537]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-4/igt@kms_vrr@lobf.html * igt@perf@mi-rpc: - shard-rkl: [SKIP][538] ([i915#14544] / [i915#2434]) -> [SKIP][539] ([i915#2434]) [538]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-6/igt@perf@mi-rpc.html [539]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-4/igt@perf@mi-rpc.html * igt@perf_pmu@module-unload: - shard-mtlp: [ABORT][540] ([i915#15778]) -> [INCOMPLETE][541] ([i915#13520]) [540]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-mtlp-8/igt@perf_pmu@module-unload.html [541]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-mtlp-8/igt@perf_pmu@module-unload.html * igt@prime_vgem@basic-write: - shard-rkl: [SKIP][542] ([i915#3291] / [i915#3708]) -> [SKIP][543] ([i915#14544] / [i915#3291] / [i915#3708]) [542]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18469/shard-rkl-3/igt@prime_vgem@basic-write.html [543]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/shard-rkl-6/igt@prime_vgem@basic-write.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307 [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433 [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434 [i915#10553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10553 [i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647 [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072 [i915#1099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1099 [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151 [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520 [i915#11527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11527 [i915#11814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11814 [i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920 [i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169 [i915#12178]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12178 [i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276 [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313 [i915#12316]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316 [i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343 [i915#12358]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12358 [i915#12655]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12655 [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745 [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755 [i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761 [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805 [i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910 [i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964 [i915#13026]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13026 [i915#13027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13027 [i915#13029]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13029 [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046 [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049 [i915#13196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13196 [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356 [i915#13520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13520 [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566 [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707 [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749 [i915#13783]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13783 [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958 [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098 [i915#14118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14118 [i915#14152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14152 [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544 [i915#14545]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14545 [i915#14586]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14586 [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073 [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102 [i915#15104]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15104 [i915#15106]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15106 [i915#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131 [i915#15132]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15132 [i915#15140]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15140 [i915#15172]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15172 [i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243 [i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329 [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330 [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458 [i915#15459]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15459 [i915#15481]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15481 [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582 [i915#15608]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15608 [i915#15638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15638 [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643 [i915#15662]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15662 [i915#15672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15672 [i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709 [i915#15722]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15722 [i915#15733]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15733 [i915#15751]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15751 [i915#15752]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15752 [i915#15768]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15768 [i915#15778]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15778 [i915#15816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15816 [i915#15865]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15865 [i915#15867]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15867 [i915#15871]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15871 [i915#15948]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15948 [i915#15949]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15949 [i915#15989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15989 [i915#15990]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15990 [i915#15991]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15991 [i915#15997]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15997 [i915#16011]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16011 [i915#16012]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16012 [i915#16025]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16025 [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769 [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825 [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839 [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190 [i915#2433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2433 [i915#2434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2434 [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527 [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280 [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856 [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023 [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116 [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291 [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299 [i915#3323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3323 [i915#3359]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3359 [i915#3361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3361 [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458 [i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469 [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539 [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555 [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638 [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708 [i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742 [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828 [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840 [i915#3936]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3936 [i915#4036]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4036 [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083 [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213 [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270 [i915#4387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4387 [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423 [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525 [i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537 [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538 [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613 [i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812 [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839 [i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852 [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860 [i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880 [i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138 [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190 [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286 [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354 [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439 [i915#5723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5723 [i915#5882]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5882 [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095 [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113 [i915#6188]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6188 [i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245 [i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334 [i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335 [i915#6412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6412 [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524 [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658 [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173 [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697 [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828 [i915#7862]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7862 [i915#7882]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7882 [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228 [i915#8289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8289 [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399 [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411 [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428 [i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430 [i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516 [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623 [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708 [i915#8808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8808 [i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814 [i915#8821]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8821 [i915#9067]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9067 [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323 [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340 [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683 [i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688 [i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723 [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732 [i915#9808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9808 [i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809 [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812 [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906 [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917 [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_8903 -> IGTPW_15146 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_18469: 0ce1c813197dfbe15ff14143da97ec11161e1795 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_15146: 236252b6b6e0a9533bafd592dd033d4132aa888f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_8903: 6f88532e2fe22529195cc2f8cabff93d994688f8 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15146/index.html [-- Attachment #2: Type: text/html, Size: 187108 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-05-12 10:22 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-11 5:43 [PATCH i-g-t 0/2] tests/intel/kms_tbt: Add DP tunneling validation tests Kunal Joshi 2026-05-11 5:43 ` [PATCH i-g-t 1/2] lib/igt_connector_helper: Add DRM connector helpers using libdisplay-info Kunal Joshi 2026-05-11 5:43 ` [PATCH i-g-t 2/2] tests/intel/kms_tbt: Add DP tunneling validation tests Kunal Joshi 2026-05-12 0:14 ` ✓ i915.CI.BAT: success for " Patchwork 2026-05-12 0:50 ` ✓ Xe.CI.BAT: " Patchwork 2026-05-12 3:20 ` ✗ Xe.CI.FULL: failure " Patchwork 2026-05-12 10:22 ` ✓ i915.CI.Full: success " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox