* [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface
@ 2026-06-30 3:23 vitaly.prosyak
2026-06-30 3:23 ` [PATCH 2/7] lib: Implement generic platform filtering framework vitaly.prosyak
` (10 more replies)
0 siblings, 11 replies; 20+ messages in thread
From: vitaly.prosyak @ 2026-06-30 3:23 UTC (permalink / raw)
To: igt-dev; +Cc: Vitaly Prosyak
From: Vitaly Prosyak <vitaly.prosyak@amd.com>
Define the generic platform filtering API that allows any vendor to
plug in platform-specific test skipping logic via callbacks.
Key design elements:
- struct platform_filter_ops: vendor callback interface
- struct platform_skip_entry: vendor-neutral skip rule representation
- enum skip_source: three-tier priority (built-in, config, env)
- API functions: init, should_skip, require, dump
Platform filtering is automatic - tests only need to call
platform_filter_init() once in igt_fixture. The IGT framework
automatically checks each subtest before execution via __igt_run_subtest().
Example usage:
igt_fixture {
vendor_platform_filter_init(platform_info);
}
igt_subtest("test") {
// Automatic filtering - no manual call needed!
test_code();
}
Addresses feedback from reviewers:
1. Jani Nikula:
"I would have expected an attempt to make an IGT shared filtering
system generic enough to plug into any vendor's platforms."
Resolution: Implemented vendor-agnostic callback-based design via
platform_filter_ops structure. Any vendor (Intel, AMD, Qualcomm, etc.)
can provide their own backend without modifying core framework.
2. Kamil Konieczny:
a) "Add also example with config file as env vars are not convenient
for large tests lists"
Resolution: Comprehensive documentation added in commit 6
(docs/platform_filtering.md) showing config file as RECOMMENDED
method with real-world examples, wildcards, and best practices.
b) "imho you can get test name in require, no need to repeat it"
Resolution: Went further - v3 removes igt_platform_require()
entirely. Filtering is now automatic via __igt_run_subtest() hook
in commit 5. Zero manual calls needed in subtests.
c) Code style (include order, alignment, igt_debug vs igt_info)
Resolution: Fixed in commits 2 and 4. Includes alphabetically
ordered, SPDX headers use // style, checkpatch clean.
3. Multi-GPU support (integrated + discrete):
Current design queries platform once in igt_fixture. For multi-GPU
scenarios, tests can call platform_filter_init() per-device with
device-specific platform_info.
Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Change-Id: I370aa9f91b9d23e0fb79f3f04d8edb5cd4c57460
---
lib/igt_platform_filter.h | 123 ++++++++++++++++++++++++++++++++++++++
1 file changed, 123 insertions(+)
create mode 100644 lib/igt_platform_filter.h
diff --git a/lib/igt_platform_filter.h b/lib/igt_platform_filter.h
new file mode 100644
index 000000000..e532c6de7
--- /dev/null
+++ b/lib/igt_platform_filter.h
@@ -0,0 +1,123 @@
+/* SPDX-License-Identifier: MIT
+ * Copyright 2026 Advanced Micro Devices, Inc.
+ */
+
+#ifndef IGT_PLATFORM_FILTER_H
+#define IGT_PLATFORM_FILTER_H
+
+#include <stdbool.h>
+
+/**
+ * SECTION: igt_platform_filter
+ * @short_description: Generic platform-based test filtering framework
+ * @title: Platform Filter
+ * @include: igt_platform_filter.h
+ *
+ * Generic test filtering system that allows skipping tests/subtests based
+ * on platform characteristics. Designed to be vendor-agnostic with
+ * vendor-specific backends.
+ *
+ * Three-tier priority system (checked in sequence, first match wins):
+ * 1. PRODUCTION: Built-in compile-time rules (vendor-specific)
+ * 2. DEVELOPMENT: Config file /etc/igt/platform_skip.conf
+ * 3. RUNTIME: Environment variable IGT_PLATFORM_SKIP_CONFIG
+ *
+ * Vendor Implementation:
+ * Each vendor implements platform_filter_ops callbacks to provide:
+ * - Platform identification and matching logic
+ * - Platform-specific data structures
+ * - Built-in skip rules
+ *
+ * Usage in tests:
+ * igt_fixture() {
+ * igt_platform_filter_init(vendor_ops, platform_info);
+ * }
+ *
+ * igt_subtest("my-test") {
+ * // Automatic filtering - no manual call needed!
+ * test_code();
+ * }
+ *
+ * Config file format (/etc/igt/platform_skip.conf):
+ * # Lines starting with # are comments
+ * # Format: platform:test:subtest:reason
+ * # Use * as wildcard
+ *
+ * navi48:*:*:All tests disabled on Navi48
+ * alderlake:i915_pm:*:Power management tests broken
+ *
+ * Environment variable format (IGT_PLATFORM_SKIP_CONFIG):
+ * Same as config file, semicolon-separated entries:
+ * export IGT_PLATFORM_SKIP_CONFIG="navi48:*:*:Testing;navi10:amd_basic:*:Broken"
+ */
+
+/* Maximum platform ranges per skip entry */
+#define MAX_PLATFORM_RANGES 4
+
+/**
+ * enum skip_source - Source of skip rule
+ */
+enum skip_source {
+ SKIP_SOURCE_BUILTIN, /* From vendor built-in array */
+ SKIP_SOURCE_CONFIG, /* From /etc/igt/platform_skip.conf */
+ SKIP_SOURCE_ENV, /* From IGT_PLATFORM_SKIP_CONFIG */
+ SKIP_SOURCE_NONE, /* Not skipped */
+};
+
+/**
+ * struct platform_skip_entry - Generic skip rule entry
+ *
+ * Generic structure for skip rules. Vendor-specific data is stored
+ * in platform_data field and interpreted by vendor callbacks.
+ */
+struct platform_skip_entry {
+ const char *test_name; /* Test binary name or "*" for all */
+ const char *subtest_glob; /* Subtest pattern (fnmatch) or "*" */
+ const char *reason; /* Human-readable reason (required) */
+ void *platform_data; /* Vendor-specific platform matching data */
+};
+
+/**
+ * struct platform_filter_ops - Vendor-specific operations
+ *
+ * Callback structure that vendors implement to provide platform-specific
+ * filtering logic. This allows the core filtering framework to remain
+ * vendor-agnostic.
+ */
+struct platform_filter_ops {
+ /** @name: Vendor name (e.g., "amd", "intel") */
+
+ const char *name;
+
+ /** @get_platform_name: Get current platform name */
+ const char *(*get_platform_name)(const void *platform_info);
+
+ /** @match_platform: Check if skip entry matches current platform */
+ bool (*match_platform)(const void *platform_info, const void *platform_data);
+
+ /** @parse_platform_config: Parse platform string from config file */
+ bool (*parse_platform_config)(const char *platform_str, void **platform_data_out);
+
+ /** @get_builtin_rules: Get vendor-specific built-in skip rules */
+ const struct platform_skip_entry *(*get_builtin_rules)(int *count_out);
+
+ /** @dump_platform_data: Dump platform_data for debugging (optional) */
+ void (*dump_platform_data)(const void *platform_data);
+};
+
+/* Function prototypes - see igt_platform_filter.c for documentation */
+void igt_platform_filter_init(const struct platform_filter_ops *ops,
+ const void *platform_info);
+
+void igt_platform_require(const char *subtest_name);
+
+bool igt_platform_should_skip(const char *test_name,
+ const char *subtest_name,
+ enum skip_source *source,
+ const char **reason);
+
+void igt_platform_filter_dump(void);
+
+int igt_platform_filter_dump_to_file(const char *filename);
+
+#endif /* IGT_PLATFORM_FILTER_H */
--
2.54.0
^ permalink raw reply related [flat|nested] 20+ messages in thread* [PATCH 2/7] lib: Implement generic platform filtering framework 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak @ 2026-06-30 3:23 ` vitaly.prosyak 2026-07-01 14:38 ` Krzysztof Karas ` (2 more replies) 2026-06-30 3:23 ` [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend vitaly.prosyak ` (9 subsequent siblings) 10 siblings, 3 replies; 20+ messages in thread From: vitaly.prosyak @ 2026-06-30 3:23 UTC (permalink / raw) To: igt-dev Cc: Vitaly Prosyak, Kamil Konieczny, Jani Nikula, Jesse Zhang, Christian König, Alex Deucher From: Vitaly Prosyak <vitaly.prosyak@amd.com> Implement the vendor-agnostic platform filtering core that provides: - Three-tier priority system: 1. Built-in rules (highest, vendor-specific, requires rebuild) 2. Config file /etc/igt/platform_skip.conf (no rebuild needed) 3. Environment variable IGT_PLATFORM_SKIP_CONFIG (runtime) - Config file parsing with format: platform:test:subtest:reason - Environment variable parsing (semicolon-separated entries) - Wildcard/glob matching for test and subtest names - igt_platform_require() integration with igt_skip() - Dump functionality for debugging filter state All state is held in struct platform_filter_context (no globals). Vendor backends are accessed exclusively through platform_filter_ops callbacks, keeping this code completely vendor-neutral. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Jesse Zhang <jesse.zhang@amd.com> Cc: Christian König <christian.koenig@amd.com> Cc: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> Reviewed-by: Jesse Zhang <jesse.zhang@amd.com> Change-Id: I0a6ce532c2ef9913e68c9a23c8b9e642443a367e --- lib/igt_platform_filter.c | 499 ++++++++++++++++++++++++++++++++++++++ lib/meson.build | 1 + 2 files changed, 500 insertions(+) create mode 100644 lib/igt_platform_filter.c diff --git a/lib/igt_platform_filter.c b/lib/igt_platform_filter.c new file mode 100644 index 000000000..4ae0d6df9 --- /dev/null +++ b/lib/igt_platform_filter.c @@ -0,0 +1,499 @@ +// SPDX-License-Identifier: MIT +// Copyright 2026 Advanced Micro Devices, Inc. +/* + * Generic platform-based test filtering framework + * + * This is a vendor-agnostic filtering system. Vendor-specific logic + * is implemented via platform_filter_ops callbacks. + */ + +#include <ctype.h> +#include <fnmatch.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "igt.h" +#include "igt_platform_filter.h" + +/* Maximum entries from config file and env variable */ +#define MAX_CONFIG_ENTRIES 256 +#define MAX_ENV_ENTRIES 128 +#define MAX_LINE_LENGTH 512 + +/* Filter context - holds all runtime state (no globals) */ +struct platform_filter_context { + const struct platform_filter_ops *ops; + const void *platform_info; + + struct platform_skip_entry config_entries[MAX_CONFIG_ENTRIES]; + int config_entry_count; + + struct platform_skip_entry env_entries[MAX_ENV_ENTRIES]; + int env_entry_count; + + bool initialized; + char current_platform_name[64]; +}; + +/* Single static instance - initialized on first use */ +static struct platform_filter_context *get_filter_context(void) +{ + static struct platform_filter_context ctx = {0}; + return &ctx; +} + +/* ================================================================ + * HELPER FUNCTIONS + * ================================================================ */ + +/* Helper: Trim whitespace from string */ +static char *trim(char *str) +{ + char *end; + + while (isspace(*str)) + str++; + + if (*str == 0) + return str; + + end = str + strlen(str) - 1; + while (end > str && isspace(*end)) + end--; + + *(end + 1) = 0; + return str; +} + +/* Helper: Match wildcard or exact string */ +static bool match_string(const char *pattern, const char *str) +{ + if (!pattern || !str) + return false; + + if (strcmp(pattern, "*") == 0) + return true; + + return fnmatch(pattern, str, 0) == 0; +} + +/* Helper: Check if entry matches platform/test/subtest */ +static bool entry_matches(const struct platform_filter_context *ctx, + const struct platform_skip_entry *entry, + const char *test_name, + const char *subtest_name) +{ + /* Check platform match using vendor callback */ + if (entry->platform_data && ctx->ops->match_platform) { + if (!ctx->ops->match_platform(ctx->platform_info, entry->platform_data)) + return false; + } + + /* Check test name match */ + if (entry->test_name && strcmp(entry->test_name, "*") != 0) { + if (!test_name || !match_string(entry->test_name, test_name)) + return false; + } + + /* Check subtest glob match */ + if (entry->subtest_glob && strcmp(entry->subtest_glob, "*") != 0) { + if (!subtest_name || !match_string(entry->subtest_glob, subtest_name)) + return false; + } + + return true; +} + +/* ================================================================ + * CONFIG FILE PARSER (/etc/igt/platform_skip.conf) + * ================================================================ */ + +/* Parse one line from config file */ +static bool parse_config_line(struct platform_filter_context *ctx, + char *line, + struct platform_skip_entry *entry) +{ + char *platform, *test, *subtest, *reason; + + /* Skip comments and empty lines */ + line = trim(line); + if (line[0] == '#' || line[0] == 0) + return false; + + /* Format: platform:test:subtest:reason */ + platform = strtok(line, ":"); + test = strtok(NULL, ":"); + subtest = strtok(NULL, ":"); + reason = strtok(NULL, "\n"); + + if (!platform || !test || !subtest) { + igt_warn("Invalid config line format (expected platform:test:subtest:reason)\n"); + return false; + } + + /* Allocate and copy strings */ + entry->test_name = strdup(trim(test)); + entry->subtest_glob = strdup(trim(subtest)); + entry->reason = reason ? strdup(trim(reason)) : strdup("No reason"); + + /* Parse platform using vendor callback */ + platform = trim(platform); + if (strcmp(platform, "*") == 0) { + /* Wildcard - no platform restriction */ + entry->platform_data = NULL; + } else if (ctx->ops->parse_platform_config) { + if (!ctx->ops->parse_platform_config(platform, &entry->platform_data)) { + igt_warn("Failed to parse platform: %s\n", platform); + free((void *)entry->test_name); + free((void *)entry->subtest_glob); + free((void *)entry->reason); + return false; + } + } else { + entry->platform_data = NULL; + } + + return true; +} + +/* Load config file */ +static void load_config_file(struct platform_filter_context *ctx, const char *filename) +{ + FILE *f; + char line[MAX_LINE_LENGTH]; + + f = fopen(filename, "r"); + if (!f) { + igt_debug("Config file not found: %s\n", filename); + return; + } + + igt_info("Loading platform skip config from: %s\n", filename); + + while (fgets(line, sizeof(line), f)) { + if (ctx->config_entry_count >= MAX_CONFIG_ENTRIES) { + igt_warn("Config file has too many entries (max %d)\n", + MAX_CONFIG_ENTRIES); + break; + } + + if (parse_config_line(ctx, line, &ctx->config_entries[ctx->config_entry_count])) { + ctx->config_entry_count++; + } + } + + fclose(f); + igt_info("Loaded %d skip rules from config file\n", ctx->config_entry_count); +} + +/* ================================================================ + * ENVIRONMENT VARIABLE PARSER (IGT_PLATFORM_SKIP_CONFIG) + * ================================================================ */ + +/* Parse environment variable entries (semicolon-separated) */ +static void load_env_variable(struct platform_filter_context *ctx) +{ + char *env, *env_copy, *entry_str, *saveptr; + const char *env_value; + + env_value = getenv("IGT_PLATFORM_SKIP_CONFIG"); + if (!env_value || env_value[0] == 0) { + igt_debug("IGT_PLATFORM_SKIP_CONFIG not set\n"); + return; + } + + igt_info("Loading platform skip config from IGT_PLATFORM_SKIP_CONFIG\n"); + + env_copy = strdup(env_value); + env = env_copy; + + /* Parse semicolon-separated entries */ + while ((entry_str = strtok_r(env, ";", &saveptr)) != NULL) { + env = NULL; /* For subsequent strtok_r calls */ + + if (ctx->env_entry_count >= MAX_ENV_ENTRIES) { + igt_warn("Too many env variable entries (max %d)\n", + MAX_ENV_ENTRIES); + break; + } + + if (parse_config_line(ctx, entry_str, &ctx->env_entries[ctx->env_entry_count])) { + ctx->env_entry_count++; + } + } + + free(env_copy); + igt_info("Loaded %d skip rules from environment variable\n", ctx->env_entry_count); +} + +/* ================================================================ + * PUBLIC API IMPLEMENTATION + * ================================================================ */ + +void igt_platform_filter_init(const struct platform_filter_ops *ops, + const void *platform_info) +{ + struct platform_filter_context *ctx = get_filter_context(); + + if (ctx->initialized) + return; + + if (!ops) { + igt_warn("Platform filter ops is NULL, filtering disabled\n"); + return; + } + + ctx->ops = ops; + ctx->platform_info = platform_info; + + igt_info("Initializing platform filter system (3-tier priority) for vendor: %s\n", + ops->name ? ops->name : "unknown"); + + /* Get current platform name */ + if (ops->get_platform_name) { + const char *pname = ops->get_platform_name(platform_info); + snprintf(ctx->current_platform_name, sizeof(ctx->current_platform_name), + "%s", pname ? pname : "unknown"); + } + + /* Priority 1: Built-in array (vendor-specific) */ + igt_debug(" Priority 1: Built-in array (vendor-specific)\n"); + + /* Priority 2: Config file */ + igt_debug(" Priority 2: Config file /etc/igt/platform_skip.conf\n"); + load_config_file(ctx, "/etc/igt/platform_skip.conf"); + + /* Priority 3: Environment variable */ + igt_debug(" Priority 3: Environment variable IGT_PLATFORM_SKIP_CONFIG\n"); + load_env_variable(ctx); + + ctx->initialized = true; + igt_info("Platform filter initialization complete\n"); +} + +bool igt_platform_should_skip(const char *test_name, + const char *subtest_name, + enum skip_source *source, + const char **reason) +{ + struct platform_filter_context *ctx = get_filter_context(); + const struct platform_skip_entry *entry; + int i, count; + + if (!ctx->initialized) { + igt_warn("Platform filter not initialized\n"); + if (source) + *source = SKIP_SOURCE_NONE; + if (reason) + *reason = NULL; + return false; + } + + /* Priority 1: Check built-in array FIRST */ + if (ctx->ops->get_builtin_rules) { + const struct platform_skip_entry *builtin = ctx->ops->get_builtin_rules(&count); + for (i = 0; i < count; i++) { + entry = &builtin[i]; + if (entry_matches(ctx, entry, test_name, subtest_name)) { + if (source) + *source = SKIP_SOURCE_BUILTIN; + if (reason) + *reason = entry->reason; + igt_debug("Skip (built-in): %s:%s - %s\n", + entry->test_name ? entry->test_name : "*", + entry->subtest_glob ? entry->subtest_glob : "*", + entry->reason ? entry->reason : "no reason"); + return true; + } + } + } + + /* Priority 2: Check config file */ + for (i = 0; i < ctx->config_entry_count; i++) { + entry = &ctx->config_entries[i]; + if (entry_matches(ctx, entry, test_name, subtest_name)) { + if (source) + *source = SKIP_SOURCE_CONFIG; + if (reason) + *reason = entry->reason; + igt_debug("Skip (config): %s:%s - %s\n", + entry->test_name, entry->subtest_glob, entry->reason); + return true; + } + } + + /* Priority 3: Check environment variable */ + for (i = 0; i < ctx->env_entry_count; i++) { + entry = &ctx->env_entries[i]; + if (entry_matches(ctx, entry, test_name, subtest_name)) { + if (source) + *source = SKIP_SOURCE_ENV; + if (reason) + *reason = entry->reason; + igt_debug("Skip (env): %s:%s - %s\n", + entry->test_name, entry->subtest_glob, entry->reason); + return true; + } + } + + if (source) + *source = SKIP_SOURCE_NONE; + if (reason) + *reason = NULL; + return false; +} + +void igt_platform_require(const char *subtest_name) +{ + enum skip_source source; + const char *test_name = igt_test_name(); + const char *reason; + + if (igt_platform_should_skip(test_name, subtest_name, &source, &reason)) { + const char *source_str; + + switch (source) { + case SKIP_SOURCE_BUILTIN: + source_str = "built-in array"; + break; + case SKIP_SOURCE_CONFIG: + source_str = "config file"; + break; + case SKIP_SOURCE_ENV: + source_str = "environment variable"; + break; + default: + source_str = "unknown"; + } + + igt_skip("Skipped on this platform [%s]: %s\n", + source_str, reason ? reason : "no reason"); + } +} + +void igt_platform_filter_dump(void) +{ + struct platform_filter_context *ctx = get_filter_context(); + const struct platform_skip_entry *entry; + int i, total_count, count; + + if (!ctx->initialized) { + igt_info("Platform filter not initialized\n"); + return; + } + + igt_info("\n"); + igt_info("═══════════════════════════════════════════════════════════════════\n"); + igt_info(" PLATFORM SKIP FILTER CONFIGURATION - THREE-TIER PRIORITY SYSTEM\n"); + igt_info("═══════════════════════════════════════════════════════════════════\n\n"); + + igt_info("Vendor: %s\n", ctx->ops->name ? ctx->ops->name : "unknown"); + if (ctx->current_platform_name[0]) { + igt_info("Current Platform: %s\n\n", ctx->current_platform_name); + } + + /* Priority 1: Built-in array */ + igt_info("───────────────────────────────────────────────────────────────────\n"); + igt_info(" PRIORITY 1: BUILT-IN PRODUCTION ARRAY (VENDOR-SPECIFIC)\n"); + igt_info(" Source: Vendor implementation\n"); + igt_info("───────────────────────────────────────────────────────────────────\n"); + + total_count = 0; + if (ctx->ops->get_builtin_rules) { + const struct platform_skip_entry *builtin = ctx->ops->get_builtin_rules(&count); + for (i = 0; i < count; i++) { + entry = &builtin[i]; + total_count++; + igt_info(" %2d. %s : %s\n", + total_count, + entry->test_name ? entry->test_name : "*", + entry->subtest_glob ? entry->subtest_glob : "*"); + igt_info(" Reason: %s\n", entry->reason ? entry->reason : "no reason"); + + /* Print platform data if vendor provides dump callback */ + if (entry->platform_data && ctx->ops->dump_platform_data) { + igt_info(" Platform: "); + ctx->ops->dump_platform_data(entry->platform_data); + igt_info("\n"); + } + igt_info("\n"); + } + } + if (total_count == 0) { + igt_info(" (No built-in rules)\n\n"); + } + + /* Priority 2: Config file */ + igt_info("───────────────────────────────────────────────────────────────────\n"); + igt_info(" PRIORITY 2: DEVELOPMENT CONFIG FILE\n"); + igt_info(" Source: /etc/igt/platform_skip.conf\n"); + igt_info("───────────────────────────────────────────────────────────────────\n"); + + if (ctx->config_entry_count > 0) { + for (i = 0; i < ctx->config_entry_count; i++) { + entry = &ctx->config_entries[i]; + igt_info(" %2d. %s : %s\n", + i + 1, + entry->test_name, + entry->subtest_glob); + igt_info(" Reason: %s\n\n", entry->reason); + } + } else { + igt_info(" (No config file rules loaded)\n\n"); + } + + /* Priority 3: Environment variable */ + igt_info("───────────────────────────────────────────────────────────────────\n"); + igt_info(" PRIORITY 3: RUNTIME ENVIRONMENT VARIABLE\n"); + igt_info(" Source: IGT_PLATFORM_SKIP_CONFIG\n"); + igt_info("───────────────────────────────────────────────────────────────────\n"); + + if (ctx->env_entry_count > 0) { + for (i = 0; i < ctx->env_entry_count; i++) { + entry = &ctx->env_entries[i]; + igt_info(" %2d. %s : %s\n", + i + 1, + entry->test_name, + entry->subtest_glob); + igt_info(" Reason: %s\n\n", entry->reason); + } + } else { + igt_info(" (No environment variable rules)\n\n"); + } + + igt_info("───────────────────────────────────────────────────────────────────\n"); + igt_info(" SUMMARY\n"); + igt_info("───────────────────────────────────────────────────────────────────\n"); + igt_info(" Built-in rules: %d\n", total_count); + igt_info(" Config file rules: %d\n", ctx->config_entry_count); + igt_info(" Environment rules: %d\n", ctx->env_entry_count); + igt_info(" Total skip rules: %d\n", total_count + ctx->config_entry_count + ctx->env_entry_count); + igt_info("\n"); + igt_info("═══════════════════════════════════════════════════════════════════\n\n"); +} + +int igt_platform_filter_dump_to_file(const char *filename) +{ + FILE *old_stdout; + FILE *f; + + f = fopen(filename, "w"); + if (!f) { + igt_warn("Failed to open %s for writing\n", filename); + return -1; + } + + /* Redirect stdout to file */ + old_stdout = stdout; + stdout = f; + + igt_platform_filter_dump(); + + /* Restore stdout */ + stdout = old_stdout; + fclose(f); + + igt_info("Platform filter configuration dumped to: %s\n", filename); + return 0; +} diff --git a/lib/meson.build b/lib/meson.build index d1289a5e0..ba0683995 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -38,6 +38,7 @@ lib_sources = [ 'igt_params.c', 'igt_perf.c', 'igt_pipe_crc.c', + 'igt_platform_filter.c', 'igt_power.c', 'igt_primes.c', 'igt_pci.c', -- 2.54.0 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 2/7] lib: Implement generic platform filtering framework 2026-06-30 3:23 ` [PATCH 2/7] lib: Implement generic platform filtering framework vitaly.prosyak @ 2026-07-01 14:38 ` Krzysztof Karas 2026-07-02 12:30 ` Kamil Konieczny 2026-07-02 17:25 ` Kamil Konieczny 2 siblings, 0 replies; 20+ messages in thread From: Krzysztof Karas @ 2026-07-01 14:38 UTC (permalink / raw) To: vitaly.prosyak Cc: igt-dev, Kamil Konieczny, Jani Nikula, Jesse Zhang, Christian König, Alex Deucher Hi Vitaly, I left some comments below, mostly nits and questions. On 2026-06-29 at 23:23:21 -0400, vitaly.prosyak@amd.com wrote: > From: Vitaly Prosyak <vitaly.prosyak@amd.com> > > Implement the vendor-agnostic platform filtering core that provides: > > - Three-tier priority system: > 1. Built-in rules (highest, vendor-specific, requires rebuild) > 2. Config file /etc/igt/platform_skip.conf (no rebuild needed) > 3. Environment variable IGT_PLATFORM_SKIP_CONFIG (runtime) > > - Config file parsing with format: platform:test:subtest:reason > - Environment variable parsing (semicolon-separated entries) > - Wildcard/glob matching for test and subtest names > - igt_platform_require() integration with igt_skip() > - Dump functionality for debugging filter state > > All state is held in struct platform_filter_context (no globals). > Vendor backends are accessed exclusively through platform_filter_ops > callbacks, keeping this code completely vendor-neutral. > > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Jesse Zhang <jesse.zhang@amd.com> > Cc: Christian König <christian.koenig@amd.com> > Cc: Alex Deucher <alexander.deucher@amd.com> > Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> > Reviewed-by: Jesse Zhang <jesse.zhang@amd.com> > Change-Id: I0a6ce532c2ef9913e68c9a23c8b9e642443a367e > --- [...] > +/* Helper: Check if entry matches platform/test/subtest */ > +static bool entry_matches(const struct platform_filter_context *ctx, > + const struct platform_skip_entry *entry, > + const char *test_name, > + const char *subtest_name) > +{ > + /* Check platform match using vendor callback */ I think comments in this function are superfluous, the matching is self explanatory. > + if (entry->platform_data && ctx->ops->match_platform) { > + if (!ctx->ops->match_platform(ctx->platform_info, entry->platform_data)) > + return false; > + } > + > + /* Check test name match */ > + if (entry->test_name && strcmp(entry->test_name, "*") != 0) { > + if (!test_name || !match_string(entry->test_name, test_name)) > + return false; > + } > + > + /* Check subtest glob match */ > + if (entry->subtest_glob && strcmp(entry->subtest_glob, "*") != 0) { > + if (!subtest_name || !match_string(entry->subtest_glob, subtest_name)) > + return false; > + } > + > + return true; > +} > + > +/* ================================================================ > + * CONFIG FILE PARSER (/etc/igt/platform_skip.conf) > + * ================================================================ */ > + > +/* Parse one line from config file */ > +static bool parse_config_line(struct platform_filter_context *ctx, > + char *line, > + struct platform_skip_entry *entry) > +{ > + char *platform, *test, *subtest, *reason; > + > + /* Skip comments and empty lines */ > + line = trim(line); > + if (line[0] == '#' || line[0] == 0) > + return false; > + > + /* Format: platform:test:subtest:reason */ > + platform = strtok(line, ":"); > + test = strtok(NULL, ":"); > + subtest = strtok(NULL, ":"); > + reason = strtok(NULL, "\n"); > + > + if (!platform || !test || !subtest) {\ In previous patch "*reason" was annotated with "(required), but just below you insert "No reason" yourself and it is a bit confusing to me - is the reason required from whoever fills the skip entry or rather "this field cannot be NULL/empty" at the end? If former is the intended way, then here you should probably check for !reason as well (especially when you explicitly state the expected format in the igt_warn below). > + igt_warn("Invalid config line format (expected platform:test:subtest:reason)\n"); > + return false; > + } > + > + /* Allocate and copy strings */ > + entry->test_name = strdup(trim(test)); > + entry->subtest_glob = strdup(trim(subtest)); > + entry->reason = reason ? strdup(trim(reason)) : strdup("No reason"); > + > + /* Parse platform using vendor callback */ > + platform = trim(platform); > + if (strcmp(platform, "*") == 0) { > + /* Wildcard - no platform restriction */ > + entry->platform_data = NULL; You could avoid a bit of code duplication and skip this first if: platform_data == NULL with current logic means that a wildcard was used or there was no parse_platform_config available anyway. It'd be something like this: if (ctx->ops->parse_platform_config) { ... } else { /* Wildcard or no parsing function */ entry->platform_data = NULL; } > + } else if (ctx->ops->parse_platform_config) { > + if (!ctx->ops->parse_platform_config(platform, &entry->platform_data)) { > + igt_warn("Failed to parse platform: %s\n", platform); > + free((void *)entry->test_name); > + free((void *)entry->subtest_glob); > + free((void *)entry->reason); Are these casts needed? > + return false; > + } > + } else { > + entry->platform_data = NULL; > + } > + > + return true; > +} > + > +/* Load config file */ > +static void load_config_file(struct platform_filter_context *ctx, const char *filename) > +{ > + FILE *f; > + char line[MAX_LINE_LENGTH]; > + > + f = fopen(filename, "r"); > + if (!f) { > + igt_debug("Config file not found: %s\n", filename); I wonder if this is going to confuse folks, because usually "file not found" is associated with some kind of error. I think you could skip silently here. > + return; > + } > + > + igt_info("Loading platform skip config from: %s\n", filename); > + > + while (fgets(line, sizeof(line), f)) { > + if (ctx->config_entry_count >= MAX_CONFIG_ENTRIES) { > + igt_warn("Config file has too many entries (max %d)\n", > + MAX_CONFIG_ENTRIES); > + break; > + } > + > + if (parse_config_line(ctx, line, &ctx->config_entries[ctx->config_entry_count])) { > + ctx->config_entry_count++; > + } > + } > + > + fclose(f); > + igt_info("Loaded %d skip rules from config file\n", ctx->config_entry_count); > +} > + > +/* ================================================================ > + * ENVIRONMENT VARIABLE PARSER (IGT_PLATFORM_SKIP_CONFIG) > + * ================================================================ */ > + > +/* Parse environment variable entries (semicolon-separated) */ > +static void load_env_variable(struct platform_filter_context *ctx) > +{ > + char *env, *env_copy, *entry_str, *saveptr; > + const char *env_value; > + > + env_value = getenv("IGT_PLATFORM_SKIP_CONFIG"); > + if (!env_value || env_value[0] == 0) { > + igt_debug("IGT_PLATFORM_SKIP_CONFIG not set\n"); Here too, if it is expected that this env variable may be unset, then maybe skip this log entirely or reword it to be more informative and less error-like. > + return; > + } > + > + igt_info("Loading platform skip config from IGT_PLATFORM_SKIP_CONFIG\n"); > + > + env_copy = strdup(env_value); > + env = env_copy; > + > + /* Parse semicolon-separated entries */ > + while ((entry_str = strtok_r(env, ";", &saveptr)) != NULL) { > + env = NULL; /* For subsequent strtok_r calls */ > + > + if (ctx->env_entry_count >= MAX_ENV_ENTRIES) { > + igt_warn("Too many env variable entries (max %d)\n", > + MAX_ENV_ENTRIES); > + break; > + } > + > + if (parse_config_line(ctx, entry_str, &ctx->env_entries[ctx->env_entry_count])) { > + ctx->env_entry_count++; > + } > + } > + > + free(env_copy); > + igt_info("Loaded %d skip rules from environment variable\n", ctx->env_entry_count); > +} > + > +/* ================================================================ > + * PUBLIC API IMPLEMENTATION > + * ================================================================ */ > + > +void igt_platform_filter_init(const struct platform_filter_ops *ops, > + const void *platform_info) > +{ > + struct platform_filter_context *ctx = get_filter_context(); > + > + if (ctx->initialized) > + return; > + > + if (!ops) { > + igt_warn("Platform filter ops is NULL, filtering disabled\n"); > + return; > + } > + > + ctx->ops = ops; > + ctx->platform_info = platform_info; > + > + igt_info("Initializing platform filter system (3-tier priority) for vendor: %s\n", > + ops->name ? ops->name : "unknown"); > + > + /* Get current platform name */ > + if (ops->get_platform_name) { > + const char *pname = ops->get_platform_name(platform_info); > + snprintf(ctx->current_platform_name, sizeof(ctx->current_platform_name), > + "%s", pname ? pname : "unknown"); > + } > + > + /* Priority 1: Built-in array (vendor-specific) */ > + igt_debug(" Priority 1: Built-in array (vendor-specific)\n"); > + > + /* Priority 2: Config file */ > + igt_debug(" Priority 2: Config file /etc/igt/platform_skip.conf\n"); > + load_config_file(ctx, "/etc/igt/platform_skip.conf"); I wonder: why this location for file? Wouldn't putting it inside IGT work as well? Or letting users pass their own conf files? > + > + /* Priority 3: Environment variable */ > + igt_debug(" Priority 3: Environment variable IGT_PLATFORM_SKIP_CONFIG\n"); > + load_env_variable(ctx); > + > + ctx->initialized = true; > + igt_info("Platform filter initialization complete\n"); > +} > + [...] > +void igt_platform_filter_dump(void) > +{ > + struct platform_filter_context *ctx = get_filter_context(); > + const struct platform_skip_entry *entry; > + int i, total_count, count; > + > + if (!ctx->initialized) { > + igt_info("Platform filter not initialized\n"); I wonder if the change in severity is deliberate: in igt_platform_should_skip this message was a warning. > + return; > + } > + > + igt_info("\n"); > + igt_info("═══════════════════════════════════════════════════════════════════\n"); > + igt_info(" PLATFORM SKIP FILTER CONFIGURATION - THREE-TIER PRIORITY SYSTEM\n"); > + igt_info("═══════════════════════════════════════════════════════════════════\n\n"); > + > + igt_info("Vendor: %s\n", ctx->ops->name ? ctx->ops->name : "unknown"); > + if (ctx->current_platform_name[0]) { > + igt_info("Current Platform: %s\n\n", ctx->current_platform_name); > + } > + > + /* Priority 1: Built-in array */ > + igt_info("───────────────────────────────────────────────────────────────────\n"); > + igt_info(" PRIORITY 1: BUILT-IN PRODUCTION ARRAY (VENDOR-SPECIFIC)\n"); > + igt_info(" Source: Vendor implementation\n"); > + igt_info("───────────────────────────────────────────────────────────────────\n"); > + > + total_count = 0; > + if (ctx->ops->get_builtin_rules) { > + const struct platform_skip_entry *builtin = ctx->ops->get_builtin_rules(&count); > + for (i = 0; i < count; i++) { > + entry = &builtin[i]; > + total_count++; > + igt_info(" %2d. %s : %s\n", > + total_count, > + entry->test_name ? entry->test_name : "*", > + entry->subtest_glob ? entry->subtest_glob : "*"); > + igt_info(" Reason: %s\n", entry->reason ? entry->reason : "no reason"); > + > + /* Print platform data if vendor provides dump callback */ > + if (entry->platform_data && ctx->ops->dump_platform_data) { > + igt_info(" Platform: "); > + ctx->ops->dump_platform_data(entry->platform_data); > + igt_info("\n"); > + } > + igt_info("\n"); > + } > + } > + if (total_count == 0) { > + igt_info(" (No built-in rules)\n\n"); This could be a debug log. > + } > + > + /* Priority 2: Config file */ > + igt_info("───────────────────────────────────────────────────────────────────\n"); > + igt_info(" PRIORITY 2: DEVELOPMENT CONFIG FILE\n"); > + igt_info(" Source: /etc/igt/platform_skip.conf\n"); > + igt_info("───────────────────────────────────────────────────────────────────\n"); > + > + if (ctx->config_entry_count > 0) { > + for (i = 0; i < ctx->config_entry_count; i++) { > + entry = &ctx->config_entries[i]; > + igt_info(" %2d. %s : %s\n", > + i + 1, > + entry->test_name, > + entry->subtest_glob); > + igt_info(" Reason: %s\n\n", entry->reason); > + } > + } else { > + igt_info(" (No config file rules loaded)\n\n"); This could be a debug log or no log at all, it will spam the output. User should be aware if they used a conf file or not. > + } > + > + /* Priority 3: Environment variable */ > + igt_info("───────────────────────────────────────────────────────────────────\n"); > + igt_info(" PRIORITY 3: RUNTIME ENVIRONMENT VARIABLE\n"); > + igt_info(" Source: IGT_PLATFORM_SKIP_CONFIG\n"); > + igt_info("───────────────────────────────────────────────────────────────────\n"); > + > + if (ctx->env_entry_count > 0) { > + for (i = 0; i < ctx->env_entry_count; i++) { > + entry = &ctx->env_entries[i]; > + igt_info(" %2d. %s : %s\n", > + i + 1, > + entry->test_name, > + entry->subtest_glob); > + igt_info(" Reason: %s\n\n", entry->reason); > + } > + } else { > + igt_info(" (No environment variable rules)\n\n"); This could be a debug log or no log at all, it will spam the output. User should be aware if they used env variable or not. > + } > + > + igt_info("───────────────────────────────────────────────────────────────────\n"); > + igt_info(" SUMMARY\n"); > + igt_info("───────────────────────────────────────────────────────────────────\n"); > + igt_info(" Built-in rules: %d\n", total_count); > + igt_info(" Config file rules: %d\n", ctx->config_entry_count); > + igt_info(" Environment rules: %d\n", ctx->env_entry_count); > + igt_info(" Total skip rules: %d\n", total_count + ctx->config_entry_count + ctx->env_entry_count); > + igt_info("\n"); > + igt_info("═══════════════════════════════════════════════════════════════════\n\n"); > +} > + > +int igt_platform_filter_dump_to_file(const char *filename) > +{ > + FILE *old_stdout; > + FILE *f; > + > + f = fopen(filename, "w"); > + if (!f) { > + igt_warn("Failed to open %s for writing\n", filename); You are returning an error here, so igt_err would fit better. > + return -1; > + } > + > + /* Redirect stdout to file */ > + old_stdout = stdout; > + stdout = f; > + > + igt_platform_filter_dump(); > + > + /* Restore stdout */ > + stdout = old_stdout; > + fclose(f); > + > + igt_info("Platform filter configuration dumped to: %s\n", filename); > + return 0; > +} > diff --git a/lib/meson.build b/lib/meson.build > index d1289a5e0..ba0683995 100644 > --- a/lib/meson.build > +++ b/lib/meson.build > @@ -38,6 +38,7 @@ lib_sources = [ > 'igt_params.c', > 'igt_perf.c', > 'igt_pipe_crc.c', > + 'igt_platform_filter.c', > 'igt_power.c', > 'igt_primes.c', > 'igt_pci.c', > -- > 2.54.0 > -- Best Regards, Krzysztof ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 2/7] lib: Implement generic platform filtering framework 2026-06-30 3:23 ` [PATCH 2/7] lib: Implement generic platform filtering framework vitaly.prosyak 2026-07-01 14:38 ` Krzysztof Karas @ 2026-07-02 12:30 ` Kamil Konieczny 2026-07-02 17:25 ` Kamil Konieczny 2 siblings, 0 replies; 20+ messages in thread From: Kamil Konieczny @ 2026-07-02 12:30 UTC (permalink / raw) To: vitaly.prosyak Cc: igt-dev, Jani Nikula, Jesse Zhang, Christian König, Alex Deucher, Krzysztof Karas Hi Vitaly, On 2026-06-29 at 23:23:21 -0400, vitaly.prosyak@amd.com wrote: > From: Vitaly Prosyak <vitaly.prosyak@amd.com> > > Implement the vendor-agnostic platform filtering core that provides: > > - Three-tier priority system: > 1. Built-in rules (highest, vendor-specific, requires rebuild) > 2. Config file /etc/igt/platform_skip.conf (no rebuild needed) > 3. Environment variable IGT_PLATFORM_SKIP_CONFIG (runtime) > > - Config file parsing with format: platform:test:subtest:reason > - Environment variable parsing (semicolon-separated entries) > - Wildcard/glob matching for test and subtest names > - igt_platform_require() integration with igt_skip() > - Dump functionality for debugging filter state > > All state is held in struct platform_filter_context (no globals). > Vendor backends are accessed exclusively through platform_filter_ops > callbacks, keeping this code completely vendor-neutral. > > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Jesse Zhang <jesse.zhang@amd.com> > Cc: Christian König <christian.koenig@amd.com> > Cc: Alex Deucher <alexander.deucher@amd.com> > Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> > Reviewed-by: Jesse Zhang <jesse.zhang@amd.com> > Change-Id: I0a6ce532c2ef9913e68c9a23c8b9e642443a367e > --- > lib/igt_platform_filter.c | 499 ++++++++++++++++++++++++++++++++++++++ > lib/meson.build | 1 + > 2 files changed, 500 insertions(+) > create mode 100644 lib/igt_platform_filter.c > > diff --git a/lib/igt_platform_filter.c b/lib/igt_platform_filter.c > new file mode 100644 > index 000000000..4ae0d6df9 > --- /dev/null > +++ b/lib/igt_platform_filter.c > @@ -0,0 +1,499 @@ > +// SPDX-License-Identifier: MIT > +// Copyright 2026 Advanced Micro Devices, Inc. > +/* > + * Generic platform-based test filtering framework > + * > + * This is a vendor-agnostic filtering system. Vendor-specific logic > + * is implemented via platform_filter_ops callbacks. > + */ > + > +#include <ctype.h> > +#include <fnmatch.h> > +#include <stdio.h> > +#include <stdlib.h> > +#include <string.h> > + > +#include "igt.h" > +#include "igt_platform_filter.h" > + > +/* Maximum entries from config file and env variable */ > +#define MAX_CONFIG_ENTRIES 256 > +#define MAX_ENV_ENTRIES 128 > +#define MAX_LINE_LENGTH 512 > + > +/* Filter context - holds all runtime state (no globals) */ > +struct platform_filter_context { > + const struct platform_filter_ops *ops; > + const void *platform_info; > + > + struct platform_skip_entry config_entries[MAX_CONFIG_ENTRIES]; > + int config_entry_count; > + > + struct platform_skip_entry env_entries[MAX_ENV_ENTRIES]; > + int env_entry_count; > + > + bool initialized; > + char current_platform_name[64]; > +}; > + > +/* Single static instance - initialized on first use */ > +static struct platform_filter_context *get_filter_context(void) > +{ > + static struct platform_filter_context ctx = {0}; Add neline before return, here and in other places. > + return &ctx; > +} > + > +/* ================================================================ > + * HELPER FUNCTIONS > + * ================================================================ */ Use C-style: * ================================================================ */ Same applies to other '===' lines. You can catch this and other whitespace/align problems with the help of checkpatch.pl script. > + > +/* Helper: Trim whitespace from string */ > +static char *trim(char *str) > +{ > + char *end; > + > + while (isspace(*str)) > + str++; > + > + if (*str == 0) > + return str; > + > + end = str + strlen(str) - 1; > + while (end > str && isspace(*end)) > + end--; > + > + *(end + 1) = 0; > + return str; > +} > + > +/* Helper: Match wildcard or exact string */ > +static bool match_string(const char *pattern, const char *str) > +{ > + if (!pattern || !str) > + return false; > + > + if (strcmp(pattern, "*") == 0) > + return true; > + > + return fnmatch(pattern, str, 0) == 0; > +} > + > +/* Helper: Check if entry matches platform/test/subtest */ > +static bool entry_matches(const struct platform_filter_context *ctx, > + const struct platform_skip_entry *entry, > + const char *test_name, > + const char *subtest_name) > +{ > + /* Check platform match using vendor callback */ > + if (entry->platform_data && ctx->ops->match_platform) { > + if (!ctx->ops->match_platform(ctx->platform_info, entry->platform_data)) > + return false; > + } > + > + /* Check test name match */ > + if (entry->test_name && strcmp(entry->test_name, "*") != 0) { > + if (!test_name || !match_string(entry->test_name, test_name)) > + return false; > + } > + > + /* Check subtest glob match */ > + if (entry->subtest_glob && strcmp(entry->subtest_glob, "*") != 0) { > + if (!subtest_name || !match_string(entry->subtest_glob, subtest_name)) > + return false; > + } > + > + return true; > +} > + > +/* ================================================================ > + * CONFIG FILE PARSER (/etc/igt/platform_skip.conf) > + * ================================================================ */ > + > +/* Parse one line from config file */ > +static bool parse_config_line(struct platform_filter_context *ctx, > + char *line, > + struct platform_skip_entry *entry) > +{ > + char *platform, *test, *subtest, *reason; > + > + /* Skip comments and empty lines */ > + line = trim(line); > + if (line[0] == '#' || line[0] == 0) > + return false; > + > + /* Format: platform:test:subtest:reason */ > + platform = strtok(line, ":"); > + test = strtok(NULL, ":"); > + subtest = strtok(NULL, ":"); > + reason = strtok(NULL, "\n"); > + > + if (!platform || !test || !subtest) { > + igt_warn("Invalid config line format (expected platform:test:subtest:reason)\n"); > + return false; > + } > + > + /* Allocate and copy strings */ > + entry->test_name = strdup(trim(test)); > + entry->subtest_glob = strdup(trim(subtest)); > + entry->reason = reason ? strdup(trim(reason)) : strdup("No reason"); > + > + /* Parse platform using vendor callback */ > + platform = trim(platform); > + if (strcmp(platform, "*") == 0) { > + /* Wildcard - no platform restriction */ > + entry->platform_data = NULL; > + } else if (ctx->ops->parse_platform_config) { > + if (!ctx->ops->parse_platform_config(platform, &entry->platform_data)) { > + igt_warn("Failed to parse platform: %s\n", platform); > + free((void *)entry->test_name); > + free((void *)entry->subtest_glob); > + free((void *)entry->reason); > + return false; > + } > + } else { > + entry->platform_data = NULL; > + } > + > + return true; > +} > + > +/* Load config file */ > +static void load_config_file(struct platform_filter_context *ctx, const char *filename) > +{ > + FILE *f; > + char line[MAX_LINE_LENGTH]; > + > + f = fopen(filename, "r"); > + if (!f) { > + igt_debug("Config file not found: %s\n", filename); > + return; > + } > + > + igt_info("Loading platform skip config from: %s\n", filename); > + > + while (fgets(line, sizeof(line), f)) { > + if (ctx->config_entry_count >= MAX_CONFIG_ENTRIES) { > + igt_warn("Config file has too many entries (max %d)\n", > + MAX_CONFIG_ENTRIES); > + break; > + } > + > + if (parse_config_line(ctx, line, &ctx->config_entries[ctx->config_entry_count])) { > + ctx->config_entry_count++; > + } > + } > + > + fclose(f); > + igt_info("Loaded %d skip rules from config file\n", ctx->config_entry_count); > +} > + > +/* ================================================================ > + * ENVIRONMENT VARIABLE PARSER (IGT_PLATFORM_SKIP_CONFIG) > + * ================================================================ */ > + > +/* Parse environment variable entries (semicolon-separated) */ > +static void load_env_variable(struct platform_filter_context *ctx) > +{ > + char *env, *env_copy, *entry_str, *saveptr; > + const char *env_value; > + > + env_value = getenv("IGT_PLATFORM_SKIP_CONFIG"); > + if (!env_value || env_value[0] == 0) { > + igt_debug("IGT_PLATFORM_SKIP_CONFIG not set\n"); Here also add newline before return. > + return; > + } > + > + igt_info("Loading platform skip config from IGT_PLATFORM_SKIP_CONFIG\n"); > + > + env_copy = strdup(env_value); > + env = env_copy; > + > + /* Parse semicolon-separated entries */ > + while ((entry_str = strtok_r(env, ";", &saveptr)) != NULL) { > + env = NULL; /* For subsequent strtok_r calls */ > + > + if (ctx->env_entry_count >= MAX_ENV_ENTRIES) { > + igt_warn("Too many env variable entries (max %d)\n", > + MAX_ENV_ENTRIES); > + break; > + } > + > + if (parse_config_line(ctx, entry_str, &ctx->env_entries[ctx->env_entry_count])) { > + ctx->env_entry_count++; > + } > + } > + > + free(env_copy); > + igt_info("Loaded %d skip rules from environment variable\n", ctx->env_entry_count); > +} > + > +/* ================================================================ > + * PUBLIC API IMPLEMENTATION > + * ================================================================ */ > + Add documentation here and to all other public lib functions. > +void igt_platform_filter_init(const struct platform_filter_ops *ops, > + const void *platform_info) > +{ > + struct platform_filter_context *ctx = get_filter_context(); > + [cut] Regards, Kamil ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 2/7] lib: Implement generic platform filtering framework 2026-06-30 3:23 ` [PATCH 2/7] lib: Implement generic platform filtering framework vitaly.prosyak 2026-07-01 14:38 ` Krzysztof Karas 2026-07-02 12:30 ` Kamil Konieczny @ 2026-07-02 17:25 ` Kamil Konieczny 2 siblings, 0 replies; 20+ messages in thread From: Kamil Konieczny @ 2026-07-02 17:25 UTC (permalink / raw) To: vitaly.prosyak Cc: igt-dev, Jani Nikula, Jesse Zhang, Christian König, Alex Deucher Hi vitaly.prosyak, On 2026-06-29 at 23:23:21 -0400, vitaly.prosyak@amd.com wrote: > From: Vitaly Prosyak <vitaly.prosyak@amd.com> > > Implement the vendor-agnostic platform filtering core that provides: > > - Three-tier priority system: > 1. Built-in rules (highest, vendor-specific, requires rebuild) > 2. Config file /etc/igt/platform_skip.conf (no rebuild needed) > 3. Environment variable IGT_PLATFORM_SKIP_CONFIG (runtime) > > - Config file parsing with format: platform:test:subtest:reason > - Environment variable parsing (semicolon-separated entries) > - Wildcard/glob matching for test and subtest names > - igt_platform_require() integration with igt_skip() > - Dump functionality for debugging filter state > > All state is held in struct platform_filter_context (no globals). > Vendor backends are accessed exclusively through platform_filter_ops > callbacks, keeping this code completely vendor-neutral. > > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Jesse Zhang <jesse.zhang@amd.com> > Cc: Christian König <christian.koenig@amd.com> > Cc: Alex Deucher <alexander.deucher@amd.com> > Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> > Reviewed-by: Jesse Zhang <jesse.zhang@amd.com> > Change-Id: I0a6ce532c2ef9913e68c9a23c8b9e642443a367e > --- > lib/igt_platform_filter.c | 499 ++++++++++++++++++++++++++++++++++++++ > lib/meson.build | 1 + > 2 files changed, 500 insertions(+) > create mode 100644 lib/igt_platform_filter.c Compilation breaks on this patch. [6/982] Compiling C object lib/libigt-amdgpu_amd_platform_c.a.p/amdgpu_amd_platform.c.o FAILED: lib/libigt-amdgpu_amd_platform_c.a.p/amdgpu_amd_platform.c.o tform.c.o.d -o lib/libigt-amdgpu_amd_platform_c.a.p/amdgpu_amd_platform.c.o -c ../lib/amdgpu/amd_platform.c ../lib/amdgpu/amd_platform.c:9:3: error: expected identifier or '(' before '/' token 9 | */ | ^ In file included from ../lib/amdgpu/amd_platform.c:11: /usr/include/stdlib.h:98:8: error: unknown type name 'size_t' 98 | extern size_t __ctype_get_mb_cur_max (void) __THROW __wur; | ^~~~~~ /usr/include/stdlib.h:278:36: error: unknown type name 'size_t' 278 | extern int strfromd (char *__dest, size_t __size, const char *__format, | ^~~~~~ /usr/include/stdlib.h:57:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'? 56 | #include <bits/floatn.h> +++ |+#include <stddef.h> 57 | Regards, Kamil [cut] ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak 2026-06-30 3:23 ` [PATCH 2/7] lib: Implement generic platform filtering framework vitaly.prosyak @ 2026-06-30 3:23 ` vitaly.prosyak 2026-07-02 13:42 ` Kamil Konieczny 2026-06-30 3:23 ` [PATCH 4/7] lib: Add platform filter initialization check for automatic filtering vitaly.prosyak ` (8 subsequent siblings) 10 siblings, 1 reply; 20+ messages in thread From: vitaly.prosyak @ 2026-06-30 3:23 UTC (permalink / raw) To: igt-dev Cc: Vitaly Prosyak, Kamil Konieczny, Jani Nikula, Jesse Zhang, Christian König, Alex Deucher From: Vitaly Prosyak <vitaly.prosyak@amd.com> Implement the AMD-specific backend for the generic platform filtering framework, providing: - ASIC identification via amdgpu family_id and chip_rev ranges - ASIC name table mapping (navi10, navi48, arcturus, etc.) - AMD-specific built-in skip rules - amd_platform_filter_init() convenience function for AMD tests This is a pluggable backend accessed through platform_filter_ops callbacks. The core framework has zero AMD-specific knowledge. To add support for another vendor (e.g., Intel): 1. Create lib/i915/intel_platform.c/h 2. Implement platform_filter_ops callbacks 3. Define Intel platform data (platform_id, stepping ranges) 4. Call intel_platform_filter_init() from Intel tests Usage in AMD tests: amd_platform_filter_init(&gpu_info); igt_platform_require(igt_test_name(), "my-subtest"); Example skip via environment variable: export IGT_PLATFORM_SKIP_CONFIG=navi48:amd_basic:*-UMQ:unstable Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Jesse Zhang <jesse.zhang@amd.com> Cc: Christian König <christian.koenig@amd.com> Cc: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> Reviewed-by: Jesse Zhang <jesse.zhang@amd.com> --- lib/amdgpu/amd_platform.c | 318 ++++++++++++++++++++++++++++++++++++++ lib/amdgpu/amd_platform.h | 53 +++++++ lib/meson.build | 1 + 3 files changed, 372 insertions(+) create mode 100644 lib/amdgpu/amd_platform.c create mode 100644 lib/amdgpu/amd_platform.h diff --git a/lib/amdgpu/amd_platform.c b/lib/amdgpu/amd_platform.c new file mode 100644 index 000000000..e52da159f --- /dev/null +++ b/lib/amdgpu/amd_platform.c @@ -0,0 +1,318 @@ +// SPDX-License-Identifier: MIT +// Copyright 2026 Advanced Micro Devices, Inc. +/* + * AMD-specific platform filtering backend + * + * Implements platform_filter_ops callbacks for AMD GPUs, providing + * platform identification and matching logic based on ASIC family/chip. + */ + */ + +#include <stdlib.h> +#include <string.h> +#include <strings.h> + +#include "igt.h" +#include "igt_platform_filter.h" +#include "amd_platform.h" +#include "amdgpu_asic_addr.h" + +/** + * AMD platform data structures + * + * These structures define how AMD ASICs are matched for filtering. + * They use family/chip ranges similar to amd_queue_reset.c + */ + +/* Maximum ASIC family ranges per skip entry */ +#define MAX_ASIC_RANGES 4 + +/** + * struct amd_asic_range - ASIC family range for matching + * + * Similar to struct used in amd_queue_reset.c for defining ASIC ranges. + * Uses definitions from amdgpu_asic_addr.h + */ +struct amd_asic_range { + int family_id; /* FAMILY_NV, FAMILY_GFX1200, etc. */ + int chip_id_min; /* Min chip revision */ + int chip_id_max; /* Max chip revision */ +}; + +/** + * struct amd_platform_data - AMD platform matching data + * + * This is stored in platform_skip_entry->platform_data field. + * Contains array of ASIC ranges to match against. + */ +struct amd_platform_data { + struct amd_asic_range ranges[MAX_ASIC_RANGES]; + int num_ranges; +}; + +/* ASIC name to family/chip mapping table */ +struct asic_info { + const char *name; + int family_id; + int chip_id_min; + int chip_id_max; +}; + +static const struct asic_info asic_table[] = { + /* GFX12 - using ranges from amdgpu_asic_addr.h */ + { "navi48", FAMILY_GFX1200, AMDGPU_GFX1200_RANGE }, + { "navi44", FAMILY_GFX1200, AMDGPU_GFX1200_RANGE }, + + /* GFX11.5 */ + { "gfx1150", FAMILY_GFX1150, AMDGPU_GFX1150_RANGE }, + { "gfx1151", FAMILY_GFX1150, AMDGPU_GFX1151_RANGE }, + { "gfx1152", FAMILY_GFX1150, AMDGPU_GFX1152_RANGE }, + { "gfx1153", FAMILY_GFX1150, AMDGPU_GFX1153_RANGE }, + + /* GFX11 */ + { "gfx1100", FAMILY_GFX1100, AMDGPU_GFX1100_RANGE }, + { "gfx1101", FAMILY_GFX1100, AMDGPU_GFX1101_RANGE }, + { "gfx1102", FAMILY_GFX1100, AMDGPU_GFX1102_RANGE }, + { "gfx1103_r1", FAMILY_GFX1103, AMDGPU_GFX1103_R1_RANGE }, + { "gfx1103_r2", FAMILY_GFX1103, AMDGPU_GFX1103_R2_RANGE }, + { "navi31", FAMILY_GFX1100, AMDGPU_GFX1100_RANGE }, + { "navi32", FAMILY_GFX1100, AMDGPU_GFX1101_RANGE }, + { "navi33", FAMILY_GFX1100, AMDGPU_GFX1102_RANGE }, + + /* GFX10.3 */ + { "sienna_cichlid", FAMILY_NV, AMDGPU_SIENNA_CICHLID_RANGE }, + { "navy_flounder", FAMILY_NV, AMDGPU_NAVY_FLOUNDER_RANGE }, + { "dimgrey_cavefish", FAMILY_NV, AMDGPU_DIMGREY_CAVEFISH_RANGE }, + { "beige_goby", FAMILY_NV, AMDGPU_BEIGE_GOBY_RANGE }, + { "yellow_carp", FAMILY_YC, AMDGPU_YELLOW_CARP_RANGE }, + { "vangogh", FAMILY_VGH, AMDGPU_VANGOGH_RANGE }, + + /* GFX10 */ + { "navi10", FAMILY_NV, AMDGPU_NAVI10_RANGE }, + { "navi12", FAMILY_NV, AMDGPU_NAVI12_RANGE }, + { "navi14", FAMILY_NV, AMDGPU_NAVI14_RANGE }, + { "navi21", FAMILY_NV, AMDGPU_SIENNA_CICHLID_RANGE }, + { "navi22", FAMILY_NV, AMDGPU_NAVY_FLOUNDER_RANGE }, + { "navi23", FAMILY_NV, AMDGPU_DIMGREY_CAVEFISH_RANGE }, + { "navi24", FAMILY_NV, AMDGPU_BEIGE_GOBY_RANGE }, + + /* CDNA */ + { "arcturus", FAMILY_AI, AMDGPU_ARCTURUS_RANGE }, + { "aldebaran", FAMILY_AI, AMDGPU_ALDEBARAN_RANGE }, + + /* GFX9 */ + { "vega10", FAMILY_AI, AMDGPU_VEGA10_RANGE }, + { "vega12", FAMILY_AI, AMDGPU_VEGA12_RANGE }, + { "vega20", FAMILY_AI, AMDGPU_VEGA20_RANGE }, + { "raven", FAMILY_RV, AMDGPU_RAVEN_RANGE }, + { "raven2", FAMILY_RV, AMDGPU_RAVEN2_RANGE }, + { "renoir", FAMILY_RV, AMDGPU_RENOIR_RANGE }, + + /* GFX8 (VI/Polaris) */ + { "polaris10", FAMILY_VI, AMDGPU_POLARIS10_RANGE }, + { "polaris11", FAMILY_VI, AMDGPU_POLARIS11_RANGE }, + { "polaris12", FAMILY_VI, AMDGPU_POLARIS12_RANGE }, + { "fiji", FAMILY_VI, AMDGPU_FIJI_RANGE }, + { "tonga", FAMILY_VI, AMDGPU_TONGA_RANGE }, + { "iceland", FAMILY_VI, AMDGPU_ICELAND_RANGE }, + { "carrizo", FAMILY_CZ, AMDGPU_CARRIZO_RANGE }, + { "stoney", FAMILY_CZ, AMDGPU_STONEY_RANGE }, + + { NULL, 0, 0, 0 } +}; + +/* Helper: Get ASIC info by name (case-insensitive) */ +static const struct asic_info *get_asic_info(const char *name) +{ + const struct asic_info *info; + + if (!name) + return NULL; + + for (info = asic_table; info->name; info++) { + if (strcasecmp(info->name, name) == 0) + return info; + } + return NULL; +} + +/* Helper: Get ASIC name by family/chip */ +static const char *get_asic_name(int family_id, int chip_rev) +{ + const struct asic_info *info; + + for (info = asic_table; info->name; info++) { + if (info->family_id == family_id && + chip_rev >= info->chip_id_min && + chip_rev < info->chip_id_max) + return info->name; + } + return "unknown"; +} + +/* ================================================================ + * AMD PLATFORM FILTER OPS IMPLEMENTATION + * ================================================================ */ + +static const char *amd_get_platform_name(const void *platform_info) +{ + const struct amdgpu_gpu_info *gpu_info = platform_info; + + if (!gpu_info) + return "unknown"; + + return get_asic_name(gpu_info->family_id, gpu_info->chip_rev); +} + +static bool amd_match_platform(const void *platform_info, const void *platform_data) +{ + const struct amdgpu_gpu_info *gpu_info = platform_info; + const struct amd_platform_data *amd_data = platform_data; + int i; + + if (!gpu_info || !amd_data) + return false; + + /* If no ranges specified, match all platforms */ + if (amd_data->num_ranges == 0) + return true; + + /* Check if GPU matches any of the ASIC ranges */ + for (i = 0; i < amd_data->num_ranges && i < MAX_ASIC_RANGES; i++) { + if (amd_data->ranges[i].family_id == gpu_info->family_id) { + int chip_rev = gpu_info->chip_rev; + if (chip_rev >= amd_data->ranges[i].chip_id_min && + chip_rev < amd_data->ranges[i].chip_id_max) { + return true; + } + } + } + + return false; +} + +static bool amd_parse_platform_config(const char *platform_str, void **platform_data_out) +{ + const struct asic_info *info; + struct amd_platform_data *amd_data; + + info = get_asic_info(platform_str); + if (!info) { + igt_warn("Unknown AMD ASIC name: %s\n", platform_str); + return false; + } + + amd_data = malloc(sizeof(*amd_data)); + if (!amd_data) + return false; + + memset(amd_data, 0, sizeof(*amd_data)); + amd_data->ranges[0].family_id = info->family_id; + amd_data->ranges[0].chip_id_min = info->chip_id_min; + amd_data->ranges[0].chip_id_max = info->chip_id_max; + amd_data->num_ranges = 1; + + *platform_data_out = amd_data; + return true; +} + +static void amd_dump_platform_data(const void *platform_data) +{ + const struct amd_platform_data *amd_data = platform_data; + int i; + + if (!amd_data) { + printf("(all platforms)"); + return; + } + + for (i = 0; i < amd_data->num_ranges && i < MAX_ASIC_RANGES; i++) { + if (i > 0) + printf(", "); + printf("{0x%02X, 0x%02X-0x%02X}", + amd_data->ranges[i].family_id, + amd_data->ranges[i].chip_id_min, + amd_data->ranges[i].chip_id_max); + } +} + +/* ================================================================ + * AMD BUILT-IN SKIP RULES + * ================================================================ + * + * These are production skip rules. They are checked FIRST before + * config file or environment variable. + * + * To add a skip rule: + * 1. Define platform data with ASIC ranges + * 2. Add entry to builtin_skip_table[] + * 3. Rebuild IGT + * + * Example formats (uncomment to use): + * + * Single ASIC: + * static struct amd_platform_data navi44_data = { + * .ranges = { {FAMILY_GFX1200, AMDGPU_GFX1200_RANGE} }, + * .num_ranges = 1 + * }; + * { "amd_basic", "*-UMQ", "UMQ not supported on Navi44", &navi44_data }, + * + * Multiple ASICs: + * static struct amd_platform_data navi10_12_14_data = { + * .ranges = { + * {FAMILY_NV, AMDGPU_NAVI10_RANGE}, + * {FAMILY_NV, AMDGPU_NAVI12_RANGE}, + * {FAMILY_NV, AMDGPU_NAVI14_RANGE} + * }, + * .num_ranges = 3 + * }; + * { "amd_userq_abort", "*", "Queue reset unstable", &navi10_12_14_data }, + * + * All platforms (no platform restriction): + * { "test_name", "subtest", "reason", NULL }, + */ + +static const struct platform_skip_entry builtin_skip_table[] = { + /* Add production skip rules here */ + + /* Sentinel */ + {} +}; + +static const struct platform_skip_entry *amd_get_builtin_rules(int *count_out) +{ + int count = 0; + + /* Count entries (stop at sentinel) */ + while (builtin_skip_table[count].test_name || + builtin_skip_table[count].subtest_glob || + builtin_skip_table[count].reason) + count++; + + *count_out = count; + return builtin_skip_table; +} + +/* AMD platform filter operations */ +static const struct platform_filter_ops amd_platform_ops = { + .name = "amd", + .get_platform_name = amd_get_platform_name, + .match_platform = amd_match_platform, + .parse_platform_config = amd_parse_platform_config, + .get_builtin_rules = amd_get_builtin_rules, + .dump_platform_data = amd_dump_platform_data, +}; + +/* ================================================================ + * PUBLIC API + * ================================================================ */ + +const struct platform_filter_ops *amd_platform_get_ops(void) +{ + return &amd_platform_ops; +} + +void amd_platform_filter_init(const struct amdgpu_gpu_info *gpu_info) +{ + igt_platform_filter_init(&amd_platform_ops, gpu_info); +} diff --git a/lib/amdgpu/amd_platform.h b/lib/amdgpu/amd_platform.h new file mode 100644 index 000000000..fd233a053 --- /dev/null +++ b/lib/amdgpu/amd_platform.h @@ -0,0 +1,53 @@ +/* SPDX-License-Identifier: MIT + * Copyright 2026 Advanced Micro Devices, Inc. + */ + +#ifndef AMD_PLATFORM_H +#define AMD_PLATFORM_H + +#include "igt_platform_filter.h" +#include "amd_ip_blocks.h" + +/** + * SECTION: amd_platform + * @short_description: AMD-specific platform filtering backend + * @title: AMD Platform + * @include: amd_platform.h + * + * AMD implementation of platform filtering that plugs into the generic + * IGT platform filter framework. + * + * This backend provides: + * - ASIC identification and matching based on family/chip ranges + * - Built-in skip rules for AMD GPUs + * - Integration with amdgpu_asic_addr.h definitions + * + * Usage in AMD tests: + * igt_fixture() { + * setup_amdgpu_ip_blocks(...); + * amd_platform_filter_init(&gpu_info); + * } + * + * igt_subtest("my-test") { + * // Automatic filtering - no manual call needed! + * test_code(); + * } + */ + +/** + * amd_platform_filter_init - Initialize AMD platform filtering + * @gpu_info: AMDGPU GPU information structure + * + * Convenience wrapper that initializes the generic platform filter + * with AMD-specific operations and GPU info. + */ +void amd_platform_filter_init(const struct amdgpu_gpu_info *gpu_info); + +/** + * amd_platform_get_ops - Get AMD platform filter operations + * + * Returns: AMD platform_filter_ops structure + */ +const struct platform_filter_ops *amd_platform_get_ops(void); + +#endif /* AMD_PLATFORM_H */ diff --git a/lib/meson.build b/lib/meson.build index ba0683995..1318f9a38 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -179,6 +179,7 @@ if libdrm_amdgpu.found() lib_deps += libdrm_amdgpu lib_sources += [ 'amdgpu/amd_memory.c', + 'amdgpu/amd_platform.c', 'amdgpu/amd_command_submission.c', 'amdgpu/amd_compute.c', 'amdgpu/amd_cs_radv.c', -- 2.54.0 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend 2026-06-30 3:23 ` [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend vitaly.prosyak @ 2026-07-02 13:42 ` Kamil Konieczny 2026-07-02 13:48 ` Jani Nikula 0 siblings, 1 reply; 20+ messages in thread From: Kamil Konieczny @ 2026-07-02 13:42 UTC (permalink / raw) To: vitaly.prosyak Cc: igt-dev, Jani Nikula, Jesse Zhang, Christian König, Alex Deucher Hi vitaly.prosyak, On 2026-06-29 at 23:23:22 -0400, vitaly.prosyak@amd.com wrote: > From: Vitaly Prosyak <vitaly.prosyak@amd.com> > > Implement the AMD-specific backend for the generic platform filtering > framework, providing: > > - ASIC identification via amdgpu family_id and chip_rev ranges > - ASIC name table mapping (navi10, navi48, arcturus, etc.) > - AMD-specific built-in skip rules > - amd_platform_filter_init() convenience function for AMD tests > > This is a pluggable backend accessed through platform_filter_ops > callbacks. The core framework has zero AMD-specific knowledge. > > To add support for another vendor (e.g., Intel): > 1. Create lib/i915/intel_platform.c/h > 2. Implement platform_filter_ops callbacks > 3. Define Intel platform data (platform_id, stepping ranges) > 4. Call intel_platform_filter_init() from Intel tests > > Usage in AMD tests: > amd_platform_filter_init(&gpu_info); > igt_platform_require(igt_test_name(), "my-subtest"); > > Example skip via environment variable: > export IGT_PLATFORM_SKIP_CONFIG=navi48:amd_basic:*-UMQ:unstable > > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Jesse Zhang <jesse.zhang@amd.com> > Cc: Christian König <christian.koenig@amd.com> > Cc: Alex Deucher <alexander.deucher@amd.com> > Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> > Reviewed-by: Jesse Zhang <jesse.zhang@amd.com> > --- > lib/amdgpu/amd_platform.c | 318 ++++++++++++++++++++++++++++++++++++++ > lib/amdgpu/amd_platform.h | 53 +++++++ > lib/meson.build | 1 + > 3 files changed, 372 insertions(+) > create mode 100644 lib/amdgpu/amd_platform.c > create mode 100644 lib/amdgpu/amd_platform.h Please make sure that you patch series compile patch after patch, so it will not break bisecting. For example run: git rebase origin -x ./compile.sh with script which will remove build folder before each build. Regards, Kamil > > diff --git a/lib/amdgpu/amd_platform.c b/lib/amdgpu/amd_platform.c > new file mode 100644 > index 000000000..e52da159f > --- /dev/null > +++ b/lib/amdgpu/amd_platform.c > @@ -0,0 +1,318 @@ > +// SPDX-License-Identifier: MIT > +// Copyright 2026 Advanced Micro Devices, Inc. > +/* > + * AMD-specific platform filtering backend > + * > + * Implements platform_filter_ops callbacks for AMD GPUs, providing > + * platform identification and matching logic based on ASIC family/chip. > + */ > + */ > + > +#include <stdlib.h> > +#include <string.h> > +#include <strings.h> > + > +#include "igt.h" > +#include "igt_platform_filter.h" > +#include "amd_platform.h" > +#include "amdgpu_asic_addr.h" > + > +/** > + * AMD platform data structures > + * > + * These structures define how AMD ASICs are matched for filtering. > + * They use family/chip ranges similar to amd_queue_reset.c > + */ > + > +/* Maximum ASIC family ranges per skip entry */ > +#define MAX_ASIC_RANGES 4 > + > +/** > + * struct amd_asic_range - ASIC family range for matching > + * > + * Similar to struct used in amd_queue_reset.c for defining ASIC ranges. > + * Uses definitions from amdgpu_asic_addr.h > + */ > +struct amd_asic_range { > + int family_id; /* FAMILY_NV, FAMILY_GFX1200, etc. */ > + int chip_id_min; /* Min chip revision */ > + int chip_id_max; /* Max chip revision */ > +}; > + > +/** > + * struct amd_platform_data - AMD platform matching data > + * > + * This is stored in platform_skip_entry->platform_data field. > + * Contains array of ASIC ranges to match against. > + */ > +struct amd_platform_data { > + struct amd_asic_range ranges[MAX_ASIC_RANGES]; > + int num_ranges; > +}; > + > +/* ASIC name to family/chip mapping table */ > +struct asic_info { > + const char *name; > + int family_id; > + int chip_id_min; > + int chip_id_max; > +}; > + > +static const struct asic_info asic_table[] = { > + /* GFX12 - using ranges from amdgpu_asic_addr.h */ > + { "navi48", FAMILY_GFX1200, AMDGPU_GFX1200_RANGE }, > + { "navi44", FAMILY_GFX1200, AMDGPU_GFX1200_RANGE }, > + > + /* GFX11.5 */ > + { "gfx1150", FAMILY_GFX1150, AMDGPU_GFX1150_RANGE }, > + { "gfx1151", FAMILY_GFX1150, AMDGPU_GFX1151_RANGE }, > + { "gfx1152", FAMILY_GFX1150, AMDGPU_GFX1152_RANGE }, > + { "gfx1153", FAMILY_GFX1150, AMDGPU_GFX1153_RANGE }, > + > + /* GFX11 */ > + { "gfx1100", FAMILY_GFX1100, AMDGPU_GFX1100_RANGE }, > + { "gfx1101", FAMILY_GFX1100, AMDGPU_GFX1101_RANGE }, > + { "gfx1102", FAMILY_GFX1100, AMDGPU_GFX1102_RANGE }, > + { "gfx1103_r1", FAMILY_GFX1103, AMDGPU_GFX1103_R1_RANGE }, > + { "gfx1103_r2", FAMILY_GFX1103, AMDGPU_GFX1103_R2_RANGE }, > + { "navi31", FAMILY_GFX1100, AMDGPU_GFX1100_RANGE }, > + { "navi32", FAMILY_GFX1100, AMDGPU_GFX1101_RANGE }, > + { "navi33", FAMILY_GFX1100, AMDGPU_GFX1102_RANGE }, > + > + /* GFX10.3 */ > + { "sienna_cichlid", FAMILY_NV, AMDGPU_SIENNA_CICHLID_RANGE }, > + { "navy_flounder", FAMILY_NV, AMDGPU_NAVY_FLOUNDER_RANGE }, > + { "dimgrey_cavefish", FAMILY_NV, AMDGPU_DIMGREY_CAVEFISH_RANGE }, > + { "beige_goby", FAMILY_NV, AMDGPU_BEIGE_GOBY_RANGE }, > + { "yellow_carp", FAMILY_YC, AMDGPU_YELLOW_CARP_RANGE }, > + { "vangogh", FAMILY_VGH, AMDGPU_VANGOGH_RANGE }, > + > + /* GFX10 */ > + { "navi10", FAMILY_NV, AMDGPU_NAVI10_RANGE }, > + { "navi12", FAMILY_NV, AMDGPU_NAVI12_RANGE }, > + { "navi14", FAMILY_NV, AMDGPU_NAVI14_RANGE }, > + { "navi21", FAMILY_NV, AMDGPU_SIENNA_CICHLID_RANGE }, > + { "navi22", FAMILY_NV, AMDGPU_NAVY_FLOUNDER_RANGE }, > + { "navi23", FAMILY_NV, AMDGPU_DIMGREY_CAVEFISH_RANGE }, > + { "navi24", FAMILY_NV, AMDGPU_BEIGE_GOBY_RANGE }, > + > + /* CDNA */ > + { "arcturus", FAMILY_AI, AMDGPU_ARCTURUS_RANGE }, > + { "aldebaran", FAMILY_AI, AMDGPU_ALDEBARAN_RANGE }, > + > + /* GFX9 */ > + { "vega10", FAMILY_AI, AMDGPU_VEGA10_RANGE }, > + { "vega12", FAMILY_AI, AMDGPU_VEGA12_RANGE }, > + { "vega20", FAMILY_AI, AMDGPU_VEGA20_RANGE }, > + { "raven", FAMILY_RV, AMDGPU_RAVEN_RANGE }, > + { "raven2", FAMILY_RV, AMDGPU_RAVEN2_RANGE }, > + { "renoir", FAMILY_RV, AMDGPU_RENOIR_RANGE }, > + > + /* GFX8 (VI/Polaris) */ > + { "polaris10", FAMILY_VI, AMDGPU_POLARIS10_RANGE }, > + { "polaris11", FAMILY_VI, AMDGPU_POLARIS11_RANGE }, > + { "polaris12", FAMILY_VI, AMDGPU_POLARIS12_RANGE }, > + { "fiji", FAMILY_VI, AMDGPU_FIJI_RANGE }, > + { "tonga", FAMILY_VI, AMDGPU_TONGA_RANGE }, > + { "iceland", FAMILY_VI, AMDGPU_ICELAND_RANGE }, > + { "carrizo", FAMILY_CZ, AMDGPU_CARRIZO_RANGE }, > + { "stoney", FAMILY_CZ, AMDGPU_STONEY_RANGE }, > + > + { NULL, 0, 0, 0 } > +}; > + > +/* Helper: Get ASIC info by name (case-insensitive) */ > +static const struct asic_info *get_asic_info(const char *name) > +{ > + const struct asic_info *info; > + > + if (!name) > + return NULL; > + > + for (info = asic_table; info->name; info++) { > + if (strcasecmp(info->name, name) == 0) > + return info; > + } > + return NULL; > +} > + > +/* Helper: Get ASIC name by family/chip */ > +static const char *get_asic_name(int family_id, int chip_rev) > +{ > + const struct asic_info *info; > + > + for (info = asic_table; info->name; info++) { > + if (info->family_id == family_id && > + chip_rev >= info->chip_id_min && > + chip_rev < info->chip_id_max) > + return info->name; > + } > + return "unknown"; > +} > + > +/* ================================================================ > + * AMD PLATFORM FILTER OPS IMPLEMENTATION > + * ================================================================ */ > + > +static const char *amd_get_platform_name(const void *platform_info) > +{ > + const struct amdgpu_gpu_info *gpu_info = platform_info; > + > + if (!gpu_info) > + return "unknown"; > + > + return get_asic_name(gpu_info->family_id, gpu_info->chip_rev); > +} > + > +static bool amd_match_platform(const void *platform_info, const void *platform_data) > +{ > + const struct amdgpu_gpu_info *gpu_info = platform_info; > + const struct amd_platform_data *amd_data = platform_data; > + int i; > + > + if (!gpu_info || !amd_data) > + return false; > + > + /* If no ranges specified, match all platforms */ > + if (amd_data->num_ranges == 0) > + return true; > + > + /* Check if GPU matches any of the ASIC ranges */ > + for (i = 0; i < amd_data->num_ranges && i < MAX_ASIC_RANGES; i++) { > + if (amd_data->ranges[i].family_id == gpu_info->family_id) { > + int chip_rev = gpu_info->chip_rev; > + if (chip_rev >= amd_data->ranges[i].chip_id_min && > + chip_rev < amd_data->ranges[i].chip_id_max) { > + return true; > + } > + } > + } > + > + return false; > +} > + > +static bool amd_parse_platform_config(const char *platform_str, void **platform_data_out) > +{ > + const struct asic_info *info; > + struct amd_platform_data *amd_data; > + > + info = get_asic_info(platform_str); > + if (!info) { > + igt_warn("Unknown AMD ASIC name: %s\n", platform_str); > + return false; > + } > + > + amd_data = malloc(sizeof(*amd_data)); > + if (!amd_data) > + return false; > + > + memset(amd_data, 0, sizeof(*amd_data)); > + amd_data->ranges[0].family_id = info->family_id; > + amd_data->ranges[0].chip_id_min = info->chip_id_min; > + amd_data->ranges[0].chip_id_max = info->chip_id_max; > + amd_data->num_ranges = 1; > + > + *platform_data_out = amd_data; > + return true; > +} > + > +static void amd_dump_platform_data(const void *platform_data) > +{ > + const struct amd_platform_data *amd_data = platform_data; > + int i; > + > + if (!amd_data) { > + printf("(all platforms)"); > + return; > + } > + > + for (i = 0; i < amd_data->num_ranges && i < MAX_ASIC_RANGES; i++) { > + if (i > 0) > + printf(", "); > + printf("{0x%02X, 0x%02X-0x%02X}", > + amd_data->ranges[i].family_id, > + amd_data->ranges[i].chip_id_min, > + amd_data->ranges[i].chip_id_max); > + } > +} > + > +/* ================================================================ > + * AMD BUILT-IN SKIP RULES > + * ================================================================ > + * > + * These are production skip rules. They are checked FIRST before > + * config file or environment variable. > + * > + * To add a skip rule: > + * 1. Define platform data with ASIC ranges > + * 2. Add entry to builtin_skip_table[] > + * 3. Rebuild IGT > + * > + * Example formats (uncomment to use): > + * > + * Single ASIC: > + * static struct amd_platform_data navi44_data = { > + * .ranges = { {FAMILY_GFX1200, AMDGPU_GFX1200_RANGE} }, > + * .num_ranges = 1 > + * }; > + * { "amd_basic", "*-UMQ", "UMQ not supported on Navi44", &navi44_data }, > + * > + * Multiple ASICs: > + * static struct amd_platform_data navi10_12_14_data = { > + * .ranges = { > + * {FAMILY_NV, AMDGPU_NAVI10_RANGE}, > + * {FAMILY_NV, AMDGPU_NAVI12_RANGE}, > + * {FAMILY_NV, AMDGPU_NAVI14_RANGE} > + * }, > + * .num_ranges = 3 > + * }; > + * { "amd_userq_abort", "*", "Queue reset unstable", &navi10_12_14_data }, > + * > + * All platforms (no platform restriction): > + * { "test_name", "subtest", "reason", NULL }, > + */ > + > +static const struct platform_skip_entry builtin_skip_table[] = { > + /* Add production skip rules here */ > + > + /* Sentinel */ > + {} > +}; > + > +static const struct platform_skip_entry *amd_get_builtin_rules(int *count_out) > +{ > + int count = 0; > + > + /* Count entries (stop at sentinel) */ > + while (builtin_skip_table[count].test_name || > + builtin_skip_table[count].subtest_glob || > + builtin_skip_table[count].reason) > + count++; > + > + *count_out = count; > + return builtin_skip_table; > +} > + > +/* AMD platform filter operations */ > +static const struct platform_filter_ops amd_platform_ops = { > + .name = "amd", > + .get_platform_name = amd_get_platform_name, > + .match_platform = amd_match_platform, > + .parse_platform_config = amd_parse_platform_config, > + .get_builtin_rules = amd_get_builtin_rules, > + .dump_platform_data = amd_dump_platform_data, > +}; > + > +/* ================================================================ > + * PUBLIC API > + * ================================================================ */ > + > +const struct platform_filter_ops *amd_platform_get_ops(void) > +{ > + return &amd_platform_ops; > +} > + > +void amd_platform_filter_init(const struct amdgpu_gpu_info *gpu_info) > +{ > + igt_platform_filter_init(&amd_platform_ops, gpu_info); > +} > diff --git a/lib/amdgpu/amd_platform.h b/lib/amdgpu/amd_platform.h > new file mode 100644 > index 000000000..fd233a053 > --- /dev/null > +++ b/lib/amdgpu/amd_platform.h > @@ -0,0 +1,53 @@ > +/* SPDX-License-Identifier: MIT > + * Copyright 2026 Advanced Micro Devices, Inc. > + */ > + > +#ifndef AMD_PLATFORM_H > +#define AMD_PLATFORM_H > + > +#include "igt_platform_filter.h" > +#include "amd_ip_blocks.h" > + > +/** > + * SECTION: amd_platform > + * @short_description: AMD-specific platform filtering backend > + * @title: AMD Platform > + * @include: amd_platform.h > + * > + * AMD implementation of platform filtering that plugs into the generic > + * IGT platform filter framework. > + * > + * This backend provides: > + * - ASIC identification and matching based on family/chip ranges > + * - Built-in skip rules for AMD GPUs > + * - Integration with amdgpu_asic_addr.h definitions > + * > + * Usage in AMD tests: > + * igt_fixture() { > + * setup_amdgpu_ip_blocks(...); > + * amd_platform_filter_init(&gpu_info); > + * } > + * > + * igt_subtest("my-test") { > + * // Automatic filtering - no manual call needed! > + * test_code(); > + * } > + */ > + > +/** > + * amd_platform_filter_init - Initialize AMD platform filtering > + * @gpu_info: AMDGPU GPU information structure > + * > + * Convenience wrapper that initializes the generic platform filter > + * with AMD-specific operations and GPU info. > + */ > +void amd_platform_filter_init(const struct amdgpu_gpu_info *gpu_info); > + > +/** > + * amd_platform_get_ops - Get AMD platform filter operations > + * > + * Returns: AMD platform_filter_ops structure > + */ > +const struct platform_filter_ops *amd_platform_get_ops(void); > + > +#endif /* AMD_PLATFORM_H */ > diff --git a/lib/meson.build b/lib/meson.build > index ba0683995..1318f9a38 100644 > --- a/lib/meson.build > +++ b/lib/meson.build > @@ -179,6 +179,7 @@ if libdrm_amdgpu.found() > lib_deps += libdrm_amdgpu > lib_sources += [ > 'amdgpu/amd_memory.c', > + 'amdgpu/amd_platform.c', > 'amdgpu/amd_command_submission.c', > 'amdgpu/amd_compute.c', > 'amdgpu/amd_cs_radv.c', > -- > 2.54.0 > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend 2026-07-02 13:42 ` Kamil Konieczny @ 2026-07-02 13:48 ` Jani Nikula 2026-07-06 13:46 ` Kamil Konieczny 0 siblings, 1 reply; 20+ messages in thread From: Jani Nikula @ 2026-07-02 13:48 UTC (permalink / raw) To: Kamil Konieczny, vitaly.prosyak Cc: igt-dev, Jesse Zhang, Christian König, Alex Deucher On Thu, 02 Jul 2026, Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote: > Hi vitaly.prosyak, > On 2026-06-29 at 23:23:22 -0400, vitaly.prosyak@amd.com wrote: >> From: Vitaly Prosyak <vitaly.prosyak@amd.com> >> >> Implement the AMD-specific backend for the generic platform filtering >> framework, providing: >> >> - ASIC identification via amdgpu family_id and chip_rev ranges >> - ASIC name table mapping (navi10, navi48, arcturus, etc.) >> - AMD-specific built-in skip rules >> - amd_platform_filter_init() convenience function for AMD tests >> >> This is a pluggable backend accessed through platform_filter_ops >> callbacks. The core framework has zero AMD-specific knowledge. >> >> To add support for another vendor (e.g., Intel): >> 1. Create lib/i915/intel_platform.c/h >> 2. Implement platform_filter_ops callbacks >> 3. Define Intel platform data (platform_id, stepping ranges) >> 4. Call intel_platform_filter_init() from Intel tests >> >> Usage in AMD tests: >> amd_platform_filter_init(&gpu_info); >> igt_platform_require(igt_test_name(), "my-subtest"); >> >> Example skip via environment variable: >> export IGT_PLATFORM_SKIP_CONFIG=navi48:amd_basic:*-UMQ:unstable >> >> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> >> Cc: Jani Nikula <jani.nikula@linux.intel.com> >> Cc: Jesse Zhang <jesse.zhang@amd.com> >> Cc: Christian König <christian.koenig@amd.com> >> Cc: Alex Deucher <alexander.deucher@amd.com> >> Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> >> Reviewed-by: Jesse Zhang <jesse.zhang@amd.com> >> --- >> lib/amdgpu/amd_platform.c | 318 ++++++++++++++++++++++++++++++++++++++ >> lib/amdgpu/amd_platform.h | 53 +++++++ >> lib/meson.build | 1 + >> 3 files changed, 372 insertions(+) >> create mode 100644 lib/amdgpu/amd_platform.c >> create mode 100644 lib/amdgpu/amd_platform.h > > Please make sure that you patch series compile patch after patch, > so it will not break bisecting. For example run: > > git rebase origin -x ./compile.sh > > with script which will remove build folder before each build. Why should the build folder be removed? Is there reason to believe dependency tracking and incremental builds are failing? I only ever do git rebase -i origin -x 'ninja -C build'. BR, Jani. -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend 2026-07-02 13:48 ` Jani Nikula @ 2026-07-06 13:46 ` Kamil Konieczny 0 siblings, 0 replies; 20+ messages in thread From: Kamil Konieczny @ 2026-07-06 13:46 UTC (permalink / raw) To: Jani Nikula Cc: vitaly.prosyak, igt-dev, Jesse Zhang, Christian König, Alex Deucher Hi Jani, On 2026-07-02 at 16:48:10 +0300, Jani Nikula wrote: > On Thu, 02 Jul 2026, Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote: > > Hi vitaly.prosyak, > > On 2026-06-29 at 23:23:22 -0400, vitaly.prosyak@amd.com wrote: > >> From: Vitaly Prosyak <vitaly.prosyak@amd.com> > >> > >> Implement the AMD-specific backend for the generic platform filtering > >> framework, providing: > >> > >> - ASIC identification via amdgpu family_id and chip_rev ranges > >> - ASIC name table mapping (navi10, navi48, arcturus, etc.) > >> - AMD-specific built-in skip rules > >> - amd_platform_filter_init() convenience function for AMD tests > >> > >> This is a pluggable backend accessed through platform_filter_ops > >> callbacks. The core framework has zero AMD-specific knowledge. > >> > >> To add support for another vendor (e.g., Intel): > >> 1. Create lib/i915/intel_platform.c/h > >> 2. Implement platform_filter_ops callbacks > >> 3. Define Intel platform data (platform_id, stepping ranges) > >> 4. Call intel_platform_filter_init() from Intel tests > >> > >> Usage in AMD tests: > >> amd_platform_filter_init(&gpu_info); > >> igt_platform_require(igt_test_name(), "my-subtest"); > >> > >> Example skip via environment variable: > >> export IGT_PLATFORM_SKIP_CONFIG=navi48:amd_basic:*-UMQ:unstable > >> > >> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > >> Cc: Jani Nikula <jani.nikula@linux.intel.com> > >> Cc: Jesse Zhang <jesse.zhang@amd.com> > >> Cc: Christian König <christian.koenig@amd.com> > >> Cc: Alex Deucher <alexander.deucher@amd.com> > >> Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> > >> Reviewed-by: Jesse Zhang <jesse.zhang@amd.com> > >> --- > >> lib/amdgpu/amd_platform.c | 318 ++++++++++++++++++++++++++++++++++++++ > >> lib/amdgpu/amd_platform.h | 53 +++++++ > >> lib/meson.build | 1 + > >> 3 files changed, 372 insertions(+) > >> create mode 100644 lib/amdgpu/amd_platform.c > >> create mode 100644 lib/amdgpu/amd_platform.h > > > > Please make sure that you patch series compile patch after patch, > > so it will not break bisecting. For example run: > > > > git rebase origin -x ./compile.sh > > > > with script which will remove build folder before each build. > > Why should the build folder be removed? Is there reason to believe > dependency tracking and incremental builds are failing? In few cases when there are new files/folders, or they are removed, incremental build fails. Then removing builds helps. But you have a point, maybe I should make it two-step, remove only after a fail and retry to make sure it is a real fail. Regards, Kamil > > I only ever do git rebase -i origin -x 'ninja -C build'. > > BR, > Jani. > > > -- > Jani Nikula, Intel ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 4/7] lib: Add platform filter initialization check for automatic filtering 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak 2026-06-30 3:23 ` [PATCH 2/7] lib: Implement generic platform filtering framework vitaly.prosyak 2026-06-30 3:23 ` [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend vitaly.prosyak @ 2026-06-30 3:23 ` vitaly.prosyak 2026-06-30 3:23 ` [PATCH 5/7] lib/igt_core: Enable automatic platform filtering in subtest execution vitaly.prosyak ` (7 subsequent siblings) 10 siblings, 0 replies; 20+ messages in thread From: vitaly.prosyak @ 2026-06-30 3:23 UTC (permalink / raw) To: igt-dev; +Cc: Vitaly Prosyak From: Vitaly Prosyak <vitaly.prosyak@amd.com> Add igt_platform_filter_is_initialized() to allow the IGT framework to check if platform filtering has been initialized. This enables automatic platform filtering in __igt_run_subtest() without requiring manual igt_platform_require() calls in each subtest. The function provides a clean interface to check initialization state without exposing internal implementation details. Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> --- lib/amdgpu/amd_platform.c | 1 - lib/igt_platform_filter.c | 13 +++++++++++++ lib/igt_platform_filter.h | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/amdgpu/amd_platform.c b/lib/amdgpu/amd_platform.c index e52da159f..2a1c92acb 100644 --- a/lib/amdgpu/amd_platform.c +++ b/lib/amdgpu/amd_platform.c @@ -6,7 +6,6 @@ * Implements platform_filter_ops callbacks for AMD GPUs, providing * platform identification and matching logic based on ASIC family/chip. */ - */ #include <stdlib.h> #include <string.h> diff --git a/lib/igt_platform_filter.c b/lib/igt_platform_filter.c index 4ae0d6df9..52bf6054e 100644 --- a/lib/igt_platform_filter.c +++ b/lib/igt_platform_filter.c @@ -497,3 +497,16 @@ int igt_platform_filter_dump_to_file(const char *filename) igt_info("Platform filter configuration dumped to: %s\n", filename); return 0; } + +/** + * igt_platform_filter_is_initialized: + * + * Check if platform filtering has been initialized. + * + * Returns: true if initialized, false otherwise + */ +bool igt_platform_filter_is_initialized(void) +{ + struct platform_filter_context *ctx = get_filter_context(); + return ctx && ctx->initialized; +} diff --git a/lib/igt_platform_filter.h b/lib/igt_platform_filter.h index e532c6de7..853da75ae 100644 --- a/lib/igt_platform_filter.h +++ b/lib/igt_platform_filter.h @@ -120,4 +120,6 @@ void igt_platform_filter_dump(void); int igt_platform_filter_dump_to_file(const char *filename); +bool igt_platform_filter_is_initialized(void); + #endif /* IGT_PLATFORM_FILTER_H */ -- 2.54.0 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 5/7] lib/igt_core: Enable automatic platform filtering in subtest execution 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak ` (2 preceding siblings ...) 2026-06-30 3:23 ` [PATCH 4/7] lib: Add platform filter initialization check for automatic filtering vitaly.prosyak @ 2026-06-30 3:23 ` vitaly.prosyak 2026-06-30 3:23 ` [PATCH 6/7] docs: Add comprehensive platform filtering documentation vitaly.prosyak ` (6 subsequent siblings) 10 siblings, 0 replies; 20+ messages in thread From: vitaly.prosyak @ 2026-06-30 3:23 UTC (permalink / raw) To: igt-dev; +Cc: Vitaly Prosyak From: Vitaly Prosyak <vitaly.prosyak@amd.com> Integrate platform filtering into the IGT framework by adding automatic checks in __igt_run_subtest() before each subtest executes. How automatic filtering works: - If platform filtering initialized (via vendor platform_filter_init), automatically check each subtest before execution - If subtest matches skip rule, print SKIP with reason and source - If not initialized, behave as before (backward compatible) This eliminates the need for manual igt_platform_require() calls in every subtest. Tests only need to call platform_filter_init() once in igt_fixture() to enable automatic filtering for all subtests. Skip messages show the filtering source for debugging: Platform filtering (config): SWDEV-12345 - Known issue Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> --- lib/igt_core.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/igt_core.c b/lib/igt_core.c index a7c097d9e..d2a6d79f5 100644 --- a/lib/igt_core.c +++ b/lib/igt_core.c @@ -80,6 +80,7 @@ #include "igt_rc.h" #include "igt_list.h" #include "igt_map.h" +#include "igt_platform_filter.h" #include "igt_device_scan.h" #include "igt_thread.h" #include "igt_vec.h" @@ -1580,6 +1581,23 @@ bool __igt_run_subtest(const char *subtest_name, const char *file, const int lin return false; } + + /* Automatic platform filtering - if initialized, check if subtest should be skipped */ + if (igt_platform_filter_is_initialized()) { + enum skip_source source; + const char *reason; + + if (igt_platform_should_skip(igt_test_name(), subtest_name, + &source, &reason)) { + _subtest_result_message(_SUBTEST_TYPE_NORMAL, subtest_name, + "SKIP", 0.0); + igt_info("Platform filtering (%s): %s\n", + source == SKIP_SOURCE_BUILTIN ? "built-in" : + source == SKIP_SOURCE_CONFIG ? "config" : "env", + reason); + return false; + } + } igt_kmsg(KMSG_INFO "%s: starting subtest %s\n", command_str, subtest_name); igt_trace("%s: starting subtest %s\n", command_str, subtest_name); -- 2.54.0 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 6/7] docs: Add comprehensive platform filtering documentation 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak ` (3 preceding siblings ...) 2026-06-30 3:23 ` [PATCH 5/7] lib/igt_core: Enable automatic platform filtering in subtest execution vitaly.prosyak @ 2026-06-30 3:23 ` vitaly.prosyak 2026-07-02 8:26 ` Krzysztof Karas 2026-06-30 3:23 ` [PATCH 7/7] tests/amdgpu: Integrate platform filtering into amd_basic vitaly.prosyak ` (5 subsequent siblings) 10 siblings, 1 reply; 20+ messages in thread From: vitaly.prosyak @ 2026-06-30 3:23 UTC (permalink / raw) To: igt-dev; +Cc: Vitaly Prosyak From: Vitaly Prosyak <vitaly.prosyak@amd.com> Add complete platform filtering usage guide demonstrating all three filtering methods with emphasis on config file approach as recommended by Kamil. Documentation includes: - Automatic filtering explanation (no manual calls needed) - Config file examples (RECOMMENDED for large test lists) - Environment variable examples (quick testing) - Built-in rules examples (production) - Wildcard patterns and priority system - Real-world examples with ticket references - Best practices for dev/team/CI/production use Addresses Kamil feedback: "Add also example with config file as env vars are not convenient for large tests lists." File location: docs/platform_filtering.md (integrated with MkDocs) Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> --- docs/platform_filtering.md | 320 +++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 321 insertions(+) create mode 100644 docs/platform_filtering.md diff --git a/docs/platform_filtering.md b/docs/platform_filtering.md new file mode 100644 index 000000000..5c64fa49b --- /dev/null +++ b/docs/platform_filtering.md @@ -0,0 +1,320 @@ +# IGT Platform Filtering - Usage Guide + +## Overview + +The IGT platform filtering framework allows tests to be skipped based on +platform characteristics without modifying test source code. + +**Key Feature**: **Automatic Filtering** - No manual calls needed in subtests! + +Tests only need to initialize platform filtering once in `igt_fixture`, +and the IGT framework automatically checks each subtest before execution. + +## Quick Start + +### 1. Initialize in Test (One Time) + +```c +#include "lib/amdgpu/amd_platform.h" + +int igt_main(void) +{ + struct amdgpu_gpu_info gpu_info; + + igt_fixture { + fd = drm_open_driver(DRIVER_AMDGPU); + amdgpu_query_gpu_info(device, &gpu_info); + + /* Initialize platform filtering - enables automatic filtering */ + amd_platform_filter_init(&gpu_info); + } + + igt_subtest("my-test") { + /* No manual filtering call needed - automatic! */ + test_code(); + } +} +``` + +### 2. Configure Filtering Rules + +Use one of three methods (checked in priority order): + +1. **Built-in rules** (highest priority) - Compiled into test +2. **Config file** (recommended) - `/etc/igt/platform_skip.conf` +3. **Environment variable** (lowest priority) - `IGT_PLATFORM_SKIP_CONFIG` + +--- + +## Method 1: Config File (RECOMMENDED) + +**Best for**: Large test lists, team-wide configuration, CI/CD + +**Location**: `/etc/igt/platform_skip.conf` + +**Format**: `platform:test:subtest:reason` + +### Example Config File + +```bash +cat > /etc/igt/platform_skip.conf << 'EOF' +# Platform filtering configuration +# Format: platform:test:subtest:reason +# Use * as wildcard + +# Skip all UMQ tests on Navi48 during platform bringup +navi48:amd_basic:*-UMQ:SWDEV-88888 - UMQ stabilization in progress + +# Skip specific tests with ticket references +navi31:amd_basic:cs-gfx-with-IP-GFX-UMQ:SWDEV-12345 +navi31:amd_basic:cs-compute-with-IP-COMPUTE-UMQ:SWDEV-12345 +navi31:amd_basic:cs-sdma-with-IP-DMA-UMQ:SWDEV-12346 + +# Skip tests on early samples +strix_halo:amd_basic:*:Platform not ready - ES samples + +# Skip known flaky test across all platforms +*:amd_basic:eviction-test-with-IP-DMA:SWDEV-99999 - Intermittent failure + +# Skip entire test binary on specific platform +navi10:amd_vcn:*:VCN encoding issues on Navi10 A0 + +# Skip all tests on discontinued platform +vega10:*:*:Platform no longer supported +EOF +``` + +### Run Tests + +```bash +# Config file is loaded automatically - no environment variable needed +./build/tests/amdgpu/amd_basic + +# Output shows: +# Subtest cs-gfx-with-IP-GFX-UMQ: SKIP +# Platform filtering (config): SWDEV-12345 +``` + +### Advantages + +✅ Persistent across sessions +✅ Easy to manage many rules (add/remove/edit) +✅ Team-wide configuration +✅ CI/CD friendly +✅ No rebuild required +✅ No environment variables to remember + +--- + +## Method 2: Environment Variable + +**Best for**: Quick testing, temporary overrides, single test skip + +**Variable**: `IGT_PLATFORM_SKIP_CONFIG` + +**Format**: Same as config file, semicolon-separated + +### Example - Skip Single Test + +```bash +export IGT_PLATFORM_SKIP_CONFIG="navi48:amd_basic:cs-compute-with-IP-COMPUTE-UMQ:Testing" +./build/tests/amdgpu/amd_basic +``` + +### Example - Skip Multiple Tests + +```bash +export IGT_PLATFORM_SKIP_CONFIG="navi48:amd_basic:*-UMQ:Testing;navi31:amd_basic:cs-gfx-*:Known issue" +./build/tests/amdgpu/amd_basic +``` + +### Disadvantages + +❌ Not persistent (lost when session ends) +❌ Inconvenient for large test lists +❌ Easy to forget it's set +❌ Hard to manage multiple rules + +**Recommendation**: Use config file for managing test exclusions at scale. + +--- + +## Method 3: Built-in Rules + +**Best for**: Permanent production exclusions + +**Location**: Vendor implementation (e.g., `lib/amdgpu/amd_platform.c`) + +### Example + +```c +static const struct platform_skip_entry amd_builtin_rules[] = { + { + .test_name = "amd_security", + .subtest_glob = "secure-bounce", + .reason = "Not supported on APUs", + .platform_data = &apu_platforms, + }, +}; +``` + +### Advantages + +✅ Fast (no file I/O) +✅ Guaranteed to be applied +✅ Version controlled with code + +### Disadvantages + +❌ Requires rebuild to change +❌ Not flexible for temporary exclusions + +--- + +## Wildcard Patterns + +All methods support wildcards (`*`) for flexible matching: + +``` +# Platform wildcards +*:amd_basic:my-test:Reason # All platforms +navi*:amd_basic:my-test:Reason # All Navi (navi10, navi31, navi48, etc.) + +# Test wildcards +navi48:*:my-subtest:Reason # All test binaries +navi48:amd_*:my-subtest:Reason # All AMD tests + +# Subtest wildcards +navi48:amd_basic:*:Reason # All subtests in amd_basic +navi48:amd_basic:*-UMQ:Reason # All UMQ subtests +navi48:amd_basic:cs-*:Reason # All CS tests +``` + +--- + +## Priority System + +When multiple rules could match, first match wins (highest to lowest priority): + +1. **Built-in rules** (compiled into test) +2. **Config file** (`/etc/igt/platform_skip.conf`) +3. **Environment variable** (`IGT_PLATFORM_SKIP_CONFIG`) + +Example: +``` +Built-in: navi48:amd_basic:cs-gfx-*:Production exclusion +Config: navi48:amd_basic:*:Config exclusion +Env: navi48:amd_basic:cs-compute-*:Env exclusion + +Results: +- cs-gfx-with-IP-GFX → Skipped by built-in rule +- cs-compute-with-IP-COMPUTE → Skipped by config file +- cs-sdma-with-IP-DMA → Runs normally +``` + +--- + +## Skip Message Format + +Automatic filtering shows the source in skip messages: + +``` +Subtest cs-gfx-with-IP-GFX-UMQ: SKIP +Platform filtering (config): SWDEV-12345 - UMQ unstable on Navi48 +``` + +Source indicators: +- `(built-in)` - From vendor's compiled rules +- `(config)` - From config file +- `(env)` - From environment variable + +--- + +## Platform Names + +Platform names are vendor-specific. For AMD: + +- `vega10`, `vega20` - Vega family +- `navi10`, `navi14`, `navi21`, `navi22`, `navi23`, `navi24` - RDNA1/2 +- `navi31`, `navi32`, `navi33` - RDNA3 +- `navi48`, `navi44` - RDNA4 +- `strix_halo`, `phoenix` - APUs +- `arcturus` - MI100 +- `aldebaran` - MI210/MI250 + +Use `*` to match all platforms. + +--- + +## Best Practices + +### For Development - Quick Testing + +Use environment variable: +```bash +# Temporarily skip broken test +export IGT_PLATFORM_SKIP_CONFIG="*:amd_basic:broken-test:WIP" +./build/tests/amdgpu/amd_basic +unset IGT_PLATFORM_SKIP_CONFIG +``` + +### For Teams - Shared Exclusions + +Use config file with ticket references: +``` +# /etc/igt/platform_skip.conf +# Updated: 2026-06-29 + +# Navi48 bringup exclusions +navi48:amd_basic:*-UMQ:SWDEV-88888 - UMQ stabilization +navi48:amd_vcn:vcn-encoder-*:SWDEV-88889 - VCN bringup + +# Cross-platform known issues +*:amd_basic:eviction-test-with-IP-DMA:SWDEV-77777 - Flaky +``` + +### For CI/CD + +Deploy config file with test infrastructure: +```bash +#!/bin/bash +# CI pipeline setup +echo "Deploying test exclusions..." +scp ci-skip-rules.conf test-machine:/etc/igt/platform_skip.conf +ssh test-machine "./run-igt-suite.sh" +``` + +### For Production + +Use built-in rules for permanent exclusions: +```c +// In lib/amdgpu/amd_platform.c +static const struct platform_skip_entry amd_builtin_rules[] = { + { + .test_name = "amd_basic", + .subtest_glob = "*-UMQ", + .reason = "User queues not supported in production", + .platform_data = &all_platforms, + }, +}; +``` + +--- + +## Summary + +| Method | Use Case | Persistent | Rebuild Required | +|--------|----------|------------|------------------| +| **Config file** ✅ | Team/CI exclusions | Yes | No | +| **Environment** | Quick testing | No | No | +| **Built-in** | Production rules | Yes | Yes | + +**Recommendation**: Use **config file** for managing test exclusions at scale. + +--- + +## See Also + +- `lib/igt_platform_filter.h` - API documentation +- `lib/igt_platform_filter.c` - Framework implementation +- `lib/amdgpu/amd_platform.c` - AMD backend reference diff --git a/mkdocs.yml b/mkdocs.yml index 0abb76704..6f427b20f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -29,6 +29,7 @@ nav: - How to document tests: 'test_documentation.md' - How to categorize tests: 'test_categories.md' - How to blocklist tests: 'blocklists.md' + - Platform filtering: 'platform_filtering.md' - How to get code coverage: 'code_coverage.md' - How to port new IGT driver: 'new_driver.md' - How to plan a new test: 'test_plan.md' -- 2.54.0 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 6/7] docs: Add comprehensive platform filtering documentation 2026-06-30 3:23 ` [PATCH 6/7] docs: Add comprehensive platform filtering documentation vitaly.prosyak @ 2026-07-02 8:26 ` Krzysztof Karas 0 siblings, 0 replies; 20+ messages in thread From: Krzysztof Karas @ 2026-07-02 8:26 UTC (permalink / raw) To: vitaly.prosyak; +Cc: igt-dev Hi Vitaly, On 2026-06-29 at 23:23:25 -0400, vitaly.prosyak@amd.com wrote: > From: Vitaly Prosyak <vitaly.prosyak@amd.com> > > Add complete platform filtering usage guide demonstrating all three > filtering methods with emphasis on config file approach as recommended > by Kamil. > > Documentation includes: > - Automatic filtering explanation (no manual calls needed) > - Config file examples (RECOMMENDED for large test lists) > - Environment variable examples (quick testing) > - Built-in rules examples (production) > - Wildcard patterns and priority system > - Real-world examples with ticket references > - Best practices for dev/team/CI/production use > > Addresses Kamil feedback: "Add also example with config file as env vars > are not convenient for large tests lists." > > File location: docs/platform_filtering.md (integrated with MkDocs) > > Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> > --- [...] > +### 2. Configure Filtering Rules > + > +Use one of three methods (checked in priority order): > + > +1. **Built-in rules** (highest priority) - Compiled into test > +2. **Config file** (recommended) - `/etc/igt/platform_skip.conf` > +3. **Environment variable** (lowest priority) - `IGT_PLATFORM_SKIP_CONFIG` > + > +--- > + > +## Method 1: Config File (RECOMMENDED) Since built-in holds the highest priority, you could put is first on this list. [...] > +### Run Tests > + > +```bash > +# Config file is loaded automatically - no environment variable needed > +./build/tests/amdgpu/amd_basic > + > +# Output shows: > +# Subtest cs-gfx-with-IP-GFX-UMQ: SKIP > +# Platform filtering (config): SWDEV-12345 > +``` > + > +### Advantages > + > +✅ Persistent across sessions > +✅ Easy to manage many rules (add/remove/edit) > +✅ Team-wide configuration > +✅ CI/CD friendly > +✅ No rebuild required > +✅ No environment variables to remember I think listing Advantages/Disadvantages is misleading. Each of these methods has its intended use case, so you could just put a note about that and let users decide which option is best for them. > + > +--- > + > +## Method 2: Environment Variable > + > +**Best for**: Quick testing, temporary overrides, single test skip > + > +**Variable**: `IGT_PLATFORM_SKIP_CONFIG` > + > +**Format**: Same as config file, semicolon-separated > + > +### Example - Skip Single Test > + > +```bash > +export IGT_PLATFORM_SKIP_CONFIG="navi48:amd_basic:cs-compute-with-IP-COMPUTE-UMQ:Testing" > +./build/tests/amdgpu/amd_basic > +``` > + > +### Example - Skip Multiple Tests > + > +```bash > +export IGT_PLATFORM_SKIP_CONFIG="navi48:amd_basic:*-UMQ:Testing;navi31:amd_basic:cs-gfx-*:Known issue" > +./build/tests/amdgpu/amd_basic > +``` > + > +### Disadvantages > + > +❌ Not persistent (lost when session ends) > +❌ Inconvenient for large test lists > +❌ Easy to forget it's set > +❌ Hard to manage multiple rules Currently, there are no advantages at all listed here, so one may wonder why was this implemented in the first place. As you mentioned at the beginning of this document env variable is supposed to be used for small test lists and quick test runs. [...] > +## Platform Names > + > +Platform names are vendor-specific. For AMD: > + > +- `vega10`, `vega20` - Vega family > +- `navi10`, `navi14`, `navi21`, `navi22`, `navi23`, `navi24` - RDNA1/2 > +- `navi31`, `navi32`, `navi33` - RDNA3 > +- `navi48`, `navi44` - RDNA4 > +- `strix_halo`, `phoenix` - APUs > +- `arcturus` - MI100 > +- `aldebaran` - MI210/MI250 This list is sure to change in the future, either by addition of new platforms or decision to remove unsupported ones, so I wonder if there is much sense in listing all of them for AMD, Intel or any other vendor. [...] > +## Summary > + > +| Method | Use Case | Persistent | Rebuild Required | > +|--------|----------|------------|------------------| > +| **Config file** ✅ | Team/CI exclusions | Yes | No | This ✅ is redundant, since you re-iterate that the file is the recommendation. > +| **Environment** | Quick testing | No | No | > +| **Built-in** | Production rules | Yes | Yes | > + > +**Recommendation**: Use **config file** for managing test exclusions at scale. > + > +--- > + > +## See Also > + > +- `lib/igt_platform_filter.h` - API documentation > +- `lib/igt_platform_filter.c` - Framework implementation > +- `lib/amdgpu/amd_platform.c` - AMD backend reference > diff --git a/mkdocs.yml b/mkdocs.yml > index 0abb76704..6f427b20f 100644 > --- a/mkdocs.yml > +++ b/mkdocs.yml > @@ -29,6 +29,7 @@ nav: > - How to document tests: 'test_documentation.md' > - How to categorize tests: 'test_categories.md' > - How to blocklist tests: 'blocklists.md' > + - Platform filtering: 'platform_filtering.md' You could change the title to match other's in "how to" style: "How to filter platforms" or "How to filter tests per platform". > - How to get code coverage: 'code_coverage.md' > - How to port new IGT driver: 'new_driver.md' > - How to plan a new test: 'test_plan.md' > -- > 2.54.0 > -- Best Regards, Krzysztof ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 7/7] tests/amdgpu: Integrate platform filtering into amd_basic 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak ` (4 preceding siblings ...) 2026-06-30 3:23 ` [PATCH 6/7] docs: Add comprehensive platform filtering documentation vitaly.prosyak @ 2026-06-30 3:23 ` vitaly.prosyak 2026-06-30 4:06 ` ✓ Xe.CI.BAT: success for series starting with [1/7] lib: Add vendor-agnostic platform filtering interface Patchwork ` (4 subsequent siblings) 10 siblings, 0 replies; 20+ messages in thread From: vitaly.prosyak @ 2026-06-30 3:23 UTC (permalink / raw) To: igt-dev; +Cc: Vitaly Prosyak From: Vitaly Prosyak <vitaly.prosyak@amd.com> Add platform filtering initialization to amd_basic test to enable automatic subtest filtering on the navi48 platform. Platform filtering is initialized once in igt_fixture after gpu_info is queried. The IGT framework then automatically checks each subtest before execution - no manual calls needed in subtests. This demonstrates the automatic filtering functionality for validation. Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> Change-Id: Ic80cdc86111976fe6da6513c50e76006c861489a --- tests/amdgpu/amd_basic.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/amdgpu/amd_basic.c b/tests/amdgpu/amd_basic.c index 3ad023472..ef83a53d6 100644 --- a/tests/amdgpu/amd_basic.c +++ b/tests/amdgpu/amd_basic.c @@ -19,6 +19,7 @@ #include "lib/amdgpu/compute_utils/amd_dispatch.h" #include "lib/amdgpu/amdgpu_asic_addr.h" #include "lib/amdgpu/amd_utils.h" +#include "lib/amdgpu/amd_platform.h" #define BUFFER_SIZE (8 * 1024) @@ -883,6 +884,9 @@ int igt_main() igt_assert_eq(r, 0); asic_rings_readness(device, 1, arr_cap); asic_userq_readiness(device, userq_arr_cap); + + /* Initialize platform filtering for automatic subtest filtering */ + amd_platform_filter_init(&gpu_info); } igt_describe("Check-alloc-free-VRAM-visible-non-visible-GART-write-combined-cached"); igt_subtest("memory-alloc") -- 2.54.0 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* ✓ Xe.CI.BAT: success for series starting with [1/7] lib: Add vendor-agnostic platform filtering interface 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak ` (5 preceding siblings ...) 2026-06-30 3:23 ` [PATCH 7/7] tests/amdgpu: Integrate platform filtering into amd_basic vitaly.prosyak @ 2026-06-30 4:06 ` Patchwork 2026-06-30 4:17 ` ✓ i915.CI.BAT: " Patchwork ` (3 subsequent siblings) 10 siblings, 0 replies; 20+ messages in thread From: Patchwork @ 2026-06-30 4:06 UTC (permalink / raw) To: vitaly.prosyak; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 1631 bytes --] == Series Details == Series: series starting with [1/7] lib: Add vendor-agnostic platform filtering interface URL : https://patchwork.freedesktop.org/series/169463/ State : success == Summary == CI Bug Log - changes from XEIGT_8988_BAT -> XEIGTPW_15453_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (12 -> 11) ------------------------------ Missing (1): bat-bmg-2 Known issues ------------ Here are the changes found in XEIGTPW_15453_BAT that come from known issues: ### IGT changes ### #### Possible fixes #### * igt@xe_live_ktest@xe_dma_buf: - bat-bmg-vm: [ABORT][1] ([Intel XE#8007] / [Intel XE#8023]) -> [PASS][2] +1 other test pass [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/bat-bmg-vm/igt@xe_live_ktest@xe_dma_buf.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/bat-bmg-vm/igt@xe_live_ktest@xe_dma_buf.html [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007 [Intel XE#8023]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8023 Build changes ------------- * IGT: IGT_8988 -> IGTPW_15453 * Linux: xe-5304-b9aebfff5a3c5049500a7bd4573815090a425f34 -> xe-5306-03288b34f48c3fe60055353c30da4aacab572cdc IGTPW_15453: 15453 IGT_8988: 8988 xe-5304-b9aebfff5a3c5049500a7bd4573815090a425f34: b9aebfff5a3c5049500a7bd4573815090a425f34 xe-5306-03288b34f48c3fe60055353c30da4aacab572cdc: 03288b34f48c3fe60055353c30da4aacab572cdc == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/index.html [-- Attachment #2: Type: text/html, Size: 2200 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* ✓ i915.CI.BAT: success for series starting with [1/7] lib: Add vendor-agnostic platform filtering interface 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak ` (6 preceding siblings ...) 2026-06-30 4:06 ` ✓ Xe.CI.BAT: success for series starting with [1/7] lib: Add vendor-agnostic platform filtering interface Patchwork @ 2026-06-30 4:17 ` Patchwork 2026-06-30 13:14 ` ✗ i915.CI.Full: failure " Patchwork ` (2 subsequent siblings) 10 siblings, 0 replies; 20+ messages in thread From: Patchwork @ 2026-06-30 4:17 UTC (permalink / raw) To: vitaly.prosyak; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 2455 bytes --] == Series Details == Series: series starting with [1/7] lib: Add vendor-agnostic platform filtering interface URL : https://patchwork.freedesktop.org/series/169463/ State : success == Summary == CI Bug Log - changes from IGT_8988 -> IGTPW_15453 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/index.html Participating hosts (42 -> 40) ------------------------------ Missing (2): bat-dg2-13 fi-snb-2520m Known issues ------------ Here are the changes found in IGTPW_15453 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@dmabuf@all-tests: - fi-kbl-8809g: NOTRUN -> [SKIP][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/fi-kbl-8809g/igt@dmabuf@all-tests.html * igt@gem_lmem_swapping@parallel-random-engines: - fi-kbl-8809g: NOTRUN -> [SKIP][2] ([i915#4613]) +3 other tests skip [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/fi-kbl-8809g/igt@gem_lmem_swapping@parallel-random-engines.html #### Possible fixes #### * igt@core_hotunplug@unbind-rebind: - fi-kbl-8809g: [ABORT][3] -> [PASS][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8988/fi-kbl-8809g/igt@core_hotunplug@unbind-rebind.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/fi-kbl-8809g/igt@core_hotunplug@unbind-rebind.html * igt@i915_pm_rpm@module-reload: - bat-adlp-6: [DMESG-WARN][5] ([i915#15673]) -> [PASS][6] +78 other tests pass [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8988/bat-adlp-6/igt@i915_pm_rpm@module-reload.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/bat-adlp-6/igt@i915_pm_rpm@module-reload.html [i915#15673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15673 [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_8988 -> IGTPW_15453 * Linux: CI_DRM_18724 -> CI_DRM_18726 CI-20190529: 20190529 CI_DRM_18724: b9aebfff5a3c5049500a7bd4573815090a425f34 @ git://anongit.freedesktop.org/gfx-ci/linux CI_DRM_18726: 03288b34f48c3fe60055353c30da4aacab572cdc @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_15453: 15453 IGT_8988: 8988 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/index.html [-- Attachment #2: Type: text/html, Size: 3161 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* ✗ i915.CI.Full: failure for series starting with [1/7] lib: Add vendor-agnostic platform filtering interface 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak ` (7 preceding siblings ...) 2026-06-30 4:17 ` ✓ i915.CI.BAT: " Patchwork @ 2026-06-30 13:14 ` Patchwork 2026-06-30 17:19 ` ✗ Xe.CI.FULL: " Patchwork 2026-07-02 12:23 ` [PATCH 1/7] " Kamil Konieczny 10 siblings, 0 replies; 20+ messages in thread From: Patchwork @ 2026-06-30 13:14 UTC (permalink / raw) To: vitaly.prosyak; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 135795 bytes --] == Series Details == Series: series starting with [1/7] lib: Add vendor-agnostic platform filtering interface URL : https://patchwork.freedesktop.org/series/169463/ State : failure == Summary == CI Bug Log - changes from CI_DRM_18726_full -> IGTPW_15453_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_15453_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_15453_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. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/index.html Participating hosts (10 -> 10) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_15453_full: ### IGT changes ### #### Possible regressions #### * igt@gem_exec_balancer@busy: - shard-mtlp: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-mtlp-3/igt@gem_exec_balancer@busy.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-7/igt@gem_exec_balancer@busy.html * igt@i915_hangman@detector@vcs0: - shard-glk: [PASS][3] -> [INCOMPLETE][4] +1 other test incomplete [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-glk4/igt@i915_hangman@detector@vcs0.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk5/igt@i915_hangman@detector@vcs0.html New tests --------- New tests have been introduced between CI_DRM_18726_full and IGTPW_15453_full: ### New IGT tests (4) ### * igt@kms_cursor_crc@cursor-alpha-transparent@pipe-a-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.53] s * igt@kms_cursor_crc@cursor-alpha-transparent@pipe-c-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.42] s * igt@kms_cursor_crc@cursor-suspend@pipe-c-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [4.57] s * igt@kms_pipe_crc_basic@disable-crc-after-crtc@pipe-b-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [0.93] s Known issues ------------ Here are the changes found in IGTPW_15453_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@api_intel_bb@crc32: - shard-rkl: NOTRUN -> [SKIP][5] ([i915#6230]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@api_intel_bb@crc32.html * igt@device_reset@unbind-cold-reset-rebind: - shard-rkl: NOTRUN -> [SKIP][6] ([i915#11078]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-8/igt@device_reset@unbind-cold-reset-rebind.html * igt@gem_basic@multigpu-create-close: - shard-tglu-1: NOTRUN -> [SKIP][7] ([i915#7697]) +1 other test skip [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@gem_basic@multigpu-create-close.html * igt@gem_caching@reads: - shard-mtlp: NOTRUN -> [SKIP][8] ([i915#4873]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-7/igt@gem_caching@reads.html * igt@gem_ccs@block-multicopy-compressed: - shard-rkl: NOTRUN -> [SKIP][9] ([i915#9323]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@gem_ccs@block-multicopy-compressed.html * igt@gem_ccs@large-ctrl-surf-copy: - shard-rkl: NOTRUN -> [SKIP][10] ([i915#13008]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@gem_ccs@large-ctrl-surf-copy.html * igt@gem_ccs@suspend-resume: - shard-tglu: NOTRUN -> [SKIP][11] ([i915#9323]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-10/igt@gem_ccs@suspend-resume.html * igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0: - shard-dg2: NOTRUN -> [INCOMPLETE][12] ([i915#13356] / [i915#16348]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-1/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-lmem0-lmem0.html * igt@gem_create@create-ext-cpu-access-sanity-check: - shard-rkl: NOTRUN -> [SKIP][13] ([i915#6335]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@gem_create@create-ext-cpu-access-sanity-check.html * igt@gem_ctx_isolation@preservation-s3@rcs0: - shard-glk: NOTRUN -> [INCOMPLETE][14] ([i915#13356] / [i915#16466]) +1 other test incomplete [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk4/igt@gem_ctx_isolation@preservation-s3@rcs0.html * igt@gem_ctx_persistence@engines-hang: - shard-snb: NOTRUN -> [SKIP][15] ([i915#1099]) +1 other test skip [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-snb4/igt@gem_ctx_persistence@engines-hang.html * igt@gem_ctx_persistence@heartbeat-hang: - shard-dg2: NOTRUN -> [SKIP][16] ([i915#8555]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@gem_ctx_persistence@heartbeat-hang.html - shard-mtlp: NOTRUN -> [SKIP][17] ([i915#8555]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-8/igt@gem_ctx_persistence@heartbeat-hang.html * igt@gem_ctx_sseu@engines: - shard-tglu: NOTRUN -> [SKIP][18] ([i915#280]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-7/igt@gem_ctx_sseu@engines.html * igt@gem_ctx_sseu@invalid-args: - shard-rkl: NOTRUN -> [SKIP][19] ([i915#14544] / [i915#280]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_ctx_sseu@invalid-args.html * igt@gem_eio@hibernate: - shard-rkl: [PASS][20] -> [ABORT][21] ([i915#7975]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@gem_eio@hibernate.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@gem_eio@hibernate.html * igt@gem_eio@kms: - shard-rkl: [PASS][22] -> [DMESG-WARN][23] ([i915#13363]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-8/igt@gem_eio@kms.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@gem_eio@kms.html - shard-tglu: [PASS][24] -> [DMESG-WARN][25] ([i915#13363]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-tglu-5/igt@gem_eio@kms.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-9/igt@gem_eio@kms.html * igt@gem_exec_balancer@parallel-contexts: - shard-rkl: NOTRUN -> [SKIP][26] ([i915#4525]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@gem_exec_balancer@parallel-contexts.html * igt@gem_exec_balancer@parallel-keep-submit-fence: - shard-tglu-1: NOTRUN -> [SKIP][27] ([i915#4525]) +1 other test skip [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@gem_exec_balancer@parallel-keep-submit-fence.html * igt@gem_exec_balancer@parallel-out-fence: - shard-tglu: NOTRUN -> [SKIP][28] ([i915#4525]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-8/igt@gem_exec_balancer@parallel-out-fence.html * igt@gem_exec_big@single: - shard-mtlp: [PASS][29] -> [FAIL][30] ([i915#15871]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-mtlp-3/igt@gem_exec_big@single.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-8/igt@gem_exec_big@single.html * igt@gem_exec_capture@capture: - shard-mtlp: NOTRUN -> [FAIL][31] ([i915#11965]) +1 other test fail [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-4/igt@gem_exec_capture@capture.html * igt@gem_exec_capture@capture-invisible: - shard-glk10: NOTRUN -> [SKIP][32] ([i915#6334]) +1 other test skip [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk10/igt@gem_exec_capture@capture-invisible.html * igt@gem_exec_capture@capture@vecs0-lmem0: - shard-dg1: NOTRUN -> [FAIL][33] ([i915#11965]) +2 other tests fail [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-14/igt@gem_exec_capture@capture@vecs0-lmem0.html * igt@gem_exec_flush@basic-wb-ro-before-default: - shard-dg2: NOTRUN -> [SKIP][34] ([i915#3539] / [i915#4852]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-6/igt@gem_exec_flush@basic-wb-ro-before-default.html * igt@gem_exec_reloc@basic-cpu-noreloc: - shard-dg2: NOTRUN -> [SKIP][35] ([i915#3281]) +2 other tests skip [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-7/igt@gem_exec_reloc@basic-cpu-noreloc.html * igt@gem_exec_reloc@basic-gtt-cpu-noreloc: - shard-mtlp: NOTRUN -> [SKIP][36] ([i915#3281]) +2 other tests skip [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-4/igt@gem_exec_reloc@basic-gtt-cpu-noreloc.html * igt@gem_exec_reloc@basic-range-active: - shard-dg1: NOTRUN -> [SKIP][37] ([i915#3281]) +1 other test skip [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-16/igt@gem_exec_reloc@basic-range-active.html * igt@gem_exec_reloc@basic-write-read: - shard-rkl: NOTRUN -> [SKIP][38] ([i915#3281]) +4 other tests skip [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@gem_exec_reloc@basic-write-read.html * igt@gem_exec_suspend@basic-s3: - shard-rkl: NOTRUN -> [INCOMPLETE][39] ([i915#13356]) +1 other test incomplete [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_exec_suspend@basic-s3.html * igt@gem_fenced_exec_thrash@no-spare-fences-interruptible: - shard-dg2: NOTRUN -> [SKIP][40] ([i915#4860]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@gem_fenced_exec_thrash@no-spare-fences-interruptible.html * igt@gem_lmem_swapping@heavy-random: - shard-tglu: NOTRUN -> [SKIP][41] ([i915#4613]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-7/igt@gem_lmem_swapping@heavy-random.html * igt@gem_lmem_swapping@massive: - shard-glk: NOTRUN -> [SKIP][42] ([i915#4613]) +1 other test skip [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk6/igt@gem_lmem_swapping@massive.html * igt@gem_lmem_swapping@massive-random: - shard-rkl: NOTRUN -> [SKIP][43] ([i915#4613]) +3 other tests skip [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@gem_lmem_swapping@massive-random.html * igt@gem_lmem_swapping@parallel-multi: - shard-tglu-1: NOTRUN -> [SKIP][44] ([i915#4613]) +2 other tests skip [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@gem_lmem_swapping@parallel-multi.html * igt@gem_madvise@dontneed-before-pwrite: - shard-rkl: NOTRUN -> [SKIP][45] ([i915#3282]) +2 other tests skip [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@gem_madvise@dontneed-before-pwrite.html * igt@gem_mmap_gtt@basic-short: - shard-mtlp: NOTRUN -> [SKIP][46] ([i915#4077]) +7 other tests skip [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-8/igt@gem_mmap_gtt@basic-short.html * igt@gem_mmap_gtt@cpuset-big-copy-odd: - shard-dg1: NOTRUN -> [SKIP][47] ([i915#4077]) +6 other tests skip [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-12/igt@gem_mmap_gtt@cpuset-big-copy-odd.html * igt@gem_mmap_gtt@medium-copy-odd: - shard-dg2: NOTRUN -> [SKIP][48] ([i915#4077]) +7 other tests skip [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-6/igt@gem_mmap_gtt@medium-copy-odd.html * igt@gem_mmap_wc@bad-object: - shard-dg2: NOTRUN -> [SKIP][49] ([i915#4083]) +1 other test skip [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@gem_mmap_wc@bad-object.html - shard-mtlp: NOTRUN -> [SKIP][50] ([i915#4083]) +1 other test skip [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-7/igt@gem_mmap_wc@bad-object.html * igt@gem_pread@snoop: - shard-dg2: NOTRUN -> [SKIP][51] ([i915#3282]) [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@gem_pread@snoop.html - shard-dg1: NOTRUN -> [SKIP][52] ([i915#3282]) +1 other test skip [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-13/igt@gem_pread@snoop.html - shard-mtlp: NOTRUN -> [SKIP][53] ([i915#3282]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-6/igt@gem_pread@snoop.html * igt@gem_pxp@hw-rejects-pxp-context: - shard-tglu: NOTRUN -> [SKIP][54] ([i915#13398]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-10/igt@gem_pxp@hw-rejects-pxp-context.html * igt@gem_pxp@verify-pxp-stale-ctx-execution: - shard-dg2: NOTRUN -> [SKIP][55] ([i915#4270]) +1 other test skip [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-8/igt@gem_pxp@verify-pxp-stale-ctx-execution.html - shard-dg1: NOTRUN -> [SKIP][56] ([i915#4270]) +1 other test skip [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-15/igt@gem_pxp@verify-pxp-stale-ctx-execution.html * igt@gem_render_copy@y-tiled-ccs-to-x-tiled: - shard-snb: NOTRUN -> [SKIP][57] +60 other tests skip [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-snb6/igt@gem_render_copy@y-tiled-ccs-to-x-tiled.html - shard-mtlp: NOTRUN -> [SKIP][58] ([i915#8428]) +3 other tests skip [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-5/igt@gem_render_copy@y-tiled-ccs-to-x-tiled.html * igt@gem_render_copy@yf-tiled-ccs-to-linear: - shard-dg2: NOTRUN -> [SKIP][59] ([i915#5190] / [i915#8428]) +3 other tests skip [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-7/igt@gem_render_copy@yf-tiled-ccs-to-linear.html * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy: - shard-dg2: NOTRUN -> [SKIP][60] ([i915#3297] / [i915#4880]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-7/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html - shard-mtlp: NOTRUN -> [SKIP][61] ([i915#3297]) [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-8/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html * igt@gem_userptr_blits@readonly-unsync: - shard-rkl: NOTRUN -> [SKIP][62] ([i915#14544] / [i915#3297]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_userptr_blits@readonly-unsync.html * igt@gem_userptr_blits@unsync-unmap-cycles: - shard-dg2: NOTRUN -> [SKIP][63] ([i915#3297]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-6/igt@gem_userptr_blits@unsync-unmap-cycles.html * igt@gem_workarounds@suspend-resume: - shard-rkl: [PASS][64] -> [INCOMPLETE][65] ([i915#13356]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-2/igt@gem_workarounds@suspend-resume.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_workarounds@suspend-resume.html * igt@gem_workarounds@suspend-resume-context: - shard-glk: [PASS][66] -> [INCOMPLETE][67] ([i915#13356]) [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-glk6/igt@gem_workarounds@suspend-resume-context.html [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk5/igt@gem_workarounds@suspend-resume-context.html * igt@gen9_exec_parse@batch-invalid-length: - shard-dg2: NOTRUN -> [SKIP][68] ([i915#2856]) +2 other tests skip [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-8/igt@gen9_exec_parse@batch-invalid-length.html - shard-dg1: NOTRUN -> [SKIP][69] ([i915#2527]) [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-16/igt@gen9_exec_parse@batch-invalid-length.html - shard-mtlp: NOTRUN -> [SKIP][70] ([i915#2856]) [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-5/igt@gen9_exec_parse@batch-invalid-length.html * igt@gen9_exec_parse@batch-zero-length: - shard-tglu: NOTRUN -> [SKIP][71] ([i915#2527] / [i915#2856]) +2 other tests skip [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-7/igt@gen9_exec_parse@batch-zero-length.html * igt@gen9_exec_parse@bb-secure: - shard-rkl: NOTRUN -> [SKIP][72] ([i915#2527]) +3 other tests skip [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@gen9_exec_parse@bb-secure.html * igt@gen9_exec_parse@shadow-peek: - shard-tglu-1: NOTRUN -> [SKIP][73] ([i915#2527] / [i915#2856]) +3 other tests skip [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@gen9_exec_parse@shadow-peek.html * igt@i915_module_load@fault-injection@intel_connector_register: - shard-glk: NOTRUN -> [ABORT][74] ([i915#15342]) +1 other test abort [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk9/igt@i915_module_load@fault-injection@intel_connector_register.html * igt@i915_module_load@resize-bar: - shard-tglu-1: NOTRUN -> [SKIP][75] ([i915#6412]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@i915_module_load@resize-bar.html * igt@i915_pm_freq_api@freq-suspend: - shard-tglu: NOTRUN -> [SKIP][76] ([i915#8399]) +1 other test skip [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-9/igt@i915_pm_freq_api@freq-suspend.html * igt@i915_pm_sseu@full-enable: - shard-rkl: NOTRUN -> [SKIP][77] ([i915#14544] / [i915#4387]) [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@i915_pm_sseu@full-enable.html * igt@i915_query@hwconfig_table: - shard-dg1: NOTRUN -> [SKIP][78] ([i915#6245]) [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-15/igt@i915_query@hwconfig_table.html * igt@i915_query@query-topology-known-pci-ids: - shard-tglu-1: NOTRUN -> [SKIP][79] ([i915#16109]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@i915_query@query-topology-known-pci-ids.html * igt@i915_suspend@sysfs-reader: - shard-glk11: NOTRUN -> [INCOMPLETE][80] ([i915#16182] / [i915#4817]) [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk11/igt@i915_suspend@sysfs-reader.html * igt@intel_hwmon@hwmon-read: - shard-rkl: NOTRUN -> [SKIP][81] ([i915#7707]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@intel_hwmon@hwmon-read.html - shard-tglu-1: NOTRUN -> [SKIP][82] ([i915#7707]) [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@intel_hwmon@hwmon-read.html * igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-3: - shard-dg2: [PASS][83] -> [FAIL][84] ([i915#14888]) +1 other test fail [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-6/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-3.html [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-7/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-3.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing: - shard-mtlp: NOTRUN -> [SKIP][85] ([i915#1769] / [i915#3555]) [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels: - shard-glk: NOTRUN -> [SKIP][86] ([i915#1769]) [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk9/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html - shard-dg2: NOTRUN -> [SKIP][87] ([i915#1769] / [i915#3555]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-7/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html * igt@kms_big_fb@4-tiled-32bpp-rotate-0: - shard-rkl: NOTRUN -> [SKIP][88] ([i915#14544] / [i915#5286]) +1 other test skip [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_big_fb@4-tiled-32bpp-rotate-0.html * igt@kms_big_fb@4-tiled-64bpp-rotate-0: - shard-tglu: NOTRUN -> [SKIP][89] ([i915#5286]) +3 other tests skip [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-3/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html - shard-mtlp: [PASS][90] -> [FAIL][91] ([i915#12469] / [i915#15733] / [i915#5138]) [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-mtlp-2/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-7/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip: - shard-tglu-1: NOTRUN -> [SKIP][92] ([i915#5286]) +3 other tests skip [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html - shard-mtlp: [PASS][93] -> [FAIL][94] ([i915#15733] / [i915#5138]) [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-mtlp-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip: - shard-rkl: NOTRUN -> [SKIP][95] ([i915#5286]) +6 other tests skip [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html - shard-dg1: NOTRUN -> [SKIP][96] ([i915#4538] / [i915#5286]) +2 other tests skip [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-13/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html * igt@kms_big_fb@linear-64bpp-rotate-90: - shard-rkl: NOTRUN -> [SKIP][97] ([i915#3638]) +3 other tests skip [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@kms_big_fb@linear-64bpp-rotate-90.html * igt@kms_big_fb@linear-8bpp-rotate-90: - shard-rkl: NOTRUN -> [SKIP][98] ([i915#14544] / [i915#3638]) [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_big_fb@linear-8bpp-rotate-90.html * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip: - shard-rkl: NOTRUN -> [SKIP][99] ([i915#3828]) +1 other test skip [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html * igt@kms_big_fb@x-tiled-32bpp-rotate-90: - shard-dg1: NOTRUN -> [SKIP][100] ([i915#3638]) [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-13/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html * igt@kms_big_fb@x-tiled-64bpp-rotate-90: - shard-mtlp: NOTRUN -> [SKIP][101] +4 other tests skip [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-3/igt@kms_big_fb@x-tiled-64bpp-rotate-90.html * igt@kms_big_fb@y-tiled-8bpp-rotate-180: - shard-dg2: NOTRUN -> [SKIP][102] ([i915#4538] / [i915#5190]) +2 other tests skip [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@kms_big_fb@y-tiled-8bpp-rotate-180.html * igt@kms_big_fb@y-tiled-addfb: - shard-dg2: NOTRUN -> [SKIP][103] ([i915#5190]) +1 other test skip [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_big_fb@y-tiled-addfb.html * igt@kms_big_fb@yf-tiled-64bpp-rotate-270: - shard-dg1: NOTRUN -> [SKIP][104] ([i915#4538]) [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-19/igt@kms_big_fb@yf-tiled-64bpp-rotate-270.html * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][105] ([i915#10307] / [i915#10434] / [i915#6095]) +1 other test skip [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1.html * igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs-cc@pipe-c-edp-1: - shard-mtlp: NOTRUN -> [SKIP][106] ([i915#6095]) +24 other tests skip [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-2/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs-cc@pipe-c-edp-1.html * igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs: - shard-dg2: NOTRUN -> [SKIP][107] ([i915#10307] / [i915#6095]) +86 other tests skip [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-7/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs.html * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][108] ([i915#6095]) +69 other tests skip [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-2.html * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][109] ([i915#14098] / [i915#6095]) +49 other tests skip [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2.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]) +7 other tests skip [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/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-cc@pipe-b-hdmi-a-4: - shard-dg1: NOTRUN -> [SKIP][111] ([i915#6095]) +221 other tests skip [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-19/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4.html * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs: - shard-dg2: NOTRUN -> [SKIP][112] ([i915#12313]) [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html - shard-mtlp: NOTRUN -> [SKIP][113] ([i915#12313]) [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-3/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc: - shard-tglu: NOTRUN -> [SKIP][114] ([i915#6095]) +59 other tests skip [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-8/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-1: - shard-tglu-1: NOTRUN -> [SKIP][115] ([i915#6095]) +64 other tests skip [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-1.html * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-c-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][116] ([i915#6095]) +7 other tests skip [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-c-hdmi-a-3.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs: - shard-rkl: NOTRUN -> [SKIP][117] ([i915#12313] / [i915#14544]) [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs: - shard-tglu-1: NOTRUN -> [SKIP][118] ([i915#12313]) +1 other test skip [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html * igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][119] ([i915#14098] / [i915#14544] / [i915#6095]) +5 other tests skip [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2.html * igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [SKIP][120] +472 other tests skip [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk1/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-1.html * igt@kms_cdclk@mode-transition-all-outputs: - shard-tglu: NOTRUN -> [SKIP][121] ([i915#3742]) [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-2/igt@kms_cdclk@mode-transition-all-outputs.html * igt@kms_cdclk@plane-scaling@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][122] ([i915#13783]) +3 other tests skip [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_cdclk@plane-scaling@pipe-d-hdmi-a-1.html * igt@kms_chamelium_audio@dp-audio: - shard-mtlp: NOTRUN -> [SKIP][123] ([i915#11151] / [i915#7828]) +2 other tests skip [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-2/igt@kms_chamelium_audio@dp-audio.html * igt@kms_chamelium_color_pipeline@plane-ctm3x4: - shard-mtlp: NOTRUN -> [SKIP][124] ([i915#16464] / [i915#16471]) [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-7/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html - shard-dg2: NOTRUN -> [SKIP][125] ([i915#16471]) [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html - shard-dg1: NOTRUN -> [SKIP][126] ([i915#16471]) [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-19/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html - shard-tglu: NOTRUN -> [SKIP][127] ([i915#16471]) [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-3/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html * igt@kms_chamelium_color_pipeline@plane-lut1d-pre-ctm3x4: - shard-rkl: NOTRUN -> [SKIP][128] ([i915#16471]) +3 other tests skip [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_chamelium_color_pipeline@plane-lut1d-pre-ctm3x4.html * igt@kms_chamelium_color_pipeline@plane-lut3d-green-only: - shard-tglu-1: NOTRUN -> [SKIP][129] ([i915#16471]) [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_chamelium_color_pipeline@plane-lut3d-green-only.html * igt@kms_chamelium_frames@dp-frame-dump: - shard-dg1: NOTRUN -> [SKIP][130] ([i915#11151] / [i915#7828]) +2 other tests skip [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-15/igt@kms_chamelium_frames@dp-frame-dump.html * igt@kms_chamelium_hpd@dp-hpd: - shard-dg2: NOTRUN -> [SKIP][131] ([i915#11151] / [i915#7828]) +3 other tests skip [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-6/igt@kms_chamelium_hpd@dp-hpd.html - shard-rkl: NOTRUN -> [SKIP][132] ([i915#11151] / [i915#14544] / [i915#7828]) [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_chamelium_hpd@dp-hpd.html * igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode: - shard-rkl: NOTRUN -> [SKIP][133] ([i915#11151] / [i915#7828]) +5 other tests skip [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode.html * igt@kms_chamelium_hpd@vga-hpd-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_15453/shard-tglu-1/igt@kms_chamelium_hpd@vga-hpd-fast.html * igt@kms_chamelium_hpd@vga-hpd-without-ddc: - shard-tglu: NOTRUN -> [SKIP][135] ([i915#11151] / [i915#7828]) +3 other tests skip [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-9/igt@kms_chamelium_hpd@vga-hpd-without-ddc.html * igt@kms_content_protection@atomic-dpms: - shard-dg2: NOTRUN -> [SKIP][136] ([i915#15865]) [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-1/igt@kms_content_protection@atomic-dpms.html - shard-tglu: NOTRUN -> [SKIP][137] ([i915#15865]) [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-2/igt@kms_content_protection@atomic-dpms.html * igt@kms_content_protection@atomic-hdcp14: - shard-tglu-1: NOTRUN -> [SKIP][138] ([i915#15865]) +1 other test skip [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_content_protection@atomic-hdcp14.html * igt@kms_content_protection@dp-mst-lic-type-1: - shard-tglu-1: NOTRUN -> [SKIP][139] ([i915#15330] / [i915#3116] / [i915#3299]) [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_content_protection@dp-mst-lic-type-1.html * igt@kms_content_protection@dp-mst-type-0-hdcp14: - shard-tglu: NOTRUN -> [SKIP][140] ([i915#15330]) [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-9/igt@kms_content_protection@dp-mst-type-0-hdcp14.html * igt@kms_content_protection@dp-mst-type-1: - shard-rkl: NOTRUN -> [SKIP][141] ([i915#15330] / [i915#3116]) +1 other test skip [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-8/igt@kms_content_protection@dp-mst-type-1.html * igt@kms_content_protection@type1: - shard-rkl: NOTRUN -> [SKIP][142] ([i915#15865]) +3 other tests skip [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_content_protection@type1.html * igt@kms_content_protection@uevent: - shard-rkl: NOTRUN -> [SKIP][143] ([i915#14544] / [i915#15865]) [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_content_protection@uevent.html * igt@kms_cursor_crc@cursor-offscreen-32x10: - shard-tglu: NOTRUN -> [SKIP][144] ([i915#3555]) +1 other test skip [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-10/igt@kms_cursor_crc@cursor-offscreen-32x10.html * igt@kms_cursor_crc@cursor-offscreen-64x21: - shard-mtlp: NOTRUN -> [SKIP][145] ([i915#8814]) +1 other test skip [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-2/igt@kms_cursor_crc@cursor-offscreen-64x21.html * igt@kms_cursor_crc@cursor-onscreen-128x42: - shard-rkl: [PASS][146] -> [FAIL][147] ([i915#13566]) +1 other test fail [146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_cursor_crc@cursor-onscreen-128x42.html [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@kms_cursor_crc@cursor-onscreen-128x42.html * igt@kms_cursor_crc@cursor-onscreen-512x170: - shard-tglu-1: NOTRUN -> [SKIP][148] ([i915#13049]) [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-512x170.html * igt@kms_cursor_crc@cursor-onscreen-max-size: - shard-dg1: NOTRUN -> [SKIP][149] ([i915#3555]) [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-16/igt@kms_cursor_crc@cursor-onscreen-max-size.html * igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-1: - shard-rkl: NOTRUN -> [FAIL][150] ([i915#13566]) +1 other test fail [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-1.html * igt@kms_cursor_crc@cursor-random-32x10: - shard-rkl: NOTRUN -> [SKIP][151] ([i915#14544] / [i915#3555]) [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_cursor_crc@cursor-random-32x10.html * igt@kms_cursor_crc@cursor-rapid-movement-32x10: - shard-rkl: NOTRUN -> [SKIP][152] ([i915#3555]) +4 other tests skip [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html * igt@kms_cursor_crc@cursor-sliding-512x512: - shard-rkl: NOTRUN -> [SKIP][153] ([i915#13049]) [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-512x512.html * igt@kms_cursor_crc@cursor-suspend: - shard-glk: NOTRUN -> [INCOMPLETE][154] ([i915#12358] / [i915#14152] / [i915#7882]) [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk8/igt@kms_cursor_crc@cursor-suspend.html * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [INCOMPLETE][155] ([i915#12358] / [i915#14152]) [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk8/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1.html * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic: - shard-mtlp: NOTRUN -> [SKIP][156] ([i915#9809]) +1 other test skip [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-7/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size: - shard-rkl: NOTRUN -> [SKIP][157] ([i915#4103]) [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html * igt@kms_cursor_legacy@cursora-vs-flipb-toggle: - shard-dg2: NOTRUN -> [SKIP][158] ([i915#13046] / [i915#5354]) +1 other test skip [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-1/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-tglu: [PASS][159] -> [FAIL][160] ([i915#15804]) [159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-tglu-6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html - shard-glk10: NOTRUN -> [FAIL][161] ([i915#15804]) [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk10/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size: - shard-tglu-1: NOTRUN -> [SKIP][162] ([i915#4103]) [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html * igt@kms_dirtyfb@drrs-dirtyfb-ioctl: - shard-tglu-1: NOTRUN -> [SKIP][163] ([i915#9723]) [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][164] ([i915#3804]) [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html * igt@kms_dp_aux_dev@basic: - shard-dg2: NOTRUN -> [SKIP][165] ([i915#1257]) [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@kms_dp_aux_dev@basic.html - shard-rkl: NOTRUN -> [SKIP][166] ([i915#1257]) [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_dp_aux_dev@basic.html - shard-tglu-1: NOTRUN -> [SKIP][167] ([i915#1257]) [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_dp_aux_dev@basic.html - shard-dg1: NOTRUN -> [SKIP][168] ([i915#1257]) [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-18/igt@kms_dp_aux_dev@basic.html * igt@kms_dp_link_training@non-uhbr-sst: - shard-rkl: NOTRUN -> [SKIP][169] ([i915#13749]) [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-8/igt@kms_dp_link_training@non-uhbr-sst.html - shard-tglu-1: NOTRUN -> [SKIP][170] ([i915#13749]) [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_dp_link_training@non-uhbr-sst.html * igt@kms_dp_linktrain_fallback@dp-fallback: - shard-rkl: NOTRUN -> [SKIP][171] ([i915#13707] / [i915#14544]) [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_dp_linktrain_fallback@dp-fallback.html * igt@kms_dsc@dsc-basic: - shard-rkl: NOTRUN -> [SKIP][172] ([i915#16361]) +3 other tests skip [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_dsc@dsc-basic.html * igt@kms_dsc@dsc-fractional-bpp-ultrajoiner: - shard-dg2: NOTRUN -> [SKIP][173] ([i915#16361]) [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_dsc@dsc-fractional-bpp-ultrajoiner.html * igt@kms_dsc@dsc-fractional-bpp-with-bpc: - shard-dg1: NOTRUN -> [SKIP][174] ([i915#16361]) [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-15/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html * igt@kms_dsc@dsc-fractional-bpp-with-bpc-ultrajoiner: - shard-tglu-1: NOTRUN -> [SKIP][175] ([i915#16361]) [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_dsc@dsc-fractional-bpp-with-bpc-ultrajoiner.html * igt@kms_dsc@dsc-with-formats-bigjoiner: - shard-tglu: NOTRUN -> [SKIP][176] ([i915#16361]) +1 other test skip [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-9/igt@kms_dsc@dsc-with-formats-bigjoiner.html * igt@kms_dsc@dsc-with-output-formats-with-bpc: - shard-mtlp: NOTRUN -> [SKIP][177] ([i915#16361]) [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-8/igt@kms_dsc@dsc-with-output-formats-with-bpc.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-glk: NOTRUN -> [INCOMPLETE][178] ([i915#9878]) [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk3/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_feature_discovery@chamelium: - shard-tglu-1: NOTRUN -> [SKIP][179] ([i915#2065]) [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_feature_discovery@chamelium.html * igt@kms_feature_discovery@display-2x: - shard-dg2: NOTRUN -> [SKIP][180] ([i915#16081]) [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-6/igt@kms_feature_discovery@display-2x.html * igt@kms_feature_discovery@display-4x: - shard-tglu-1: NOTRUN -> [SKIP][181] ([i915#16081]) [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_feature_discovery@display-4x.html * igt@kms_feature_discovery@dp-mst: - shard-rkl: NOTRUN -> [SKIP][182] ([i915#9337]) [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_feature_discovery@dp-mst.html * igt@kms_feature_discovery@psr1: - shard-rkl: NOTRUN -> [SKIP][183] ([i915#14544] / [i915#658]) [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_feature_discovery@psr1.html * igt@kms_feature_discovery@psr2: - shard-tglu-1: NOTRUN -> [SKIP][184] ([i915#658]) [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_feature_discovery@psr2.html * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible: - shard-dg2: NOTRUN -> [SKIP][185] ([i915#9934]) +2 other tests skip [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-3/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html - shard-tglu: NOTRUN -> [SKIP][186] ([i915#3637] / [i915#9934]) +2 other tests skip [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-7/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html * igt@kms_flip@2x-plain-flip-fb-recreate: - shard-rkl: NOTRUN -> [SKIP][187] ([i915#9934]) +7 other tests skip [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@kms_flip@2x-plain-flip-fb-recreate.html * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible: - shard-tglu-1: NOTRUN -> [SKIP][188] ([i915#3637] / [i915#9934]) +8 other tests skip [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html * igt@kms_flip@flip-vs-expired-vblank-interruptible: - shard-rkl: [PASS][189] -> [FAIL][190] ([i915#13027]) [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible.html [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2: - shard-rkl: NOTRUN -> [FAIL][191] ([i915#13027]) [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1: - shard-glk: [PASS][192] -> [FAIL][193] ([i915#13027]) [192]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-glk1/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1.html [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk8/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1.html * igt@kms_flip@flip-vs-suspend: - shard-rkl: [PASS][194] -> [INCOMPLETE][195] ([i915#16276] / [i915#6113]) [194]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-2/igt@kms_flip@flip-vs-suspend.html [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_flip@flip-vs-suspend.html - shard-glk10: NOTRUN -> [INCOMPLETE][196] ([i915#12745] / [i915#4839]) [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk10/igt@kms_flip@flip-vs-suspend.html * igt@kms_flip@flip-vs-suspend@a-hdmi-a1: - shard-glk10: NOTRUN -> [INCOMPLETE][197] ([i915#12745]) [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk10/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html * igt@kms_flip@flip-vs-suspend@a-hdmi-a2: - shard-rkl: NOTRUN -> [INCOMPLETE][198] ([i915#16276] / [i915#6113]) [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_flip@flip-vs-suspend@a-hdmi-a2.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling: - shard-tglu: NOTRUN -> [SKIP][199] ([i915#15643]) +2 other tests skip [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-10/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling: - shard-mtlp: NOTRUN -> [SKIP][200] ([i915#15643]) [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html - shard-dg2: NOTRUN -> [SKIP][201] ([i915#15643] / [i915#5190]) [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling: - shard-tglu-1: NOTRUN -> [SKIP][202] ([i915#15643]) +2 other tests skip [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling: - shard-rkl: NOTRUN -> [SKIP][203] ([i915#15643]) +5 other tests skip [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode: - shard-mtlp: NOTRUN -> [SKIP][204] ([i915#3555] / [i915#8810] / [i915#8813]) +1 other test skip [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-gtt: - shard-rkl: NOTRUN -> [SKIP][205] ([i915#14544] / [i915#1825]) [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbc-tiling-4: - shard-tglu: NOTRUN -> [SKIP][206] ([i915#5439]) +1 other test skip [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-7/igt@kms_frontbuffer_tracking@fbc-tiling-4.html * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff: - shard-rkl: [PASS][207] -> [SKIP][208] ([i915#15989]) +3 other tests skip [207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-1/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-pgflip-blt: - shard-tglu-1: NOTRUN -> [SKIP][209] +71 other tests skip [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-plflip-blt: - shard-tglu: NOTRUN -> [SKIP][210] +57 other tests skip [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-8/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-render: - shard-dg2: NOTRUN -> [SKIP][211] ([i915#15989]) +7 other tests skip [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-render.html * igt@kms_frontbuffer_tracking@fbchdr-tiling-4: - shard-rkl: NOTRUN -> [SKIP][212] ([i915#5439]) +1 other test skip [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@kms_frontbuffer_tracking@fbchdr-tiling-4.html * igt@kms_frontbuffer_tracking@fbchdr-tiling-linear: - shard-tglu-1: NOTRUN -> [SKIP][213] ([i915#15989]) +15 other tests skip [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_frontbuffer_tracking@fbchdr-tiling-linear.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-gtt: - shard-dg1: NOTRUN -> [SKIP][214] ([i915#15104] / [i915#15990]) [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-12/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt: - shard-rkl: NOTRUN -> [SKIP][215] ([i915#15102]) +26 other tests skip [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-wc: - shard-dg2: NOTRUN -> [SKIP][216] ([i915#15104] / [i915#15990]) [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt: - shard-tglu: NOTRUN -> [SKIP][217] ([i915#15102]) +24 other tests skip [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw: - shard-dg1: NOTRUN -> [SKIP][218] +22 other tests skip [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc: - shard-rkl: NOTRUN -> [SKIP][219] ([i915#1825]) +2 other tests skip [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt: - shard-mtlp: NOTRUN -> [SKIP][220] ([i915#15991] / [i915#1825]) +8 other tests skip [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt: - shard-dg1: NOTRUN -> [SKIP][221] ([i915#15990] / [i915#8708]) +4 other tests skip [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-15/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4: - shard-dg1: NOTRUN -> [SKIP][222] ([i915#5439]) [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-mmap-gtt: - shard-dg2: NOTRUN -> [SKIP][223] ([i915#15990]) +10 other tests skip [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-shrfb-draw-mmap-cpu: - shard-tglu-1: NOTRUN -> [SKIP][224] ([i915#15102]) +31 other tests skip [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-shrfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-shrfb-plflip-blt: - shard-dg1: NOTRUN -> [SKIP][225] ([i915#15102]) +13 other tests skip [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-shrfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-pri-shrfb-draw-mmap-wc: - shard-mtlp: NOTRUN -> [SKIP][226] ([i915#15991]) +12 other tests skip [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-5/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-cur-indfb-draw-mmap-gtt: - shard-tglu: NOTRUN -> [SKIP][227] ([i915#15989]) +12 other tests skip [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-10/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-cur-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-shrfb-plflip-blt: - shard-dg1: NOTRUN -> [SKIP][228] ([i915#15989]) +2 other tests skip [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-13/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-shrfb-plflip-blt.html * igt@kms_frontbuffer_tracking@hdr-2p-primscrn-cur-indfb-draw-mmap-gtt: - shard-mtlp: NOTRUN -> [SKIP][229] ([i915#15990]) +7 other tests skip [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-6/igt@kms_frontbuffer_tracking@hdr-2p-primscrn-cur-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@hdr-2p-primscrn-spr-indfb-draw-blt: - shard-glk: [PASS][230] -> [SKIP][231] +8 other tests skip [230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-glk8/igt@kms_frontbuffer_tracking@hdr-2p-primscrn-spr-indfb-draw-blt.html [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk5/igt@kms_frontbuffer_tracking@hdr-2p-primscrn-spr-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-pwrite: - shard-rkl: NOTRUN -> [SKIP][232] ([i915#15989]) +19 other tests skip [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-pwrite.html * igt@kms_frontbuffer_tracking@pipe-fbc-rte: - shard-tglu-1: NOTRUN -> [SKIP][233] ([i915#9766]) [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-blt: - shard-dg2: NOTRUN -> [SKIP][234] ([i915#15102]) +11 other tests skip [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff: - shard-glk11: NOTRUN -> [SKIP][235] +90 other tests skip [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk11/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-gtt: - shard-dg2: NOTRUN -> [SKIP][236] ([i915#15990] / [i915#8708]) +3 other tests skip [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-msflip-blt: - shard-dg2: NOTRUN -> [SKIP][237] ([i915#15991] / [i915#5354]) +6 other tests skip [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-10/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-msflip-blt.html * igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-cpu: - shard-rkl: NOTRUN -> [SKIP][238] ([i915#14544] / [i915#15102] / [i915#3023]) [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@psr-suspend: - shard-rkl: NOTRUN -> [SKIP][239] ([i915#15102] / [i915#3023]) +23 other tests skip [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-suspend.html * igt@kms_frontbuffer_tracking@psrhdr-1p-offscreen-pri-indfb-draw-mmap-wc: - shard-dg1: NOTRUN -> [SKIP][240] ([i915#15990]) +10 other tests skip [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-19/igt@kms_frontbuffer_tracking@psrhdr-1p-offscreen-pri-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-pwrite: - shard-rkl: NOTRUN -> [SKIP][241] ([i915#14544] / [i915#15102]) +2 other tests skip [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move: - shard-rkl: NOTRUN -> [SKIP][242] +95 other tests skip [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-8/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move.html * igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-shrfb-draw-blt: - shard-rkl: NOTRUN -> [SKIP][243] ([i915#14544]) +5 other tests skip [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-shrfb-draw-pwrite: - shard-glk10: NOTRUN -> [SKIP][244] +115 other tests skip [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk10/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-shrfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-shrfb-draw-render: - shard-dg2: NOTRUN -> [SKIP][245] ([i915#15991]) +10 other tests skip [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-6/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-shrfb-draw-render.html * igt@kms_frontbuffer_tracking@psrhdr-rgb101010-draw-mmap-cpu: - shard-mtlp: NOTRUN -> [SKIP][246] ([i915#15989]) +9 other tests skip [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-5/igt@kms_frontbuffer_tracking@psrhdr-rgb101010-draw-mmap-cpu.html * igt@kms_hdr@bpc-switch-dpms: - shard-rkl: NOTRUN -> [SKIP][247] ([i915#3555] / [i915#8228]) [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_hdr@bpc-switch-dpms.html * igt@kms_hdr@brightness-with-hdr: - shard-tglu-1: NOTRUN -> [SKIP][248] ([i915#12713]) [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_hdr@brightness-with-hdr.html * igt@kms_hdr@invalid-metadata-sizes: - shard-tglu-1: NOTRUN -> [SKIP][249] ([i915#3555] / [i915#8228]) [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_hdr@invalid-metadata-sizes.html - shard-dg1: NOTRUN -> [SKIP][250] ([i915#3555] / [i915#8228]) [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-17/igt@kms_hdr@invalid-metadata-sizes.html * igt@kms_joiner@basic-big-joiner: - shard-tglu-1: NOTRUN -> [SKIP][251] ([i915#15460]) [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_joiner@basic-big-joiner.html * igt@kms_joiner@invalid-modeset-big-joiner: - shard-rkl: NOTRUN -> [SKIP][252] ([i915#15460]) [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@kms_joiner@invalid-modeset-big-joiner.html * igt@kms_joiner@invalid-modeset-force-ultra-joiner: - shard-rkl: NOTRUN -> [SKIP][253] ([i915#15458]) [253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html * igt@kms_joiner@invalid-modeset-ultra-joiner: - shard-tglu: NOTRUN -> [SKIP][254] ([i915#15458]) [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-3/igt@kms_joiner@invalid-modeset-ultra-joiner.html * igt@kms_mst@mst-suspend-read-crc: - shard-tglu: NOTRUN -> [SKIP][255] ([i915#16451]) [255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-5/igt@kms_mst@mst-suspend-read-crc.html * igt@kms_pipe_b_c_ivb@from-pipe-c-to-b-with-3-lanes: - shard-dg2: NOTRUN -> [SKIP][256] +4 other tests skip [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-8/igt@kms_pipe_b_c_ivb@from-pipe-c-to-b-with-3-lanes.html * igt@kms_pipe_crc_basic@suspend-read-crc: - shard-rkl: [PASS][257] -> [INCOMPLETE][258] ([i915#12756] / [i915#13476]) [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-4/igt@kms_pipe_crc_basic@suspend-read-crc.html [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_pipe_crc_basic@suspend-read-crc.html * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-2: - shard-rkl: [PASS][259] -> [INCOMPLETE][260] ([i915#13476]) [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-4/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-2.html [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-2.html * igt@kms_pipe_stress@stress-xrgb8888-yftiled: - shard-dg2: NOTRUN -> [SKIP][261] ([i915#14712]) [261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-6/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html - shard-rkl: NOTRUN -> [SKIP][262] ([i915#14712]) [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier: - shard-dg1: NOTRUN -> [SKIP][263] ([i915#15709]) +1 other test skip [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-15/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier.html * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping: - shard-rkl: NOTRUN -> [SKIP][264] ([i915#15709]) +3 other tests skip [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping.html * igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier: - shard-tglu-1: NOTRUN -> [SKIP][265] ([i915#15709]) +3 other tests skip [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier: - shard-mtlp: NOTRUN -> [SKIP][266] ([i915#15709]) [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-3/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier.html * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier@pipe-b-plane-7: - shard-dg1: NOTRUN -> [SKIP][267] ([i915#16386]) +1 other test skip [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-19/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier@pipe-b-plane-7.html - shard-tglu: NOTRUN -> [SKIP][268] ([i915#16386]) +1 other test skip [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-2/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier@pipe-b-plane-7.html * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-5: - shard-rkl: NOTRUN -> [SKIP][269] ([i915#16386]) +3 other tests skip [269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-5.html * igt@kms_plane@pixel-format-yf-tiled-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_15453/shard-tglu-7/igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping.html * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a: - shard-glk: [PASS][271] -> [INCOMPLETE][272] ([i915#13026]) [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-glk5/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk2/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html * igt@kms_plane_alpha_blend@alpha-opaque-fb: - shard-glk11: NOTRUN -> [FAIL][273] ([i915#10647] / [i915#12169]) [273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk11/igt@kms_plane_alpha_blend@alpha-opaque-fb.html * igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1: - shard-glk11: NOTRUN -> [FAIL][274] ([i915#10647]) +1 other test fail [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk11/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1.html * igt@kms_plane_alpha_blend@alpha-transparent-fb: - shard-glk10: NOTRUN -> [FAIL][275] ([i915#10647] / [i915#12177]) [275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk10/igt@kms_plane_alpha_blend@alpha-transparent-fb.html * igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-a-hdmi-a-1: - shard-glk10: NOTRUN -> [FAIL][276] ([i915#10647]) +1 other test fail [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk10/igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-a-hdmi-a-1.html * igt@kms_plane_multiple@2x-tiling-4: - shard-dg2: NOTRUN -> [SKIP][277] ([i915#13958]) [277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_plane_multiple@2x-tiling-4.html - shard-rkl: NOTRUN -> [SKIP][278] ([i915#13958]) [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@kms_plane_multiple@2x-tiling-4.html - shard-dg1: NOTRUN -> [SKIP][279] ([i915#13958]) [279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-18/igt@kms_plane_multiple@2x-tiling-4.html - shard-tglu: NOTRUN -> [SKIP][280] ([i915#13958]) [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-9/igt@kms_plane_multiple@2x-tiling-4.html - shard-mtlp: NOTRUN -> [SKIP][281] ([i915#13958]) [281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-7/igt@kms_plane_multiple@2x-tiling-4.html * igt@kms_plane_multiple@tiling-4: - shard-tglu: NOTRUN -> [SKIP][282] ([i915#14259]) [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-3/igt@kms_plane_multiple@tiling-4.html * igt@kms_plane_multiple@tiling-yf: - shard-mtlp: NOTRUN -> [SKIP][283] ([i915#14259]) [283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-4/igt@kms_plane_multiple@tiling-yf.html - shard-dg2: NOTRUN -> [SKIP][284] ([i915#14259]) [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-6/igt@kms_plane_multiple@tiling-yf.html * igt@kms_plane_scaling@intel-max-src-size: - shard-rkl: [PASS][285] -> [SKIP][286] ([i915#6953]) [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_plane_scaling@intel-max-src-size.html [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_plane_scaling@intel-max-src-size.html * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-d: - shard-tglu-1: NOTRUN -> [SKIP][287] ([i915#15329]) +4 other tests skip [287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-d.html * igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25: - shard-mtlp: NOTRUN -> [SKIP][288] ([i915#15329] / [i915#6953]) [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-5/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25.html * igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25@pipe-b: - shard-mtlp: NOTRUN -> [SKIP][289] ([i915#15329]) +3 other tests skip [289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-5/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25@pipe-b.html * igt@kms_pm_backlight@fade-with-suspend: - shard-dg2: NOTRUN -> [SKIP][290] ([i915#12343] / [i915#5354]) +1 other test skip [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-8/igt@kms_pm_backlight@fade-with-suspend.html - shard-rkl: NOTRUN -> [SKIP][291] ([i915#12343] / [i915#5354]) [291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_pm_backlight@fade-with-suspend.html * igt@kms_pm_dc@dc6-psr: - shard-rkl: NOTRUN -> [SKIP][292] ([i915#15948]) [292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_pm_dc@dc6-psr.html * igt@kms_pm_lpsp@kms-lpsp: - shard-tglu-1: NOTRUN -> [SKIP][293] ([i915#3828]) [293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_pm_lpsp@kms-lpsp.html * igt@kms_pm_lpsp@screens-disabled: - shard-tglu-1: NOTRUN -> [SKIP][294] ([i915#8430]) [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_pm_lpsp@screens-disabled.html * igt@kms_pm_rpm@modeset-lpsp: - shard-dg1: [PASS][295] -> [SKIP][296] ([i915#15073]) +1 other test skip [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg1-15/igt@kms_pm_rpm@modeset-lpsp.html [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-13/igt@kms_pm_rpm@modeset-lpsp.html * igt@kms_pm_rpm@modeset-lpsp-stress: - shard-rkl: [PASS][297] -> [SKIP][298] ([i915#15073]) +2 other tests skip [297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-2/igt@kms_pm_rpm@modeset-lpsp-stress.html [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@kms_pm_rpm@modeset-lpsp-stress.html * igt@kms_pm_rpm@modeset-non-lpsp: - shard-dg2: [PASS][299] -> [SKIP][300] ([i915#15073]) +1 other test skip [299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-3/igt@kms_pm_rpm@modeset-non-lpsp.html [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_pm_rpm@modeset-non-lpsp.html * igt@kms_prime@basic-crc-hybrid: - shard-rkl: NOTRUN -> [SKIP][301] ([i915#6524]) [301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-8/igt@kms_prime@basic-crc-hybrid.html * igt@kms_prime@basic-modeset-hybrid: - shard-dg1: NOTRUN -> [SKIP][302] ([i915#6524]) [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-13/igt@kms_prime@basic-modeset-hybrid.html * igt@kms_prime@d3hot: - shard-tglu-1: NOTRUN -> [SKIP][303] ([i915#6524]) [303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_prime@d3hot.html * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf: - shard-rkl: NOTRUN -> [SKIP][304] ([i915#11520]) +7 other tests skip [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area: - shard-rkl: NOTRUN -> [SKIP][305] ([i915#11520] / [i915#14544]) [305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area.html * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf: - shard-glk10: NOTRUN -> [SKIP][306] ([i915#11520]) +1 other test skip [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk10/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area: - shard-tglu-1: NOTRUN -> [SKIP][307] ([i915#11520]) +5 other tests skip [307]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html * igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area: - shard-mtlp: NOTRUN -> [SKIP][308] ([i915#12316]) +2 other tests skip [308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-8/igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area.html * igt@kms_psr2_sf@psr2-cursor-plane-update-sf: - shard-glk11: NOTRUN -> [SKIP][309] ([i915#11520]) [309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk11/igt@kms_psr2_sf@psr2-cursor-plane-update-sf.html * igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area: - shard-dg2: NOTRUN -> [SKIP][310] ([i915#11520]) +4 other tests skip [310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-7/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html * igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area: - shard-glk: NOTRUN -> [SKIP][311] ([i915#11520]) +14 other tests skip [311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk6/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html - shard-dg1: NOTRUN -> [SKIP][312] ([i915#11520] / [i915#4423]) [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-16/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb: - shard-snb: NOTRUN -> [SKIP][313] ([i915#11520]) +2 other tests skip [313]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-snb6/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html - shard-dg1: NOTRUN -> [SKIP][314] ([i915#11520]) +2 other tests skip [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-12/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html - shard-tglu: NOTRUN -> [SKIP][315] ([i915#11520]) +6 other tests skip [315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-7/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html * igt@kms_psr2_su@page_flip-p010: - shard-rkl: NOTRUN -> [SKIP][316] ([i915#9683]) [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@kms_psr2_su@page_flip-p010.html * igt@kms_psr@fbc-pr-sprite-plane-move: - shard-rkl: NOTRUN -> [SKIP][317] ([i915#1072] / [i915#14544] / [i915#9732]) [317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_psr@fbc-pr-sprite-plane-move.html * igt@kms_psr@fbc-psr-sprite-mmap-gtt: - shard-dg2: NOTRUN -> [SKIP][318] ([i915#1072] / [i915#9732]) +8 other tests skip [318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_psr@fbc-psr-sprite-mmap-gtt.html * igt@kms_psr@fbc-psr2-primary-mmap-cpu: - shard-mtlp: NOTRUN -> [SKIP][319] ([i915#9688]) +6 other tests skip [319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-2/igt@kms_psr@fbc-psr2-primary-mmap-cpu.html * igt@kms_psr@psr-cursor-render: - shard-dg1: NOTRUN -> [SKIP][320] ([i915#1072] / [i915#9732]) +8 other tests skip [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-17/igt@kms_psr@psr-cursor-render.html * igt@kms_psr@psr-sprite-mmap-cpu: - shard-tglu-1: NOTRUN -> [SKIP][321] ([i915#9732]) +14 other tests skip [321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_psr@psr-sprite-mmap-cpu.html * igt@kms_psr@psr-sprite-mmap-gtt@edp-1: - shard-mtlp: NOTRUN -> [SKIP][322] ([i915#4077] / [i915#9688]) +1 other test skip [322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-8/igt@kms_psr@psr-sprite-mmap-gtt@edp-1.html * igt@kms_psr@psr2-cursor-blt: - shard-rkl: NOTRUN -> [SKIP][323] ([i915#1072] / [i915#9732]) +21 other tests skip [323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_psr@psr2-cursor-blt.html * igt@kms_psr@psr2-sprite-mmap-gtt: - shard-tglu: NOTRUN -> [SKIP][324] ([i915#9732]) +14 other tests skip [324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-3/igt@kms_psr@psr2-sprite-mmap-gtt.html * igt@kms_psr_stress_test@invalidate-primary-flip-overlay: - shard-dg2: NOTRUN -> [SKIP][325] ([i915#15949]) [325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-8/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom: - shard-glk10: NOTRUN -> [INCOMPLETE][326] ([i915#15500] / [i915#16184]) [326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk10/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html * igt@kms_rotation_crc@primary-rotation-90: - shard-mtlp: NOTRUN -> [SKIP][327] ([i915#12755] / [i915#15867]) [327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-2/igt@kms_rotation_crc@primary-rotation-90.html - shard-dg2: NOTRUN -> [SKIP][328] ([i915#12755] / [i915#15867]) [328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-3/igt@kms_rotation_crc@primary-rotation-90.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180: - shard-rkl: NOTRUN -> [SKIP][329] ([i915#5289]) +1 other test skip [329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html - shard-dg1: NOTRUN -> [SKIP][330] ([i915#5289]) [330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-16/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html - shard-tglu: NOTRUN -> [SKIP][331] ([i915#5289]) [331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-10/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html - shard-mtlp: NOTRUN -> [SKIP][332] ([i915#5289]) [332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-2/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html * igt@kms_selftest@drm_framebuffer: - shard-tglu: NOTRUN -> [ABORT][333] ([i915#13179]) +1 other test abort [333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-8/igt@kms_selftest@drm_framebuffer.html * igt@kms_vrr@flip-basic: - shard-tglu-1: NOTRUN -> [SKIP][334] ([i915#3555]) +3 other tests skip [334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-1/igt@kms_vrr@flip-basic.html * igt@kms_vrr@max-min: - shard-rkl: NOTRUN -> [SKIP][335] ([i915#9906]) +1 other test skip [335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_vrr@max-min.html * igt@kms_vrr@negative-basic: - shard-rkl: NOTRUN -> [SKIP][336] ([i915#3555] / [i915#9906]) [336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_vrr@negative-basic.html * igt@perf@per-context-mode-unprivileged: - shard-rkl: NOTRUN -> [SKIP][337] ([i915#2435]) [337]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@perf@per-context-mode-unprivileged.html * igt@perf_pmu@rc6-suspend: - shard-glk: NOTRUN -> [INCOMPLETE][338] ([i915#13356] / [i915#14242] / [i915#16236]) [338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk1/igt@perf_pmu@rc6-suspend.html * igt@prime_udl@share-import-addfb: - shard-rkl: NOTRUN -> [SKIP][339] ([i915#16420]) [339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@prime_udl@share-import-addfb.html * igt@prime_vgem@basic-write: - shard-rkl: NOTRUN -> [SKIP][340] ([i915#3291] / [i915#3708]) [340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-8/igt@prime_vgem@basic-write.html * igt@sriov_basic@bind-unbind-vf: - shard-rkl: NOTRUN -> [SKIP][341] ([i915#9917]) [341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@sriov_basic@bind-unbind-vf.html #### Possible fixes #### * igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0: - shard-dg2: [INCOMPLETE][342] ([i915#13356] / [i915#16348]) -> [PASS][343] [342]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-1/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html [343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-1/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html * igt@gem_ctx_freq@sysfs@gt0: - shard-dg2: [FAIL][344] ([i915#9561]) -> [PASS][345] +1 other test pass [344]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-5/igt@gem_ctx_freq@sysfs@gt0.html [345]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@gem_ctx_freq@sysfs@gt0.html * igt@gem_exec_big@single: - shard-tglu: [FAIL][346] ([i915#15816]) -> [PASS][347] [346]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-tglu-4/igt@gem_exec_big@single.html [347]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-7/igt@gem_exec_big@single.html * igt@gem_softpin@noreloc-s3: - shard-rkl: [ABORT][348] ([i915#15131]) -> [PASS][349] [348]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-1/igt@gem_softpin@noreloc-s3.html [349]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@gem_softpin@noreloc-s3.html * igt@i915_pm_rc6_residency@rc6-accuracy: - shard-dg2: [FAIL][350] ([i915#12964]) -> [PASS][351] +1 other test pass [350]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-1/igt@i915_pm_rc6_residency@rc6-accuracy.html [351]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-6/igt@i915_pm_rc6_residency@rc6-accuracy.html * igt@i915_pm_rpm@reg-read-ioctl: - shard-dg1: [DMESG-WARN][352] ([i915#4391] / [i915#4423]) -> [PASS][353] [352]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg1-15/igt@i915_pm_rpm@reg-read-ioctl.html [353]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-12/igt@i915_pm_rpm@reg-read-ioctl.html * igt@i915_selftest@live@gt_engines: - shard-dg2: [ABORT][354] ([i915#16523]) -> [PASS][355] +1 other test pass [354]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-8/igt@i915_selftest@live@gt_engines.html [355]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@i915_selftest@live@gt_engines.html - shard-mtlp: [INCOMPLETE][356] ([i915#16229]) -> [PASS][357] +1 other test pass [356]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-mtlp-5/igt@i915_selftest@live@gt_engines.html [357]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-6/igt@i915_selftest@live@gt_engines.html * igt@i915_suspend@debugfs-reader: - shard-rkl: [ABORT][358] ([i915#15131] / [i915#15140]) -> [PASS][359] [358]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-1/igt@i915_suspend@debugfs-reader.html [359]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@i915_suspend@debugfs-reader.html * igt@kms_async_flips@async-flip-suspend-resume: - shard-rkl: [INCOMPLETE][360] ([i915#12761]) -> [PASS][361] [360]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-3/igt@kms_async_flips@async-flip-suspend-resume.html [361]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_async_flips@async-flip-suspend-resume.html * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs: - shard-rkl: [INCOMPLETE][362] ([i915#14694] / [i915#15582]) -> [PASS][363] [362]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-3/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs.html [363]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs.html * igt@kms_color@deep-color: - shard-rkl: [SKIP][364] ([i915#12655] / [i915#3555]) -> [PASS][365] [364]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-8/igt@kms_color@deep-color.html [365]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@kms_color@deep-color.html * igt@kms_cursor_crc@cursor-onscreen-256x85: - shard-tglu: [FAIL][366] ([i915#13566]) -> [PASS][367] +1 other test pass [366]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-tglu-6/igt@kms_cursor_crc@cursor-onscreen-256x85.html [367]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-7/igt@kms_cursor_crc@cursor-onscreen-256x85.html * igt@kms_flip@blocking-wf_vblank@a-hdmi-a4: - shard-dg1: [FAIL][368] ([i915#14600]) -> [PASS][369] +1 other test pass [368]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg1-17/igt@kms_flip@blocking-wf_vblank@a-hdmi-a4.html [369]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-18/igt@kms_flip@blocking-wf_vblank@a-hdmi-a4.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-hdmi-a1: - shard-glk: [FAIL][370] ([i915#13027]) -> [PASS][371] [370]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-glk1/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-hdmi-a1.html [371]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk8/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-hdmi-a1.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a3: - shard-dg2: [FAIL][372] ([i915#13027]) -> [PASS][373] +1 other test pass [372]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-8/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a3.html [373]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a3.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling: - shard-dg1: [DMESG-WARN][374] ([i915#4423]) -> [PASS][375] +1 other test pass [374]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg1-16/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html [375]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-16/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-indfb-pgflip-blt: - shard-rkl: [SKIP][376] ([i915#15989]) -> [PASS][377] +15 other tests pass [376]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-5/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-indfb-pgflip-blt.html [377]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-indfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-blt: - shard-dg2: [SKIP][378] ([i915#15989]) -> [PASS][379] +3 other tests pass [378]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-8/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-blt.html [379]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-10/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-blt.html * igt@kms_lease@simple-lease@pipe-a-hdmi-a-2: - shard-glk: [DMESG-WARN][380] ([i915#118]) -> [PASS][381] +1 other test pass [380]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-glk4/igt@kms_lease@simple-lease@pipe-a-hdmi-a-2.html [381]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk8/igt@kms_lease@simple-lease@pipe-a-hdmi-a-2.html * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a: - shard-rkl: [INCOMPLETE][382] ([i915#14412]) -> [PASS][383] +1 other test pass [382]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html [383]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html * igt@kms_pm_rpm@dpms-lpsp: - shard-dg2: [SKIP][384] ([i915#15073]) -> [PASS][385] +1 other test pass [384]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-7/igt@kms_pm_rpm@dpms-lpsp.html [385]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_pm_rpm@dpms-lpsp.html - shard-rkl: [SKIP][386] ([i915#14544] / [i915#15073]) -> [PASS][387] [386]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_pm_rpm@dpms-lpsp.html [387]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-8/igt@kms_pm_rpm@dpms-lpsp.html * igt@kms_pm_rpm@modeset-lpsp-stress: - shard-dg1: [SKIP][388] ([i915#15073]) -> [PASS][389] +4 other tests pass [388]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg1-19/igt@kms_pm_rpm@modeset-lpsp-stress.html [389]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-15/igt@kms_pm_rpm@modeset-lpsp-stress.html * igt@kms_pm_rpm@modeset-non-lpsp: - shard-rkl: [SKIP][390] ([i915#15073]) -> [PASS][391] +1 other test pass [390]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp.html [391]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@kms_pm_rpm@modeset-non-lpsp.html * igt@perf_pmu@all-busy-idle-check-all: - shard-dg2: [FAIL][392] ([i915#15453]) -> [PASS][393] [392]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-6/igt@perf_pmu@all-busy-idle-check-all.html [393]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-7/igt@perf_pmu@all-busy-idle-check-all.html - shard-mtlp: [FAIL][394] ([i915#15453]) -> [PASS][395] [394]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-mtlp-5/igt@perf_pmu@all-busy-idle-check-all.html [395]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-mtlp-8/igt@perf_pmu@all-busy-idle-check-all.html #### Warnings #### * igt@gem_close_race@multigpu-basic-threads: - shard-rkl: [SKIP][396] ([i915#14544] / [i915#7697]) -> [SKIP][397] ([i915#7697]) [396]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@gem_close_race@multigpu-basic-threads.html [397]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@gem_close_race@multigpu-basic-threads.html * igt@gem_exec_reloc@basic-gtt-read: - shard-rkl: [SKIP][398] ([i915#14544] / [i915#3281]) -> [SKIP][399] ([i915#3281]) +3 other tests skip [398]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-read.html [399]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@gem_exec_reloc@basic-gtt-read.html * igt@gem_exec_reloc@basic-gtt-wc-active: - shard-rkl: [SKIP][400] ([i915#3281]) -> [SKIP][401] ([i915#14544] / [i915#3281]) [400]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@gem_exec_reloc@basic-gtt-wc-active.html [401]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-wc-active.html * igt@gem_lmem_swapping@parallel-random-verify: - shard-rkl: [SKIP][402] ([i915#4613]) -> [SKIP][403] ([i915#14544] / [i915#4613]) [402]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-4/igt@gem_lmem_swapping@parallel-random-verify.html [403]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_lmem_swapping@parallel-random-verify.html * igt@gem_lmem_swapping@verify-random: - shard-rkl: [SKIP][404] ([i915#14544] / [i915#4613]) -> [SKIP][405] ([i915#4613]) +1 other test skip [404]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@gem_lmem_swapping@verify-random.html [405]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@gem_lmem_swapping@verify-random.html * igt@gem_partial_pwrite_pread@writes-after-reads-uncached: - shard-rkl: [SKIP][406] ([i915#3282]) -> [SKIP][407] ([i915#14544] / [i915#3282]) +2 other tests skip [406]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html [407]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html * igt@gem_pread@display: - shard-rkl: [SKIP][408] ([i915#14544] / [i915#3282]) -> [SKIP][409] ([i915#3282]) +1 other test skip [408]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@gem_pread@display.html [409]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-8/igt@gem_pread@display.html * igt@gem_set_tiling_vs_blt@tiled-to-tiled: - shard-rkl: [SKIP][410] ([i915#8411]) -> [SKIP][411] ([i915#14544] / [i915#8411]) [410]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-8/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html [411]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html * igt@gem_set_tiling_vs_blt@untiled-to-tiled: - shard-rkl: [SKIP][412] ([i915#14544] / [i915#8411]) -> [SKIP][413] ([i915#8411]) [412]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html [413]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html * igt@gem_softpin@evict-snoop: - shard-rkl: [SKIP][414] ([i915#14544]) -> [SKIP][415] +30 other tests skip [414]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@gem_softpin@evict-snoop.html [415]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@gem_softpin@evict-snoop.html * igt@gem_userptr_blits@coherency-sync: - shard-rkl: [SKIP][416] ([i915#3297]) -> [SKIP][417] ([i915#14544] / [i915#3297]) [416]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-4/igt@gem_userptr_blits@coherency-sync.html [417]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_userptr_blits@coherency-sync.html * igt@gem_userptr_blits@dmabuf-sync: - shard-rkl: [SKIP][418] ([i915#3297] / [i915#3323]) -> [SKIP][419] ([i915#14544] / [i915#3297] / [i915#3323]) [418]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-1/igt@gem_userptr_blits@dmabuf-sync.html [419]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_userptr_blits@dmabuf-sync.html * igt@gem_userptr_blits@relocations: - shard-rkl: [SKIP][420] ([i915#3281] / [i915#3297]) -> [SKIP][421] ([i915#14544] / [i915#3281] / [i915#3297]) [420]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-8/igt@gem_userptr_blits@relocations.html [421]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gem_userptr_blits@relocations.html * igt@gen9_exec_parse@bb-start-out: - shard-rkl: [SKIP][422] ([i915#14544] / [i915#2527]) -> [SKIP][423] ([i915#2527]) [422]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@gen9_exec_parse@bb-start-out.html [423]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@gen9_exec_parse@bb-start-out.html * igt@gen9_exec_parse@valid-registers: - shard-rkl: [SKIP][424] ([i915#2527]) -> [SKIP][425] ([i915#14544] / [i915#2527]) +1 other test skip [424]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@gen9_exec_parse@valid-registers.html [425]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@gen9_exec_parse@valid-registers.html * igt@i915_pm_freq_api@freq-basic-api: - shard-rkl: [SKIP][426] ([i915#8399]) -> [SKIP][427] ([i915#14544] / [i915#8399]) [426]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-5/igt@i915_pm_freq_api@freq-basic-api.html [427]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@i915_pm_freq_api@freq-basic-api.html * igt@kms_atomic@plane-primary-overlay-mutable-zpos: - shard-rkl: [SKIP][428] ([i915#9531]) -> [SKIP][429] ([i915#14544] / [i915#9531]) [428]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html [429]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html * igt@kms_big_fb@4-tiled-8bpp-rotate-180: - shard-rkl: [SKIP][430] ([i915#14544] / [i915#5286]) -> [SKIP][431] ([i915#5286]) [430]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html [431]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180: - shard-rkl: [SKIP][432] ([i915#5286]) -> [SKIP][433] ([i915#14544] / [i915#5286]) +1 other test skip [432]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html [433]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip: - shard-rkl: [SKIP][434] ([i915#3828]) -> [SKIP][435] ([i915#14544] / [i915#3828]) [434]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-8/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html [435]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs: - shard-dg1: [SKIP][436] ([i915#6095]) -> [SKIP][437] ([i915#4423] / [i915#6095]) +1 other test skip [436]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg1-16/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs.html [437]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-16/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-mc-ccs.html * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs: - shard-rkl: [SKIP][438] ([i915#12313]) -> [SKIP][439] ([i915#12313] / [i915#14544]) [438]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-8/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html [439]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2: - shard-rkl: [SKIP][440] ([i915#14544] / [i915#6095]) -> [SKIP][441] ([i915#6095]) +2 other tests skip [440]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2.html [441]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-7/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-2.html * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs: - shard-glk: [INCOMPLETE][442] ([i915#14694] / [i915#15582]) -> [INCOMPLETE][443] ([i915#15582]) +1 other test incomplete [442]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-glk1/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html [443]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-glk9/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc: - shard-rkl: [SKIP][444] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][445] ([i915#14098] / [i915#6095]) +5 other tests skip [444]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc.html [445]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc.html * igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs: - shard-rkl: [SKIP][446] ([i915#14098] / [i915#6095]) -> [SKIP][447] ([i915#14098] / [i915#14544] / [i915#6095]) +1 other test skip [446]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-2/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs.html [447]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs.html * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs: - shard-rkl: [SKIP][448] ([i915#12313] / [i915#14544]) -> [SKIP][449] ([i915#12313]) +1 other test skip [448]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html [449]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-8/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html * igt@kms_cdclk@mode-transition-all-outputs: - shard-rkl: [SKIP][450] ([i915#3742]) -> [SKIP][451] ([i915#14544] / [i915#3742]) [450]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-2/igt@kms_cdclk@mode-transition-all-outputs.html [451]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_cdclk@mode-transition-all-outputs.html * igt@kms_chamelium_frames@hdmi-frame-dump: - shard-rkl: [SKIP][452] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][453] ([i915#11151] / [i915#7828]) +2 other tests skip [452]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_chamelium_frames@hdmi-frame-dump.html [453]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_chamelium_frames@hdmi-frame-dump.html * igt@kms_chamelium_hpd@vga-hpd-for-each-pipe: - shard-rkl: [SKIP][454] ([i915#11151] / [i915#7828]) -> [SKIP][455] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip [454]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-8/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html [455]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html * igt@kms_content_protection@content-type-change: - shard-dg2: [ABORT][456] ([i915#13562]) -> [SKIP][457] ([i915#15865]) [456]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-8/igt@kms_content_protection@content-type-change.html [457]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-8/igt@kms_content_protection@content-type-change.html * igt@kms_cursor_crc@cursor-random-512x170: - shard-rkl: [SKIP][458] ([i915#13049]) -> [SKIP][459] ([i915#13049] / [i915#14544]) [458]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-3/igt@kms_cursor_crc@cursor-random-512x170.html [459]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_cursor_crc@cursor-random-512x170.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - shard-rkl: [SKIP][460] ([i915#4103]) -> [SKIP][461] ([i915#14544] / [i915#4103]) [460]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html [461]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_dp_link_training@uhbr-sst: - shard-rkl: [SKIP][462] ([i915#13748] / [i915#14544]) -> [SKIP][463] ([i915#13748]) [462]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_dp_link_training@uhbr-sst.html [463]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_dp_link_training@uhbr-sst.html * igt@kms_dsc@dsc-with-bpc-formats-bigjoiner: - shard-rkl: [SKIP][464] ([i915#16361]) -> [SKIP][465] ([i915#14544] / [i915#16361]) [464]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-5/igt@kms_dsc@dsc-with-bpc-formats-bigjoiner.html [465]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_dsc@dsc-with-bpc-formats-bigjoiner.html * igt@kms_flip@2x-flip-vs-dpms: - shard-rkl: [SKIP][466] ([i915#9934]) -> [SKIP][467] ([i915#14544] / [i915#9934]) +4 other tests skip [466]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-4/igt@kms_flip@2x-flip-vs-dpms.html [467]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_flip@2x-flip-vs-dpms.html * igt@kms_flip@2x-plain-flip-ts-check: - shard-rkl: [SKIP][468] ([i915#14544] / [i915#9934]) -> [SKIP][469] ([i915#9934]) +2 other tests skip [468]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_flip@2x-plain-flip-ts-check.html [469]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_flip@2x-plain-flip-ts-check.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling: - shard-rkl: [SKIP][470] ([i915#14544] / [i915#15643]) -> [SKIP][471] ([i915#15643]) [470]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html [471]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling: - shard-rkl: [SKIP][472] ([i915#15643]) -> [SKIP][473] ([i915#14544] / [i915#15643]) [472]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html [473]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite: - shard-rkl: [SKIP][474] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][475] ([i915#15102] / [i915#3023]) +3 other tests skip [474]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html [475]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt: - shard-dg2: [SKIP][476] ([i915#10433] / [i915#15102]) -> [SKIP][477] ([i915#15102]) +1 other test skip [476]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html [477]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt: - shard-rkl: [SKIP][478] ([i915#14544] / [i915#1825]) -> [SKIP][479] ([i915#1825]) +2 other tests skip [478]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt.html [479]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc: - shard-rkl: [SKIP][480] ([i915#15102] / [i915#3023]) -> [SKIP][481] ([i915#14544] / [i915#15102] / [i915#3023]) +8 other tests skip [480]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html [481]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-mmap-cpu: - shard-rkl: [SKIP][482] ([i915#15102]) -> [SKIP][483] ([i915#14544] / [i915#15102]) +10 other tests skip [482]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-mmap-cpu.html [483]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-gtt: - shard-rkl: [SKIP][484] ([i915#14544] / [i915#15102]) -> [SKIP][485] ([i915#15102]) +7 other tests skip [484]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-gtt.html [485]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt: - shard-dg2: [SKIP][486] ([i915#15102]) -> [SKIP][487] ([i915#10433] / [i915#15102]) +1 other test skip [486]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html [487]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt: - shard-rkl: [SKIP][488] ([i915#1825]) -> [SKIP][489] ([i915#14544] / [i915#1825]) +1 other test skip [488]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt.html [489]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt: - shard-rkl: [SKIP][490] -> [SKIP][491] ([i915#14544]) +33 other tests skip [490]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html [491]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-pwrite: - shard-dg1: [SKIP][492] -> [SKIP][493] ([i915#4423]) [492]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-pwrite.html [493]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-16/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-pwrite.html * igt@kms_hdr@brightness-with-hdr: - shard-rkl: [SKIP][494] ([i915#12713]) -> [SKIP][495] ([i915#1187] / [i915#12713]) [494]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-5/igt@kms_hdr@brightness-with-hdr.html [495]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_hdr@brightness-with-hdr.html * igt@kms_hdr@static-toggle-suspend: - shard-rkl: [INCOMPLETE][496] ([i915#15436]) -> [SKIP][497] ([i915#3555] / [i915#8228]) [496]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_hdr@static-toggle-suspend.html [497]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-3/igt@kms_hdr@static-toggle-suspend.html * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner: - shard-rkl: [SKIP][498] ([i915#15638] / [i915#15722]) -> [SKIP][499] ([i915#14544] / [i915#15638] / [i915#15722]) [498]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-4/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html [499]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html * igt@kms_mst@mst-suspend-read-crc: - shard-rkl: [SKIP][500] ([i915#16451]) -> [SKIP][501] ([i915#14544] / [i915#16451]) [500]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-2/igt@kms_mst@mst-suspend-read-crc.html [501]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_mst@mst-suspend-read-crc.html * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier: - shard-rkl: [SKIP][502] ([i915#15709]) -> [SKIP][503] ([i915#14544] / [i915#15709]) +2 other tests skip [502]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-4/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier.html [503]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier.html * igt@kms_pm_backlight@brightness-with-dpms: - shard-rkl: [SKIP][504] ([i915#12343]) -> [SKIP][505] ([i915#12343] / [i915#14544]) [504]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@kms_pm_backlight@brightness-with-dpms.html [505]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_pm_backlight@brightness-with-dpms.html * igt@kms_pm_dc@dc5-psr: - shard-rkl: [SKIP][506] ([i915#15948]) -> [SKIP][507] ([i915#14544] / [i915#15948]) [506]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@kms_pm_dc@dc5-psr.html [507]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_pm_dc@dc5-psr.html * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf: - shard-rkl: [SKIP][508] ([i915#11520]) -> [SKIP][509] ([i915#11520] / [i915#14544]) +3 other tests skip [508]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html [509]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf: - shard-rkl: [SKIP][510] ([i915#11520] / [i915#14544]) -> [SKIP][511] ([i915#11520]) +1 other test skip [510]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html [511]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html * igt@kms_psr2_su@frontbuffer-xrgb8888: - shard-rkl: [SKIP][512] ([i915#9683]) -> [SKIP][513] ([i915#14544] / [i915#9683]) [512]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-3/igt@kms_psr2_su@frontbuffer-xrgb8888.html [513]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_psr2_su@frontbuffer-xrgb8888.html * igt@kms_psr@fbc-pr-sprite-plane-onoff: - shard-rkl: [SKIP][514] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][515] ([i915#1072] / [i915#9732]) +3 other tests skip [514]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_psr@fbc-pr-sprite-plane-onoff.html [515]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-5/igt@kms_psr@fbc-pr-sprite-plane-onoff.html * igt@kms_psr@psr2-cursor-mmap-gtt: - shard-rkl: [SKIP][516] ([i915#1072] / [i915#9732]) -> [SKIP][517] ([i915#1072] / [i915#14544] / [i915#9732]) +7 other tests skip [516]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@kms_psr@psr2-cursor-mmap-gtt.html [517]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@kms_psr@psr2-cursor-mmap-gtt.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-rkl: [SKIP][518] ([i915#14544] / [i915#15949]) -> [SKIP][519] ([i915#15949]) [518]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html [519]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-4/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@kms_setmode@basic-clone-single-crtc: - shard-rkl: [SKIP][520] ([i915#14544] / [i915#3555]) -> [SKIP][521] ([i915#3555]) +1 other test skip [520]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-6/igt@kms_setmode@basic-clone-single-crtc.html [521]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-1/igt@kms_setmode@basic-clone-single-crtc.html * igt@perf_pmu@module-unload: - shard-dg2: [ABORT][522] ([i915#15778]) -> [ABORT][523] ([i915#13029] / [i915#15778]) [522]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg2-5/igt@perf_pmu@module-unload.html [523]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg2-7/igt@perf_pmu@module-unload.html - shard-dg1: [ABORT][524] ([i915#15778]) -> [ABORT][525] ([i915#13029] / [i915#15778]) [524]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-dg1-13/igt@perf_pmu@module-unload.html [525]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-dg1-15/igt@perf_pmu@module-unload.html - shard-tglu: [ABORT][526] ([i915#13029] / [i915#15778]) -> [ABORT][527] ([i915#15778]) [526]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-tglu-9/igt@perf_pmu@module-unload.html [527]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-tglu-5/igt@perf_pmu@module-unload.html * igt@prime_udl@share-import: - shard-rkl: [SKIP][528] ([i915#16420]) -> [SKIP][529] ([i915#14544] / [i915#16420]) [528]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18726/shard-rkl-7/igt@prime_udl@share-import.html [529]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/shard-rkl-6/igt@prime_udl@share-import.html [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#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#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078 [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151 [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520 [i915#118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/118 [i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187 [i915#11965]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11965 [i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169 [i915#12177]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12177 [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#12469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12469 [i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257 [i915#12655]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12655 [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713 [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745 [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755 [i915#12756]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12756 [i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761 [i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964 [i915#13008]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13008 [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#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179 [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356 [i915#13363]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13363 [i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398 [i915#13476]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13476 [i915#13562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13562 [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566 [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707 [i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748 [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#14152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14152 [i915#14242]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14242 [i915#14259]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14259 [i915#14412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14412 [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544 [i915#14600]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14600 [i915#14694]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14694 [i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712 [i915#14888]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14888 [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#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131 [i915#15140]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15140 [i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329 [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330 [i915#15342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15342 [i915#15436]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15436 [i915#15453]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15453 [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458 [i915#15460]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15460 [i915#15500]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15500 [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582 [i915#15638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15638 [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643 [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#15778]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15778 [i915#15804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15804 [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#16081]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16081 [i915#16109]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16109 [i915#16182]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16182 [i915#16184]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16184 [i915#16229]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16229 [i915#16236]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16236 [i915#16276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16276 [i915#16348]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16348 [i915#16361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16361 [i915#16386]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16386 [i915#16420]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16420 [i915#16451]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16451 [i915#16464]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16464 [i915#16466]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16466 [i915#16471]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16471 [i915#16523]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16523 [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769 [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825 [i915#2065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2065 [i915#2435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2435 [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#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#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804 [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828 [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077 [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083 [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103 [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270 [i915#4387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4387 [i915#4391]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4391 [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423 [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525 [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538 [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613 [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817 [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#4873]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4873 [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#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289 [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354 [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439 [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095 [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113 [i915#6230]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6230 [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#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953 [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697 [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707 [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828 [i915#7882]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7882 [i915#7975]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7975 [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228 [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#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555 [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708 [i915#8810]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8810 [i915#8813]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8813 [i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814 [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323 [i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337 [i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531 [i915#9561]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9561 [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#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766 [i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809 [i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878 [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_8988 -> IGTPW_15453 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_18726: 03288b34f48c3fe60055353c30da4aacab572cdc @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_15453: 15453 IGT_8988: 8988 piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_15453/index.html [-- Attachment #2: Type: text/html, Size: 179310 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* ✗ Xe.CI.FULL: failure for series starting with [1/7] lib: Add vendor-agnostic platform filtering interface 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak ` (8 preceding siblings ...) 2026-06-30 13:14 ` ✗ i915.CI.Full: failure " Patchwork @ 2026-06-30 17:19 ` Patchwork 2026-07-02 12:23 ` [PATCH 1/7] " Kamil Konieczny 10 siblings, 0 replies; 20+ messages in thread From: Patchwork @ 2026-06-30 17:19 UTC (permalink / raw) To: vitaly.prosyak; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 28011 bytes --] == Series Details == Series: series starting with [1/7] lib: Add vendor-agnostic platform filtering interface URL : https://patchwork.freedesktop.org/series/169463/ State : failure == Summary == CI Bug Log - changes from XEIGT_8988_FULL -> XEIGTPW_15453_FULL ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with XEIGTPW_15453_FULL absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in XEIGTPW_15453_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_15453_FULL: ### IGT changes ### #### Possible regressions #### * igt@xe_sriov_scheduling@equal-throughput-low-priority@numvfs-random-gt1-vcs0: - shard-bmg: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-5/igt@xe_sriov_scheduling@equal-throughput-low-priority@numvfs-random-gt1-vcs0.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@xe_sriov_scheduling@equal-throughput-low-priority@numvfs-random-gt1-vcs0.html Known issues ------------ Here are the changes found in XEIGTPW_15453_FULL that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_big_fb@4-tiled-64bpp-rotate-90: - shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2327]) [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-8/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip: - shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#1124]) +2 other tests skip [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html * igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p: - shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#7679]) [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-7/igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p.html * igt@kms_bw@linear-tiling-2-displays-target-2560x1440p: - shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#367]) +1 other test skip [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-1/igt@kms_bw@linear-tiling-2-displays-target-2560x1440p.html * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs: - shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2887]) +4 other tests skip [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-1/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs.html * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs: - shard-bmg: [PASS][8] -> [INCOMPLETE][9] ([Intel XE#7084] / [Intel XE#8150]) +1 other test incomplete [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-4/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-9/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html * igt@kms_chamelium_color@ctm-green-to-red: - shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#2325] / [Intel XE#7358]) [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-6/igt@kms_chamelium_color@ctm-green-to-red.html * igt@kms_chamelium_color_pipeline@plane-ctm3x4-lut1d: - shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#7358]) [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-9/igt@kms_chamelium_color_pipeline@plane-ctm3x4-lut1d.html * igt@kms_chamelium_frames@dp-crc-fast: - shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#2252]) +2 other tests skip [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-8/igt@kms_chamelium_frames@dp-crc-fast.html * igt@kms_content_protection@atomic-hdcp14: - shard-bmg: NOTRUN -> [FAIL][13] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@kms_content_protection@atomic-hdcp14.html * igt@kms_cursor_crc@cursor-offscreen-512x170: - shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#2321] / [Intel XE#7355]) [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-3/igt@kms_cursor_crc@cursor-offscreen-512x170.html * igt@kms_cursor_crc@cursor-onscreen-256x85: - shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#2320]) +1 other test skip [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-9/igt@kms_cursor_crc@cursor-onscreen-256x85.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle: - shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#2286] / [Intel XE#6035]) [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-9/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html * igt@kms_dsc@dsc-fractional-bpp-with-bpc-bigjoiner: - shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#8265]) [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-6/igt@kms_dsc@dsc-fractional-bpp-with-bpc-bigjoiner.html * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area: - shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#4422] / [Intel XE#7442]) [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html * igt@kms_fbcon_fbt@fbc: - shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#4156] / [Intel XE#7425]) [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-5/igt@kms_fbcon_fbt@fbc.html * igt@kms_feature_discovery@psr2: - shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#2374] / [Intel XE#6128]) [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-9/igt@kms_feature_discovery@psr2.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1: - shard-lnl: [PASS][21] -> [FAIL][22] ([Intel XE#301] / [Intel XE#3149]) [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html * igt@kms_flip@flip-vs-expired-vblank@b-edp1: - shard-lnl: [PASS][23] -> [FAIL][24] ([Intel XE#301]) [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html * igt@kms_flip_scaled_crc@flip-32bpp-yuv-linear-to-32bpp-yuv-linear-reflect-x: - shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#7179]) [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-9/igt@kms_flip_scaled_crc@flip-32bpp-yuv-linear-to-32bpp-yuv-linear-reflect-x.html * igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-blt: - shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#7061] / [Intel XE#7356]) +2 other tests skip [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-blt.html * igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render: - shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#2311]) +22 other tests skip [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc: - shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#4141]) +6 other tests skip [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcdrrshdr-argb161616f-draw-render: - shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#7061]) +3 other tests skip [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrshdr-argb161616f-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-cur-indfb-move: - shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#2313]) +18 other tests skip [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-cur-indfb-move.html * igt@kms_hdmi_inject@inject-audio: - shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#7308]) [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-10/igt@kms_hdmi_inject@inject-audio.html * igt@kms_joiner@basic-max-non-joiner: - shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#4298] / [Intel XE#5873]) [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-1/igt@kms_joiner@basic-max-non-joiner.html * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier-source-clamping: - shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#7283]) [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-1/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier-source-clamping.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75: - shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#2763] / [Intel XE#6886]) +4 other tests skip [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html * igt@kms_pm_dc@dc3co-vpb-simulation@pr: - shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#8395]) +1 other test skip [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-7/igt@kms_pm_dc@dc3co-vpb-simulation@pr.html * igt@kms_pm_dc@dc3co-vpb-simulation@psr2: - shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#8396]) [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-7/igt@kms_pm_dc@dc3co-vpb-simulation@psr2.html * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf: - shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#1489]) +2 other tests skip [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-3/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf.html * igt@kms_psr@fbc-pr-no-drrs: - shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-9/igt@kms_psr@fbc-pr-no-drrs.html * igt@kms_psr_stress_test@invalidate-primary-flip-overlay: - shard-lnl: [PASS][39] -> [SKIP][40] ([Intel XE#8361]) [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-lnl-4/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-lnl-6/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html * igt@kms_vrr@seamless-rr-switch-virtual: - shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#1499]) [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@kms_vrr@seamless-rr-switch-virtual.html * igt@xe_eudebug@basic-vm-bind-ufence-reconnect: - shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#7636]) +4 other tests skip [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-3/igt@xe_eudebug@basic-vm-bind-ufence-reconnect.html * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr: - shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#2322] / [Intel XE#7372]) +6 other tests skip [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html * igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate: - shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#8374]) +1 other test skip [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-4/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate.html * igt@xe_exec_multi_queue@two-queues-basic-smem: - shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#8364]) +9 other tests skip [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-10/igt@xe_exec_multi_queue@two-queues-basic-smem.html * igt@xe_exec_reset@long-spin-many-preempt-gt0-threads: - shard-bmg: [PASS][46] -> [FAIL][47] ([Intel XE#7956]) [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-1/igt@xe_exec_reset@long-spin-many-preempt-gt0-threads.html [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-3/igt@xe_exec_reset@long-spin-many-preempt-gt0-threads.html * igt@xe_exec_reset@long-spin-sys-reuse-many-preempt-threads: - shard-bmg: [PASS][48] -> [FAIL][49] ([Intel XE#7850]) [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-10/igt@xe_exec_reset@long-spin-sys-reuse-many-preempt-threads.html [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@xe_exec_reset@long-spin-sys-reuse-many-preempt-threads.html * igt@xe_exec_reset@multi-queue-cancel: - shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#8369]) [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-8/igt@xe_exec_reset@multi-queue-cancel.html * igt@xe_exec_system_allocator@threads-shared-vm-many-stride-malloc-nomemset: - shard-bmg: [PASS][51] -> [ABORT][52] ([Intel XE#8007]) [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-10/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-malloc-nomemset.html [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-7/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-malloc-nomemset.html - shard-lnl: [PASS][53] -> [ABORT][54] ([Intel XE#8007]) [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-lnl-3/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-malloc-nomemset.html [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-lnl-7/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-malloc-nomemset.html * igt@xe_exec_threads@threads-multi-queue-userptr: - shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#8378]) +3 other tests skip [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@xe_exec_threads@threads-multi-queue-userptr.html * igt@xe_multigpu_svm@mgpu-concurrent-access-prefetch: - shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#6964]) [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-8/igt@xe_multigpu_svm@mgpu-concurrent-access-prefetch.html * igt@xe_non_msix@walker-interrupt-notification-non-msix: - shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#7622]) [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-1/igt@xe_non_msix@walker-interrupt-notification-non-msix.html * igt@xe_peer2peer@write: - shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#2427] / [Intel XE#6953] / [Intel XE#7326] / [Intel XE#7353]) [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-6/igt@xe_peer2peer@write.html * igt@xe_sriov_flr@flr-each-isolation: - shard-bmg: [PASS][59] -> [FAIL][60] ([Intel XE#6569]) [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-3/igt@xe_sriov_flr@flr-each-isolation.html [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-5/igt@xe_sriov_flr@flr-each-isolation.html * igt@xe_sriov_scheduling@equal-throughput-low-priority: - shard-bmg: [PASS][61] -> [FAIL][62] ([Intel XE#7992]) +1 other test fail [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-5/igt@xe_sriov_scheduling@equal-throughput-low-priority.html [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@xe_sriov_scheduling@equal-throughput-low-priority.html #### Possible fixes #### * igt@kms_cursor_legacy@flip-vs-cursor-atomic: - shard-bmg: [FAIL][63] ([Intel XE#7571]) -> [PASS][64] [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-10/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-5/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1: - shard-lnl: [FAIL][65] ([Intel XE#301]) -> [PASS][66] +1 other test pass [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html * igt@kms_hdr@invalid-hdr: - shard-bmg: [SKIP][67] ([Intel XE#1503]) -> [PASS][68] [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-5/igt@kms_hdr@invalid-hdr.html [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-6/igt@kms_hdr@invalid-hdr.html * igt@kms_pm_dc@dc6-psr: - shard-lnl: [FAIL][69] ([Intel XE#8399]) -> [PASS][70] [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-lnl-2/igt@kms_pm_dc@dc6-psr.html [70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-lnl-8/igt@kms_pm_dc@dc6-psr.html * igt@xe_compute_preempt@compute-preempt-many-vram-evict@engine-drm_xe_engine_class_compute: - shard-bmg: [ABORT][71] -> [PASS][72] +1 other test pass [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-3/igt@xe_compute_preempt@compute-preempt-many-vram-evict@engine-drm_xe_engine_class_compute.html [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-5/igt@xe_compute_preempt@compute-preempt-many-vram-evict@engine-drm_xe_engine_class_compute.html * igt@xe_exec_reset@long-spin-comp-reuse-many-preempt-threads: - shard-bmg: [FAIL][73] ([Intel XE#7850]) -> [PASS][74] [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-9/igt@xe_exec_reset@long-spin-comp-reuse-many-preempt-threads.html [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-7/igt@xe_exec_reset@long-spin-comp-reuse-many-preempt-threads.html * igt@xe_sriov_scheduling@equal-throughput-normal-priority@numvfs-random-gt0-rcs0: - shard-bmg: [FAIL][75] ([Intel XE#7992]) -> [PASS][76] +1 other test pass [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-10/igt@xe_sriov_scheduling@equal-throughput-normal-priority@numvfs-random-gt0-rcs0.html [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@xe_sriov_scheduling@equal-throughput-normal-priority@numvfs-random-gt0-rcs0.html * igt@xe_sriov_scheduling@equal-throughput-normal-priority@numvfs-random-gt1-vcs0: - shard-bmg: [FAIL][77] ([Intel XE#8526]) -> [PASS][78] [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-10/igt@xe_sriov_scheduling@equal-throughput-normal-priority@numvfs-random-gt1-vcs0.html [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@xe_sriov_scheduling@equal-throughput-normal-priority@numvfs-random-gt1-vcs0.html * igt@xe_wedged@wedged-mode-toggle: - shard-bmg: [ABORT][79] ([Intel XE#8007]) -> [PASS][80] [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-3/igt@xe_wedged@wedged-mode-toggle.html [80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-7/igt@xe_wedged@wedged-mode-toggle.html #### Warnings #### * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions: - shard-lnl: [SKIP][81] ([Intel XE#309] / [Intel XE#7343] / [Intel XE#7935]) -> [SKIP][82] ([Intel XE#309] / [Intel XE#7343]) [81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-lnl-8/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-lnl-3/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html * igt@kms_flip@flip-vs-expired-vblank-interruptible: - shard-lnl: [FAIL][83] ([Intel XE#301]) -> [FAIL][84] ([Intel XE#301] / [Intel XE#3149]) [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html * igt@kms_hdr@brightness-with-hdr: - shard-bmg: [SKIP][85] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][86] ([Intel XE#3544]) [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html [86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-9/igt@kms_hdr@brightness-with-hdr.html * igt@kms_tiled_display@basic-test-pattern-with-chamelium: - shard-bmg: [SKIP][87] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][88] ([Intel XE#2426] / [Intel XE#5848]) [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8988/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/shard-bmg-2/igt@kms_tiled_display@basic-test-pattern-with-chamelium.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#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#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234 [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252 [Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286 [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#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321 [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#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327 [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374 [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426 [Intel XE#2427]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2427 [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509 [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#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309 [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149 [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304 [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374 [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#4156]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4156 [Intel XE#4298]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4298 [Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422 [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848 [Intel XE#5873]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5873 [Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035 [Intel XE#6128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6128 [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569 [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886 [Intel XE#6953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6953 [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964 [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#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179 [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#7326]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7326 [Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343 [Intel XE#7353]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7353 [Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355 [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356 [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358 [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#7425]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7425 [Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437 [Intel XE#7442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7442 [Intel XE#7571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7571 [Intel XE#7622]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7622 [Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636 [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679 [Intel XE#7850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7850 [Intel XE#7935]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7935 [Intel XE#7956]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7956 [Intel XE#7992]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7992 [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007 [Intel XE#8150]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8150 [Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265 [Intel XE#8361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8361 [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364 [Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369 [Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374 [Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378 [Intel XE#8395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8395 [Intel XE#8396]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8396 [Intel XE#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399 [Intel XE#8526]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8526 Build changes ------------- * IGT: IGT_8988 -> IGTPW_15453 * Linux: xe-5304-b9aebfff5a3c5049500a7bd4573815090a425f34 -> xe-5306-03288b34f48c3fe60055353c30da4aacab572cdc IGTPW_15453: 15453 IGT_8988: 8988 xe-5304-b9aebfff5a3c5049500a7bd4573815090a425f34: b9aebfff5a3c5049500a7bd4573815090a425f34 xe-5306-03288b34f48c3fe60055353c30da4aacab572cdc: 03288b34f48c3fe60055353c30da4aacab572cdc == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_15453/index.html [-- Attachment #2: Type: text/html, Size: 30843 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak ` (9 preceding siblings ...) 2026-06-30 17:19 ` ✗ Xe.CI.FULL: " Patchwork @ 2026-07-02 12:23 ` Kamil Konieczny 10 siblings, 0 replies; 20+ messages in thread From: Kamil Konieczny @ 2026-07-02 12:23 UTC (permalink / raw) To: vitaly.prosyak; +Cc: igt-dev Hi vitaly.prosyak, On 2026-06-29 at 23:23:20 -0400, vitaly.prosyak@amd.com wrote: > From: Vitaly Prosyak <vitaly.prosyak@amd.com> > > Define the generic platform filtering API that allows any vendor to > plug in platform-specific test skipping logic via callbacks. > > Key design elements: > - struct platform_filter_ops: vendor callback interface > - struct platform_skip_entry: vendor-neutral skip rule representation > - enum skip_source: three-tier priority (built-in, config, env) > - API functions: init, should_skip, require, dump > > Platform filtering is automatic - tests only need to call > platform_filter_init() once in igt_fixture. The IGT framework > automatically checks each subtest before execution via __igt_run_subtest(). > > Example usage: > igt_fixture { > vendor_platform_filter_init(platform_info); > } > > igt_subtest("test") { > // Automatic filtering - no manual call needed! > test_code(); > } > > Addresses feedback from reviewers: > > 1. Jani Nikula: > "I would have expected an attempt to make an IGT shared filtering > system generic enough to plug into any vendor's platforms." > > Resolution: Implemented vendor-agnostic callback-based design via > platform_filter_ops structure. Any vendor (Intel, AMD, Qualcomm, etc.) > can provide their own backend without modifying core framework. > > 2. Kamil Konieczny: > a) "Add also example with config file as env vars are not convenient > for large tests lists" > > Resolution: Comprehensive documentation added in commit 6 > (docs/platform_filtering.md) showing config file as RECOMMENDED > method with real-world examples, wildcards, and best practices. > > b) "imho you can get test name in require, no need to repeat it" > > Resolution: Went further - v3 removes igt_platform_require() > entirely. Filtering is now automatic via __igt_run_subtest() hook > in commit 5. Zero manual calls needed in subtests. > > c) Code style (include order, alignment, igt_debug vs igt_info) > > Resolution: Fixed in commits 2 and 4. Includes alphabetically > ordered, SPDX headers use // style, checkpatch clean. > > 3. Multi-GPU support (integrated + discrete): > Current design queries platform once in igt_fixture. For multi-GPU > scenarios, tests can call platform_filter_init() per-device with > device-specific platform_info. > > Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> > Change-Id: I370aa9f91b9d23e0fb79f3f04d8edb5cd4c57460 > --- > lib/igt_platform_filter.h | 123 ++++++++++++++++++++++++++++++++++++++ > 1 file changed, 123 insertions(+) > create mode 100644 lib/igt_platform_filter.h > > diff --git a/lib/igt_platform_filter.h b/lib/igt_platform_filter.h > new file mode 100644 > index 000000000..e532c6de7 > --- /dev/null > +++ b/lib/igt_platform_filter.h > @@ -0,0 +1,123 @@ > +/* SPDX-License-Identifier: MIT > + * Copyright 2026 Advanced Micro Devices, Inc. > + */ > + > +#ifndef IGT_PLATFORM_FILTER_H > +#define IGT_PLATFORM_FILTER_H > + > +#include <stdbool.h> > + > +/** > + * SECTION: igt_platform_filter > + * @short_description: Generic platform-based test filtering framework > + * @title: Platform Filter > + * @include: igt_platform_filter.h > + * > + * Generic test filtering system that allows skipping tests/subtests based > + * on platform characteristics. Designed to be vendor-agnostic with > + * vendor-specific backends. > + * > + * Three-tier priority system (checked in sequence, first match wins): > + * 1. PRODUCTION: Built-in compile-time rules (vendor-specific) > + * 2. DEVELOPMENT: Config file /etc/igt/platform_skip.conf > + * 3. RUNTIME: Environment variable IGT_PLATFORM_SKIP_CONFIG > + * > + * Vendor Implementation: > + * Each vendor implements platform_filter_ops callbacks to provide: > + * - Platform identification and matching logic > + * - Platform-specific data structures > + * - Built-in skip rules > + * > + * Usage in tests: > + * igt_fixture() { > + * igt_platform_filter_init(vendor_ops, platform_info); > + * } > + * > + * igt_subtest("my-test") { > + * // Automatic filtering - no manual call needed! > + * test_code(); > + * } > + * > + * Config file format (/etc/igt/platform_skip.conf): > + * # Lines starting with # are comments > + * # Format: platform:test:subtest:reason > + * # Use * as wildcard > + * > + * navi48:*:*:All tests disabled on Navi48 > + * alderlake:i915_pm:*:Power management tests broken > + * > + * Environment variable format (IGT_PLATFORM_SKIP_CONFIG): > + * Same as config file, semicolon-separated entries: > + * export IGT_PLATFORM_SKIP_CONFIG="navi48:*:*:Testing;navi10:amd_basic:*:Broken" > + */ > + > +/* Maximum platform ranges per skip entry */ > +#define MAX_PLATFORM_RANGES 4 > + > +/** > + * enum skip_source - Source of skip rule > + */ > +enum skip_source { > + SKIP_SOURCE_BUILTIN, /* From vendor built-in array */ > + SKIP_SOURCE_CONFIG, /* From /etc/igt/platform_skip.conf */ > + SKIP_SOURCE_ENV, /* From IGT_PLATFORM_SKIP_CONFIG */ > + SKIP_SOURCE_NONE, /* Not skipped */ > +}; > + > +/** > + * struct platform_skip_entry - Generic skip rule entry > + * > + * Generic structure for skip rules. Vendor-specific data is stored > + * in platform_data field and interpreted by vendor callbacks. > + */ > +struct platform_skip_entry { > + const char *test_name; /* Test binary name or "*" for all */ > + const char *subtest_glob; /* Subtest pattern (fnmatch) or "*" */ > + const char *reason; /* Human-readable reason (required) */ > + void *platform_data; /* Vendor-specific platform matching data */ > +}; > + > +/** > + * struct platform_filter_ops - Vendor-specific operations > + * > + * Callback structure that vendors implement to provide platform-specific > + * filtering logic. This allows the core filtering framework to remain > + * vendor-agnostic. > + */ > +struct platform_filter_ops { > + /** @name: Vendor name (e.g., "amd", "intel") */ > + > + const char *name; > + > + /** @get_platform_name: Get current platform name */ > + const char *(*get_platform_name)(const void *platform_info); > + > + /** @match_platform: Check if skip entry matches current platform */ > + bool (*match_platform)(const void *platform_info, const void *platform_data); > + > + /** @parse_platform_config: Parse platform string from config file */ > + bool (*parse_platform_config)(const char *platform_str, void **platform_data_out); > + > + /** @get_builtin_rules: Get vendor-specific built-in skip rules */ > + const struct platform_skip_entry *(*get_builtin_rules)(int *count_out); > + > + /** @dump_platform_data: Dump platform_data for debugging (optional) */ > + void (*dump_platform_data)(const void *platform_data); > +}; > + > +/* Function prototypes - see igt_platform_filter.c for documentation */ No need for this comment. > +void igt_platform_filter_init(const struct platform_filter_ops *ops, > + const void *platform_info); Please squash this into second patch, Regards, Kamil > + > +void igt_platform_require(const char *subtest_name); > + > +bool igt_platform_should_skip(const char *test_name, > + const char *subtest_name, > + enum skip_source *source, > + const char **reason); > + > +void igt_platform_filter_dump(void); > + > +int igt_platform_filter_dump_to_file(const char *filename); > + > +#endif /* IGT_PLATFORM_FILTER_H */ > -- > 2.54.0 > ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface
@ 2026-07-03 14:08 vitaly.prosyak
2026-07-03 14:08 ` [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend vitaly.prosyak
0 siblings, 1 reply; 20+ messages in thread
From: vitaly.prosyak @ 2026-07-03 14:08 UTC (permalink / raw)
To: igt-dev
Cc: Vitaly Prosyak, Kamil Konieczny, Jani Nikula, Jesse Zhang,
Christian König, Alex Deucher, Krzysztof Karas
From: Vitaly Prosyak <vitaly.prosyak@amd.com>
Define the generic platform filtering API that allows any vendor to
plug in platform-specific test skipping logic via callbacks.
Key design elements:
- struct platform_filter_ops: vendor callback interface
- struct platform_skip_entry: vendor-neutral skip rule representation
- enum skip_source: three-tier priority (built-in, config, env)
- API functions: init, should_skip, require, dump
Platform filtering is automatic - tests only need to call
platform_filter_init() once in igt_fixture. The IGT framework
automatically checks each subtest before execution via __igt_run_subtest().
Example usage:
igt_fixture {
vendor_platform_filter_init(platform_info);
}
igt_subtest("test") {
// Automatic filtering - no manual call needed!
test_code();
}
Addresses feedback from reviewers:
1. Jani Nikula:
"I would have expected an attempt to make an IGT shared filtering
system generic enough to plug into any vendor's platforms."
Resolution: Implemented vendor-agnostic callback-based design via
platform_filter_ops structure. Any vendor (Intel, AMD, Qualcomm, etc.)
can provide their own backend without modifying core framework.
2. Kamil Konieczny:
a) "Add also example with config file as env vars are not convenient
for large tests lists"
Resolution: Comprehensive documentation added in commit 6
(docs/platform_filtering.md) showing config file as RECOMMENDED
method with real-world examples, wildcards, and best practices.
b) "imho you can get test name in require, no need to repeat it"
Resolution: Went further - v3 removes igt_platform_require()
entirely. Filtering is now automatic via __igt_run_subtest() hook
in commit 5. Zero manual calls needed in subtests.
c) Code style (include order, alignment, igt_debug vs igt_info)
Resolution: Fixed in commits 2 and 4. Includes alphabetically
ordered, SPDX headers use // style, checkpatch clean.
3. Multi-GPU support (integrated + discrete):
Current design queries platform once in igt_fixture. For multi-GPU
scenarios, tests can call platform_filter_init() per-device with
device-specific platform_info.
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Jesse Zhang <jesse.zhang@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Krzysztof Karas <krzysztof.karas@intel.com>
Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Change-Id: I370aa9f91b9d23e0fb79f3f04d8edb5cd4c57460
---
lib/igt_platform_filter.h | 123 ++++++++++++++++++++++++++++++++++++++
1 file changed, 123 insertions(+)
create mode 100644 lib/igt_platform_filter.h
diff --git a/lib/igt_platform_filter.h b/lib/igt_platform_filter.h
new file mode 100644
index 000000000..e532c6de7
--- /dev/null
+++ b/lib/igt_platform_filter.h
@@ -0,0 +1,123 @@
+/* SPDX-License-Identifier: MIT
+ * Copyright 2026 Advanced Micro Devices, Inc.
+ */
+
+#ifndef IGT_PLATFORM_FILTER_H
+#define IGT_PLATFORM_FILTER_H
+
+#include <stdbool.h>
+
+/**
+ * SECTION: igt_platform_filter
+ * @short_description: Generic platform-based test filtering framework
+ * @title: Platform Filter
+ * @include: igt_platform_filter.h
+ *
+ * Generic test filtering system that allows skipping tests/subtests based
+ * on platform characteristics. Designed to be vendor-agnostic with
+ * vendor-specific backends.
+ *
+ * Three-tier priority system (checked in sequence, first match wins):
+ * 1. PRODUCTION: Built-in compile-time rules (vendor-specific)
+ * 2. DEVELOPMENT: Config file /etc/igt/platform_skip.conf
+ * 3. RUNTIME: Environment variable IGT_PLATFORM_SKIP_CONFIG
+ *
+ * Vendor Implementation:
+ * Each vendor implements platform_filter_ops callbacks to provide:
+ * - Platform identification and matching logic
+ * - Platform-specific data structures
+ * - Built-in skip rules
+ *
+ * Usage in tests:
+ * igt_fixture() {
+ * igt_platform_filter_init(vendor_ops, platform_info);
+ * }
+ *
+ * igt_subtest("my-test") {
+ * // Automatic filtering - no manual call needed!
+ * test_code();
+ * }
+ *
+ * Config file format (/etc/igt/platform_skip.conf):
+ * # Lines starting with # are comments
+ * # Format: platform:test:subtest:reason
+ * # Use * as wildcard
+ *
+ * navi48:*:*:All tests disabled on Navi48
+ * alderlake:i915_pm:*:Power management tests broken
+ *
+ * Environment variable format (IGT_PLATFORM_SKIP_CONFIG):
+ * Same as config file, semicolon-separated entries:
+ * export IGT_PLATFORM_SKIP_CONFIG="navi48:*:*:Testing;navi10:amd_basic:*:Broken"
+ */
+
+/* Maximum platform ranges per skip entry */
+#define MAX_PLATFORM_RANGES 4
+
+/**
+ * enum skip_source - Source of skip rule
+ */
+enum skip_source {
+ SKIP_SOURCE_BUILTIN, /* From vendor built-in array */
+ SKIP_SOURCE_CONFIG, /* From /etc/igt/platform_skip.conf */
+ SKIP_SOURCE_ENV, /* From IGT_PLATFORM_SKIP_CONFIG */
+ SKIP_SOURCE_NONE, /* Not skipped */
+};
+
+/**
+ * struct platform_skip_entry - Generic skip rule entry
+ *
+ * Generic structure for skip rules. Vendor-specific data is stored
+ * in platform_data field and interpreted by vendor callbacks.
+ */
+struct platform_skip_entry {
+ const char *test_name; /* Test binary name or "*" for all */
+ const char *subtest_glob; /* Subtest pattern (fnmatch) or "*" */
+ const char *reason; /* Human-readable reason (required) */
+ void *platform_data; /* Vendor-specific platform matching data */
+};
+
+/**
+ * struct platform_filter_ops - Vendor-specific operations
+ *
+ * Callback structure that vendors implement to provide platform-specific
+ * filtering logic. This allows the core filtering framework to remain
+ * vendor-agnostic.
+ */
+struct platform_filter_ops {
+ /** @name: Vendor name (e.g., "amd", "intel") */
+
+ const char *name;
+
+ /** @get_platform_name: Get current platform name */
+ const char *(*get_platform_name)(const void *platform_info);
+
+ /** @match_platform: Check if skip entry matches current platform */
+ bool (*match_platform)(const void *platform_info, const void *platform_data);
+
+ /** @parse_platform_config: Parse platform string from config file */
+ bool (*parse_platform_config)(const char *platform_str, void **platform_data_out);
+
+ /** @get_builtin_rules: Get vendor-specific built-in skip rules */
+ const struct platform_skip_entry *(*get_builtin_rules)(int *count_out);
+
+ /** @dump_platform_data: Dump platform_data for debugging (optional) */
+ void (*dump_platform_data)(const void *platform_data);
+};
+
+/* Function prototypes - see igt_platform_filter.c for documentation */
+void igt_platform_filter_init(const struct platform_filter_ops *ops,
+ const void *platform_info);
+
+void igt_platform_require(const char *subtest_name);
+
+bool igt_platform_should_skip(const char *test_name,
+ const char *subtest_name,
+ enum skip_source *source,
+ const char **reason);
+
+void igt_platform_filter_dump(void);
+
+int igt_platform_filter_dump_to_file(const char *filename);
+
+#endif /* IGT_PLATFORM_FILTER_H */
--
2.54.0
^ permalink raw reply related [flat|nested] 20+ messages in thread* [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend 2026-07-03 14:08 vitaly.prosyak @ 2026-07-03 14:08 ` vitaly.prosyak 0 siblings, 0 replies; 20+ messages in thread From: vitaly.prosyak @ 2026-07-03 14:08 UTC (permalink / raw) To: igt-dev Cc: Vitaly Prosyak, Kamil Konieczny, Jani Nikula, Krzysztof Karas, Jesse Zhang, Christian König, Alex Deucher From: Vitaly Prosyak <vitaly.prosyak@amd.com> Implement the AMD-specific backend for the generic platform filtering framework, providing: - ASIC identification via amdgpu family_id and chip_rev ranges - ASIC name table mapping (navi10, navi48, arcturus, etc.) - AMD-specific built-in skip rules - amd_platform_filter_init() convenience function for AMD tests This is a pluggable backend accessed through platform_filter_ops callbacks. The core framework has zero AMD-specific knowledge. To add support for another vendor (e.g., Intel): 1. Create lib/i915/intel_platform.c/h 2. Implement platform_filter_ops callbacks 3. Define Intel platform data (platform_id, stepping ranges) 4. Call intel_platform_filter_init() from Intel tests Usage in AMD tests: amd_platform_filter_init(&gpu_info); igt_platform_require(igt_test_name(), my-subtest); Example skip via environment variable: export IGT_PLATFORM_SKIP_CONFIG=navi48:amd_basic:*-UMQ:unstable v2: Address review feedback from Kamil Konieczny: - Fixed compilation error: removed extra */ on line 9 - Added missing #include <stddef.h> to fix size_t errors - Added kernel-doc to amd_platform_filter_init() - Verified bisect-safety Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Krzysztof Karas <krzysztof.karas@intel.com> Cc: Jesse Zhang <jesse.zhang@amd.com> Cc: Christian König <christian.koenig@amd.com> Cc: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> Reviewed-by: Jesse Zhang <jesse.zhang@amd.com> Change-Id: I578444cd7b3b4d821cf1f3502cd61ea4cae946e3 --- lib/amdgpu/amd_platform.c | 328 ++++++++++++++++++++++++++++++++++++++ lib/amdgpu/amd_platform.h | 53 ++++++ lib/meson.build | 1 + 3 files changed, 382 insertions(+) create mode 100644 lib/amdgpu/amd_platform.c create mode 100644 lib/amdgpu/amd_platform.h diff --git a/lib/amdgpu/amd_platform.c b/lib/amdgpu/amd_platform.c new file mode 100644 index 000000000..1c6a72a49 --- /dev/null +++ b/lib/amdgpu/amd_platform.c @@ -0,0 +1,328 @@ +// SPDX-License-Identifier: MIT +// Copyright 2026 Advanced Micro Devices, Inc. +/* + * AMD-specific platform filtering backend + * + * Implements platform_filter_ops callbacks for AMD GPUs, providing + * platform identification and matching logic based on ASIC family/chip. + */ + +#include <stddef.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> + +#include "igt.h" +#include "igt_platform_filter.h" +#include "amd_platform.h" +#include "amdgpu_asic_addr.h" + +/** + * AMD platform data structures + * + * These structures define how AMD ASICs are matched for filtering. + * They use family/chip ranges similar to amd_queue_reset.c + */ + +/* Maximum ASIC family ranges per skip entry */ +#define MAX_ASIC_RANGES 4 + +/** + * struct amd_asic_range - ASIC family range for matching + * + * Similar to struct used in amd_queue_reset.c for defining ASIC ranges. + * Uses definitions from amdgpu_asic_addr.h + */ +struct amd_asic_range { + int family_id; /* FAMILY_NV, FAMILY_GFX1200, etc. */ + int chip_id_min; /* Min chip revision */ + int chip_id_max; /* Max chip revision */ +}; + +/** + * struct amd_platform_data - AMD platform matching data + * + * This is stored in platform_skip_entry->platform_data field. + * Contains array of ASIC ranges to match against. + */ +struct amd_platform_data { + struct amd_asic_range ranges[MAX_ASIC_RANGES]; + int num_ranges; +}; + +/* ASIC name to family/chip mapping table */ +struct asic_info { + const char *name; + int family_id; + int chip_id_min; + int chip_id_max; +}; + +static const struct asic_info asic_table[] = { + /* GFX12 - using ranges from amdgpu_asic_addr.h */ + { "navi48", FAMILY_GFX1200, AMDGPU_GFX1200_RANGE }, + { "navi44", FAMILY_GFX1200, AMDGPU_GFX1200_RANGE }, + + /* GFX11.5 */ + { "gfx1150", FAMILY_GFX1150, AMDGPU_GFX1150_RANGE }, + { "gfx1151", FAMILY_GFX1150, AMDGPU_GFX1151_RANGE }, + { "gfx1152", FAMILY_GFX1150, AMDGPU_GFX1152_RANGE }, + { "gfx1153", FAMILY_GFX1150, AMDGPU_GFX1153_RANGE }, + + /* GFX11 */ + { "gfx1100", FAMILY_GFX1100, AMDGPU_GFX1100_RANGE }, + { "gfx1101", FAMILY_GFX1100, AMDGPU_GFX1101_RANGE }, + { "gfx1102", FAMILY_GFX1100, AMDGPU_GFX1102_RANGE }, + { "gfx1103_r1", FAMILY_GFX1103, AMDGPU_GFX1103_R1_RANGE }, + { "gfx1103_r2", FAMILY_GFX1103, AMDGPU_GFX1103_R2_RANGE }, + { "navi31", FAMILY_GFX1100, AMDGPU_GFX1100_RANGE }, + { "navi32", FAMILY_GFX1100, AMDGPU_GFX1101_RANGE }, + { "navi33", FAMILY_GFX1100, AMDGPU_GFX1102_RANGE }, + + /* GFX10.3 */ + { "sienna_cichlid", FAMILY_NV, AMDGPU_SIENNA_CICHLID_RANGE }, + { "navy_flounder", FAMILY_NV, AMDGPU_NAVY_FLOUNDER_RANGE }, + { "dimgrey_cavefish", FAMILY_NV, AMDGPU_DIMGREY_CAVEFISH_RANGE }, + { "beige_goby", FAMILY_NV, AMDGPU_BEIGE_GOBY_RANGE }, + { "yellow_carp", FAMILY_YC, AMDGPU_YELLOW_CARP_RANGE }, + { "vangogh", FAMILY_VGH, AMDGPU_VANGOGH_RANGE }, + + /* GFX10 */ + { "navi10", FAMILY_NV, AMDGPU_NAVI10_RANGE }, + { "navi12", FAMILY_NV, AMDGPU_NAVI12_RANGE }, + { "navi14", FAMILY_NV, AMDGPU_NAVI14_RANGE }, + { "navi21", FAMILY_NV, AMDGPU_SIENNA_CICHLID_RANGE }, + { "navi22", FAMILY_NV, AMDGPU_NAVY_FLOUNDER_RANGE }, + { "navi23", FAMILY_NV, AMDGPU_DIMGREY_CAVEFISH_RANGE }, + { "navi24", FAMILY_NV, AMDGPU_BEIGE_GOBY_RANGE }, + + /* CDNA */ + { "arcturus", FAMILY_AI, AMDGPU_ARCTURUS_RANGE }, + { "aldebaran", FAMILY_AI, AMDGPU_ALDEBARAN_RANGE }, + + /* GFX9 */ + { "vega10", FAMILY_AI, AMDGPU_VEGA10_RANGE }, + { "vega12", FAMILY_AI, AMDGPU_VEGA12_RANGE }, + { "vega20", FAMILY_AI, AMDGPU_VEGA20_RANGE }, + { "raven", FAMILY_RV, AMDGPU_RAVEN_RANGE }, + { "raven2", FAMILY_RV, AMDGPU_RAVEN2_RANGE }, + { "renoir", FAMILY_RV, AMDGPU_RENOIR_RANGE }, + + /* GFX8 (VI/Polaris) */ + { "polaris10", FAMILY_VI, AMDGPU_POLARIS10_RANGE }, + { "polaris11", FAMILY_VI, AMDGPU_POLARIS11_RANGE }, + { "polaris12", FAMILY_VI, AMDGPU_POLARIS12_RANGE }, + { "fiji", FAMILY_VI, AMDGPU_FIJI_RANGE }, + { "tonga", FAMILY_VI, AMDGPU_TONGA_RANGE }, + { "iceland", FAMILY_VI, AMDGPU_ICELAND_RANGE }, + { "carrizo", FAMILY_CZ, AMDGPU_CARRIZO_RANGE }, + { "stoney", FAMILY_CZ, AMDGPU_STONEY_RANGE }, + + { NULL, 0, 0, 0 } +}; + +/* Helper: Get ASIC info by name (case-insensitive) */ +static const struct asic_info *get_asic_info(const char *name) +{ + const struct asic_info *info; + + if (!name) + return NULL; + + for (info = asic_table; info->name; info++) { + if (strcasecmp(info->name, name) == 0) + return info; + } + return NULL; +} + +/* Helper: Get ASIC name by family/chip */ +static const char *get_asic_name(int family_id, int chip_rev) +{ + const struct asic_info *info; + + for (info = asic_table; info->name; info++) { + if (info->family_id == family_id && + chip_rev >= info->chip_id_min && + chip_rev < info->chip_id_max) + return info->name; + } + return "unknown"; +} + +/* ================================================================ + * AMD PLATFORM FILTER OPS IMPLEMENTATION + * ================================================================ */ + +static const char *amd_get_platform_name(const void *platform_info) +{ + const struct amdgpu_gpu_info *gpu_info = platform_info; + + if (!gpu_info) + return "unknown"; + + return get_asic_name(gpu_info->family_id, gpu_info->chip_rev); +} + +static bool amd_match_platform(const void *platform_info, const void *platform_data) +{ + const struct amdgpu_gpu_info *gpu_info = platform_info; + const struct amd_platform_data *amd_data = platform_data; + int i; + + if (!gpu_info || !amd_data) + return false; + + /* If no ranges specified, match all platforms */ + if (amd_data->num_ranges == 0) + return true; + + /* Check if GPU matches any of the ASIC ranges */ + for (i = 0; i < amd_data->num_ranges && i < MAX_ASIC_RANGES; i++) { + if (amd_data->ranges[i].family_id == gpu_info->family_id) { + int chip_rev = gpu_info->chip_rev; + if (chip_rev >= amd_data->ranges[i].chip_id_min && + chip_rev < amd_data->ranges[i].chip_id_max) { + return true; + } + } + } + + return false; +} + +static bool amd_parse_platform_config(const char *platform_str, void **platform_data_out) +{ + const struct asic_info *info; + struct amd_platform_data *amd_data; + + info = get_asic_info(platform_str); + if (!info) { + igt_warn("Unknown AMD ASIC name: %s\n", platform_str); + return false; + } + + amd_data = malloc(sizeof(*amd_data)); + if (!amd_data) + return false; + + memset(amd_data, 0, sizeof(*amd_data)); + amd_data->ranges[0].family_id = info->family_id; + amd_data->ranges[0].chip_id_min = info->chip_id_min; + amd_data->ranges[0].chip_id_max = info->chip_id_max; + amd_data->num_ranges = 1; + + *platform_data_out = amd_data; + return true; +} + +static void amd_dump_platform_data(const void *platform_data) +{ + const struct amd_platform_data *amd_data = platform_data; + int i; + + if (!amd_data) { + printf("(all platforms)"); + return; + } + + for (i = 0; i < amd_data->num_ranges && i < MAX_ASIC_RANGES; i++) { + if (i > 0) + printf(", "); + printf("{0x%02X, 0x%02X-0x%02X}", + amd_data->ranges[i].family_id, + amd_data->ranges[i].chip_id_min, + amd_data->ranges[i].chip_id_max); + } +} + +/* ================================================================ + * AMD BUILT-IN SKIP RULES + * ================================================================ + * + * These are production skip rules. They are checked FIRST before + * config file or environment variable. + * + * To add a skip rule: + * 1. Define platform data with ASIC ranges + * 2. Add entry to builtin_skip_table[] + * 3. Rebuild IGT + * + * Example formats (uncomment to use): + * + * Single ASIC: + * static struct amd_platform_data navi44_data = { + * .ranges = { {FAMILY_GFX1200, AMDGPU_GFX1200_RANGE} }, + * .num_ranges = 1 + * }; + * { "amd_basic", "*-UMQ", "UMQ not supported on Navi44", &navi44_data }, + * + * Multiple ASICs: + * static struct amd_platform_data navi10_12_14_data = { + * .ranges = { + * {FAMILY_NV, AMDGPU_NAVI10_RANGE}, + * {FAMILY_NV, AMDGPU_NAVI12_RANGE}, + * {FAMILY_NV, AMDGPU_NAVI14_RANGE} + * }, + * .num_ranges = 3 + * }; + * { "amd_userq_abort", "*", "Queue reset unstable", &navi10_12_14_data }, + * + * All platforms (no platform restriction): + * { "test_name", "subtest", "reason", NULL }, + */ + +static const struct platform_skip_entry builtin_skip_table[] = { + /* Add production skip rules here */ + + /* Sentinel */ + {} +}; + +static const struct platform_skip_entry *amd_get_builtin_rules(int *count_out) +{ + int count = 0; + + /* Count entries (stop at sentinel) */ + while (builtin_skip_table[count].test_name || + builtin_skip_table[count].subtest_glob || + builtin_skip_table[count].reason) + count++; + + *count_out = count; + return builtin_skip_table; +} + +/* AMD platform filter operations */ +static const struct platform_filter_ops amd_platform_ops = { + .name = "amd", + .get_platform_name = amd_get_platform_name, + .match_platform = amd_match_platform, + .parse_platform_config = amd_parse_platform_config, + .get_builtin_rules = amd_get_builtin_rules, + .dump_platform_data = amd_dump_platform_data, +}; + +/* ================================================================ + * PUBLIC API + * ================================================================ */ + +const struct platform_filter_ops *amd_platform_get_ops(void) +{ + return &amd_platform_ops; +} + +/** + * amd_platform_filter_init: + * @gpu_info: AMD GPU information from amdgpu query + * + * Initialize platform filtering for AMD GPUs. This is a convenience + * wrapper that sets up the generic filtering framework with AMD-specific + * callbacks and GPU identification data. + * + * Must be called before using igt_platform_require() in AMD tests. + */ +void amd_platform_filter_init(const struct amdgpu_gpu_info *gpu_info) +{ + igt_platform_filter_init(&amd_platform_ops, gpu_info); +} diff --git a/lib/amdgpu/amd_platform.h b/lib/amdgpu/amd_platform.h new file mode 100644 index 000000000..fd233a053 --- /dev/null +++ b/lib/amdgpu/amd_platform.h @@ -0,0 +1,53 @@ +/* SPDX-License-Identifier: MIT + * Copyright 2026 Advanced Micro Devices, Inc. + */ + +#ifndef AMD_PLATFORM_H +#define AMD_PLATFORM_H + +#include "igt_platform_filter.h" +#include "amd_ip_blocks.h" + +/** + * SECTION: amd_platform + * @short_description: AMD-specific platform filtering backend + * @title: AMD Platform + * @include: amd_platform.h + * + * AMD implementation of platform filtering that plugs into the generic + * IGT platform filter framework. + * + * This backend provides: + * - ASIC identification and matching based on family/chip ranges + * - Built-in skip rules for AMD GPUs + * - Integration with amdgpu_asic_addr.h definitions + * + * Usage in AMD tests: + * igt_fixture() { + * setup_amdgpu_ip_blocks(...); + * amd_platform_filter_init(&gpu_info); + * } + * + * igt_subtest("my-test") { + * // Automatic filtering - no manual call needed! + * test_code(); + * } + */ + +/** + * amd_platform_filter_init - Initialize AMD platform filtering + * @gpu_info: AMDGPU GPU information structure + * + * Convenience wrapper that initializes the generic platform filter + * with AMD-specific operations and GPU info. + */ +void amd_platform_filter_init(const struct amdgpu_gpu_info *gpu_info); + +/** + * amd_platform_get_ops - Get AMD platform filter operations + * + * Returns: AMD platform_filter_ops structure + */ +const struct platform_filter_ops *amd_platform_get_ops(void); + +#endif /* AMD_PLATFORM_H */ diff --git a/lib/meson.build b/lib/meson.build index ba0683995..1318f9a38 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -179,6 +179,7 @@ if libdrm_amdgpu.found() lib_deps += libdrm_amdgpu lib_sources += [ 'amdgpu/amd_memory.c', + 'amdgpu/amd_platform.c', 'amdgpu/amd_command_submission.c', 'amdgpu/amd_compute.c', 'amdgpu/amd_cs_radv.c', -- 2.54.0 ^ permalink raw reply related [flat|nested] 20+ messages in thread
end of thread, other threads:[~2026-07-06 13:46 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-30 3:23 [PATCH 1/7] lib: Add vendor-agnostic platform filtering interface vitaly.prosyak 2026-06-30 3:23 ` [PATCH 2/7] lib: Implement generic platform filtering framework vitaly.prosyak 2026-07-01 14:38 ` Krzysztof Karas 2026-07-02 12:30 ` Kamil Konieczny 2026-07-02 17:25 ` Kamil Konieczny 2026-06-30 3:23 ` [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend vitaly.prosyak 2026-07-02 13:42 ` Kamil Konieczny 2026-07-02 13:48 ` Jani Nikula 2026-07-06 13:46 ` Kamil Konieczny 2026-06-30 3:23 ` [PATCH 4/7] lib: Add platform filter initialization check for automatic filtering vitaly.prosyak 2026-06-30 3:23 ` [PATCH 5/7] lib/igt_core: Enable automatic platform filtering in subtest execution vitaly.prosyak 2026-06-30 3:23 ` [PATCH 6/7] docs: Add comprehensive platform filtering documentation vitaly.prosyak 2026-07-02 8:26 ` Krzysztof Karas 2026-06-30 3:23 ` [PATCH 7/7] tests/amdgpu: Integrate platform filtering into amd_basic vitaly.prosyak 2026-06-30 4:06 ` ✓ Xe.CI.BAT: success for series starting with [1/7] lib: Add vendor-agnostic platform filtering interface Patchwork 2026-06-30 4:17 ` ✓ i915.CI.BAT: " Patchwork 2026-06-30 13:14 ` ✗ i915.CI.Full: failure " Patchwork 2026-06-30 17:19 ` ✗ Xe.CI.FULL: " Patchwork 2026-07-02 12:23 ` [PATCH 1/7] " Kamil Konieczny -- strict thread matches above, loose matches on Subject: below -- 2026-07-03 14:08 vitaly.prosyak 2026-07-03 14:08 ` [PATCH 3/7] lib/amdgpu: Add AMD platform filtering backend vitaly.prosyak
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox