* [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner
2024-03-10 14:27 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
@ 2024-03-10 14:27 ` Kunal Joshi
2024-03-20 12:53 ` Nautiyal, Ankit K
0 siblings, 1 reply; 18+ messages in thread
From: Kunal Joshi @ 2024-03-10 14:27 UTC (permalink / raw)
To: igt-dev
Cc: Kunal Joshi, Stanislav Lisovskiy, Ankit Nautiyal, Karthik B S,
Bhanuprakash Modem
add helpers to check whether force joiner debugfs exists
and to enable/disable force joiner for a specific connector.
Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
lib/igt_kms.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++
lib/igt_kms.h | 2 ++
2 files changed, 61 insertions(+)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 63c8045c7..9d0cbd329 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -6168,6 +6168,65 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
return found;
}
+/**
+ * Checks if the force big joiner is enabled for a specific connector.
+ *
+ * @drmfd The file descriptor of the DRM device.
+ * @connector_name The name of the connector.
+ * Returns:
+ * true if status equals enable, false otherwise.
+ */
+static bool igt_check_force_bigjoiner_status(int drmfd, char *connector_name, bool enable)
+{
+ char buf[512];
+ int debugfs_fd, ret;
+
+ igt_assert_f(connector_name, "Connector name cannot be NULL\n");
+ debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_RDONLY);
+ igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", connector_name);
+ ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
+ close(debugfs_fd);
+ igt_assert_f(ret > 0, "Could not read i915_bigjoiner_force_enable for connector %s\n", connector_name);
+ return enable ? strstr(buf, "Bigjoiner enable: 1") :
+ strstr(buf, "Bigjoiner enable: 0");
+}
+
+bool has_force_joiner_debugfs(int drmfd, igt_output_t *output)
+{
+ char buf[512];
+ int debugfs_fd, ret;
+
+ igt_assert_f(output->name, "Connector name cannot be NULL\n");
+ debugfs_fd = igt_debugfs_connector_dir(drmfd, output->name, O_RDONLY);
+ igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", output->name);
+ ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
+ close(debugfs_fd);
+ return ret >= 0;
+}
+
+/**
+ * Forces the enable/disable state of big joiner for a specific connector.
+ *
+ * @drmfd The file descriptor of the DRM device.
+ * @connector_name The name of the connector.
+ * @enable The desired state of big joiner (true for enable, false for disable).
+ * Returns:
+ * true on success, false otherwise.
+ */
+bool igt_force_bigjoiner_enable(int drmfd, char *connector_name, bool enable)
+{
+ int debugfs_fd, ret;
+
+ igt_assert_f(connector_name, "Connector name cannot be NULL\n");
+ debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_DIRECTORY);
+ igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", connector_name);
+ ret = igt_sysfs_write(debugfs_fd, "i915_bigjoiner_force_enable", enable ? "1" : "0", 1);
+ close(debugfs_fd);
+ igt_assert_f(ret > 0, "Could not write i915_bigjoiner_force_enable for connector %s\n", connector_name);
+
+ return igt_check_force_bigjoiner_status(drmfd, connector_name, enable);
+}
+
/**
* igt_check_bigjoiner_support:
* @display: a pointer to an #igt_display_t structure
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index bab8487d3..f13b7fd53 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -1214,6 +1214,8 @@ int igt_get_max_dotclock(int fd);
bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
int max_dotclock);
+bool has_force_joiner_debugfs(int drmfd, igt_output_t *output);
+bool igt_force_bigjoiner_enable(int drmfd, char *connector_name, bool enable);
bool igt_check_bigjoiner_support(igt_display_t *display);
bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
bool intel_pipe_output_combo_valid(igt_display_t *display);
--
2.34.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner
2024-03-10 14:27 ` [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner Kunal Joshi
@ 2024-03-20 12:53 ` Nautiyal, Ankit K
2024-03-20 13:21 ` Nautiyal, Ankit K
0 siblings, 1 reply; 18+ messages in thread
From: Nautiyal, Ankit K @ 2024-03-20 12:53 UTC (permalink / raw)
To: Kunal Joshi, igt-dev; +Cc: Stanislav Lisovskiy, Karthik B S, Bhanuprakash Modem
On 3/10/2024 7:57 PM, Kunal Joshi wrote:
> add helpers to check whether force joiner debugfs exists
> and to enable/disable force joiner for a specific connector.
>
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Cc: Karthik B S <karthik.b.s@intel.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
> lib/igt_kms.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++
> lib/igt_kms.h | 2 ++
> 2 files changed, 61 insertions(+)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 63c8045c7..9d0cbd329 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -6168,6 +6168,65 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
> return found;
> }
>
> +/**
> + * Checks if the force big joiner is enabled for a specific connector.
> + *
> + * @drmfd The file descriptor of the DRM device.
> + * @connector_name The name of the connector.
I think we dont need documentation for this, as this is straight forward
and just static function which is called from one place.
> + * Returns:
> + * true if status equals enable, false otherwise.
> + */
> +static bool igt_check_force_bigjoiner_status(int drmfd, char *connector_name, bool enable)
> +{
> + char buf[512];
> + int debugfs_fd, ret;
> +
> + igt_assert_f(connector_name, "Connector name cannot be NULL\n");
> + debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_RDONLY);
> + igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", connector_name);
> + ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
> + close(debugfs_fd);
> + igt_assert_f(ret > 0, "Could not read i915_bigjoiner_force_enable for connector %s\n", connector_name);
> + return enable ? strstr(buf, "Bigjoiner enable: 1") :
> + strstr(buf, "Bigjoiner enable: 0");
> +}
> +
> +bool has_force_joiner_debugfs(int drmfd, igt_output_t *output)
Since this helper is expected to be used in other tests, it would be
good to have documentation for this.
Also, imho, it would be better to use igt_* for helpers, though we seem
to be not following this strictly.
> +{
> + char buf[512];
> + int debugfs_fd, ret;
> +
> + igt_assert_f(output->name, "Connector name cannot be NULL\n");
> + debugfs_fd = igt_debugfs_connector_dir(drmfd, output->name, O_RDONLY);
> + igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", output->name);
I think we should not assert here, this will fail for platforms that do
not support bigjoiner. Perhaps returning false will be sufficient.
Regards,
Ankit
> + ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
> + close(debugfs_fd);
> + return ret >= 0;
> +}
> +
> +/**
> + * Forces the enable/disable state of big joiner for a specific connector.
> + *
> + * @drmfd The file descriptor of the DRM device.
> + * @connector_name The name of the connector.
> + * @enable The desired state of big joiner (true for enable, false for disable).
> + * Returns:
> + * true on success, false otherwise.
> + */
> +bool igt_force_bigjoiner_enable(int drmfd, char *connector_name, bool enable)
> +{
> + int debugfs_fd, ret;
> +
> + igt_assert_f(connector_name, "Connector name cannot be NULL\n");
> + debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_DIRECTORY);
> + igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", connector_name);
> + ret = igt_sysfs_write(debugfs_fd, "i915_bigjoiner_force_enable", enable ? "1" : "0", 1);
> + close(debugfs_fd);
> + igt_assert_f(ret > 0, "Could not write i915_bigjoiner_force_enable for connector %s\n", connector_name);
> +
> + return igt_check_force_bigjoiner_status(drmfd, connector_name, enable);
> +}
> +
> /**
> * igt_check_bigjoiner_support:
> * @display: a pointer to an #igt_display_t structure
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index bab8487d3..f13b7fd53 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -1214,6 +1214,8 @@ int igt_get_max_dotclock(int fd);
> bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
> bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
> int max_dotclock);
> +bool has_force_joiner_debugfs(int drmfd, igt_output_t *output);
> +bool igt_force_bigjoiner_enable(int drmfd, char *connector_name, bool enable);
> bool igt_check_bigjoiner_support(igt_display_t *display);
> bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
> bool intel_pipe_output_combo_valid(igt_display_t *display);
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner
2024-03-20 12:53 ` Nautiyal, Ankit K
@ 2024-03-20 13:21 ` Nautiyal, Ankit K
0 siblings, 0 replies; 18+ messages in thread
From: Nautiyal, Ankit K @ 2024-03-20 13:21 UTC (permalink / raw)
To: Kunal Joshi, igt-dev; +Cc: Stanislav Lisovskiy, Karthik B S, Bhanuprakash Modem
On 3/20/2024 6:23 PM, Nautiyal, Ankit K wrote:
>
> On 3/10/2024 7:57 PM, Kunal Joshi wrote:
>> add helpers to check whether force joiner debugfs exists
>> and to enable/disable force joiner for a specific connector.
>>
>> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
>> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
>> Cc: Karthik B S <karthik.b.s@intel.com>
>> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
>> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
>> ---
>> lib/igt_kms.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++
>> lib/igt_kms.h | 2 ++
>> 2 files changed, 61 insertions(+)
>>
>> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
>> index 63c8045c7..9d0cbd329 100644
>> --- a/lib/igt_kms.c
>> +++ b/lib/igt_kms.c
>> @@ -6168,6 +6168,65 @@ bool bigjoiner_mode_found(int drm_fd,
>> drmModeConnector *connector,
>> return found;
>> }
>> +/**
>> + * Checks if the force big joiner is enabled for a specific connector.
>> + *
>> + * @drmfd The file descriptor of the DRM device.
>> + * @connector_name The name of the connector.
>
> I think we dont need documentation for this, as this is straight
> forward and just static function which is called from one place.
Looking at it again, it seems we dont need this as separate function,
just simply read and return the status in the caller.
Regards,
Ankit
>
>> + * Returns:
>> + * true if status equals enable, false otherwise.
>> + */
>> +static bool igt_check_force_bigjoiner_status(int drmfd, char
>> *connector_name, bool enable)
>> +{
>> + char buf[512];
>> + int debugfs_fd, ret;
>> +
>> + igt_assert_f(connector_name, "Connector name cannot be NULL\n");
>> + debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name,
>> O_RDONLY);
>> + igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for
>> connector %s\n", connector_name);
>> + ret = igt_debugfs_simple_read(debugfs_fd,
>> "i915_bigjoiner_force_enable", buf, sizeof(buf));
>> + close(debugfs_fd);
>> + igt_assert_f(ret > 0, "Could not read
>> i915_bigjoiner_force_enable for connector %s\n", connector_name);
>> + return enable ? strstr(buf, "Bigjoiner enable: 1") :
>> + strstr(buf, "Bigjoiner enable: 0");
>> +}
>> +
>> +bool has_force_joiner_debugfs(int drmfd, igt_output_t *output)
>
> Since this helper is expected to be used in other tests, it would be
> good to have documentation for this.
>
> Also, imho, it would be better to use igt_* for helpers, though we
> seem to be not following this strictly.
>
>
>> +{
>> + char buf[512];
>> + int debugfs_fd, ret;
>> +
>> + igt_assert_f(output->name, "Connector name cannot be NULL\n");
>> + debugfs_fd = igt_debugfs_connector_dir(drmfd, output->name,
>> O_RDONLY);
>> + igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for
>> connector %s\n", output->name);
>
> I think we should not assert here, this will fail for platforms that
> do not support bigjoiner. Perhaps returning false will be sufficient.
>
>
> Regards,
>
> Ankit
>
>> + ret = igt_debugfs_simple_read(debugfs_fd,
>> "i915_bigjoiner_force_enable", buf, sizeof(buf));
>> + close(debugfs_fd);
>> + return ret >= 0;
>> +}
>> +
>> +/**
>> + * Forces the enable/disable state of big joiner for a specific
>> connector.
>> + *
>> + * @drmfd The file descriptor of the DRM device.
>> + * @connector_name The name of the connector.
>> + * @enable The desired state of big joiner (true for enable, false
>> for disable).
>> + * Returns:
>> + * true on success, false otherwise.
>> + */
>> +bool igt_force_bigjoiner_enable(int drmfd, char *connector_name,
>> bool enable)
>> +{
>> + int debugfs_fd, ret;
>> +
>> + igt_assert_f(connector_name, "Connector name cannot be NULL\n");
>> + debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name,
>> O_DIRECTORY);
>> + igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for
>> connector %s\n", connector_name);
>> + ret = igt_sysfs_write(debugfs_fd, "i915_bigjoiner_force_enable",
>> enable ? "1" : "0", 1);
>> + close(debugfs_fd);
>> + igt_assert_f(ret > 0, "Could not write
>> i915_bigjoiner_force_enable for connector %s\n", connector_name);
>> +
>> + return igt_check_force_bigjoiner_status(drmfd, connector_name,
>> enable);
>> +}
>> +
>> /**
>> * igt_check_bigjoiner_support:
>> * @display: a pointer to an #igt_display_t structure
>> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
>> index bab8487d3..f13b7fd53 100644
>> --- a/lib/igt_kms.h
>> +++ b/lib/igt_kms.h
>> @@ -1214,6 +1214,8 @@ int igt_get_max_dotclock(int fd);
>> bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
>> bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
>> int max_dotclock);
>> +bool has_force_joiner_debugfs(int drmfd, igt_output_t *output);
>> +bool igt_force_bigjoiner_enable(int drmfd, char *connector_name,
>> bool enable);
>> bool igt_check_bigjoiner_support(igt_display_t *display);
>> bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo
>> *mode);
>> bool intel_pipe_output_combo_valid(igt_display_t *display);
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH i-g-t 0/4] revamp big joiner test
@ 2024-03-21 18:28 Kunal Joshi
2024-03-21 18:28 ` [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib Kunal Joshi
` (7 more replies)
0 siblings, 8 replies; 18+ messages in thread
From: Kunal Joshi @ 2024-03-21 18:28 UTC (permalink / raw)
To: igt-dev; +Cc: Kunal Joshi
modify test to support multiple big joiner outputs
simultaneously, support for ignoring fused pipes and
addition of subtests for testing force joiner support for
which is added by below in kmd.
drm/i915: Add bigjoiner force enable option to debugfs
Kunal Joshi (4):
lib/igt_kms: move bigjoiner_mode_found to lib
tests/intel/kms_big_joiner: revamp bigjoiner
lib/igt_kms: add helper to enable/disable force joiner
tests/intel/kms_big_joiner: add tests for force joiner
lib/igt_kms.c | 79 ++++++
lib/igt_kms.h | 4 +
tests/intel/kms_big_joiner.c | 486 ++++++++++++++++++++---------------
3 files changed, 366 insertions(+), 203 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib
2024-03-21 18:28 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
@ 2024-03-21 18:28 ` Kunal Joshi
2024-03-25 9:57 ` Nautiyal, Ankit K
2024-03-21 18:28 ` [PATCH i-g-t 2/4] tests/intel/kms_big_joiner: revamp bigjoiner Kunal Joshi
` (6 subsequent siblings)
7 siblings, 1 reply; 18+ messages in thread
From: Kunal Joshi @ 2024-03-21 18:28 UTC (permalink / raw)
To: igt-dev
Cc: Kunal Joshi, Stanislav Lisovskiy, Ankit Nautiyal, Karthik B S,
Bhanuprakash Modem
move bigjoiner_mode_found to lib
v2: correct documentation (Ankit)
fix usage of mode (Ankit)
Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
lib/igt_kms.c | 28 ++++++++++++++++++++++++++++
lib/igt_kms.h | 2 ++
tests/intel/kms_big_joiner.c | 14 +-------------
3 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index e18f6fe59..ff08b0eda 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -6143,6 +6143,34 @@ bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock)
mode->clock > max_dotclock);
}
+/**
+ * bigjoiner_mode_found:
+ * @drm_fd: drm file descriptor
+ * @connector: libdrm connector
+ * @max_dot_clock: max dot clock frequency
+ * @mode: libdrm mode
+ *
+ * Bigjoiner will come in to the picture when the
+ * resolution > 5K or clock > max-dot-clock.
+ *
+ * Returns: True if big joiner found in connector modes
+ */
+bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
+ int max_dotclock, drmModeModeInfo *mode)
+{
+ bool found = false;
+
+ igt_sort_connector_modes(connector, sort_drm_modes_by_res_dsc);
+ found = igt_bigjoiner_possible(&connector->modes[0], max_dotclock);
+ if (!found) {
+ igt_sort_connector_modes(connector, sort_drm_modes_by_clk_dsc);
+ found = igt_bigjoiner_possible(&connector->modes[0], max_dotclock);
+ }
+ if (found)
+ *mode = connector->modes[0];
+ return found;
+}
+
/**
* igt_check_bigjoiner_support:
* @display: a pointer to an #igt_display_t structure
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index b3882808b..0fa7a2ea1 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -1212,6 +1212,8 @@ bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe,
igt_output_t *output, int bpc);
int igt_get_max_dotclock(int fd);
bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
+bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
+ int max_dotclock, drmModeModeInfo *mode);
bool igt_check_bigjoiner_support(igt_display_t *display);
bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
bool intel_pipe_output_combo_valid(igt_display_t *display);
diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c
index aba2adfbe..99b1b898d 100644
--- a/tests/intel/kms_big_joiner.c
+++ b/tests/intel/kms_big_joiner.c
@@ -199,16 +199,6 @@ static void test_dual_display(data_t *data)
igt_display_commit2(display, COMMIT_ATOMIC);
}
-static bool bigjoiner_mode_found(drmModeConnector *connector,
- int (*sort_method)(const void *, const void*),
- drmModeModeInfo *mode)
-{
- igt_sort_connector_modes(connector, sort_method);
- *mode = connector->modes[0];
-
- return igt_bigjoiner_possible(mode, max_dotclock);
-}
-
igt_main
{
data_t data;
@@ -235,9 +225,7 @@ igt_main
* Bigjoiner will come in to the picture when the
* resolution > 5K or clock > max-dot-clock.
*/
- found = (bigjoiner_mode_found(connector, sort_drm_modes_by_res_dsc, &mode) ||
- bigjoiner_mode_found(connector, sort_drm_modes_by_clk_dsc, &mode)) ?
- true : false;
+ found = bigjoiner_mode_found(data.drm_fd, connector, max_dotclock, &mode);
if (found) {
data.output[count].output_id = output->id;
--
2.34.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH i-g-t 2/4] tests/intel/kms_big_joiner: revamp bigjoiner
2024-03-21 18:28 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
2024-03-21 18:28 ` [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib Kunal Joshi
@ 2024-03-21 18:28 ` Kunal Joshi
2024-03-25 10:16 ` Nautiyal, Ankit K
2024-03-21 18:28 ` [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner Kunal Joshi
` (5 subsequent siblings)
7 siblings, 1 reply; 18+ messages in thread
From: Kunal Joshi @ 2024-03-21 18:28 UTC (permalink / raw)
To: igt-dev
Cc: Kunal Joshi, Stanislav Lisovskiy, Ankit Nautiyal, Karthik B S,
Bhanuprakash Modem
v2: Don't change license (Bhanu)
Print the pipe name (Bhanu)
Remove unwanted commit (Bhanu)
Move combine output logic to igt_fixture (Bhanu)
split revamp and force joiner (Bhanu)
v3: Ignored fused pipes (Stan)
v4: Ignore master pipes who doesn't have slave (Ankit)
Retain subtest names (Ankit)
Use commit instead of try_commit (Ankit)
Fix typo (Ankit)
Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
tests/intel/kms_big_joiner.c | 416 ++++++++++++++++++-----------------
1 file changed, 220 insertions(+), 196 deletions(-)
diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c
index 99b1b898d..eba74cddf 100644
--- a/tests/intel/kms_big_joiner.c
+++ b/tests/intel/kms_big_joiner.c
@@ -44,177 +44,253 @@
* SUBTEST: basic
* Description: Verify the basic modeset on big joiner mode on all pipes
*
- * SUBTEST: 2x-modeset
- * Description: Verify simultaneous modeset on 2 big joiner outputs
*/
IGT_TEST_DESCRIPTION("Test big joiner");
-struct bigjoiner_output {
- uint32_t output_id;
- drmModeModeInfo mode;
-};
+#define INVALID_TEST_OUTPUT 2
typedef struct {
int drm_fd;
- igt_display_t display;
- struct igt_fb fb;
+ int big_joiner_output_count;
+ int non_big_joiner_output_count;
+ int combined_output_count;
+ int output_count;
int n_pipes;
- enum pipe pipe1;
- enum pipe pipe2;
- struct bigjoiner_output output[2];
+ int master_pipes;
+ uint64_t big_joiner_output[IGT_MAX_PIPES];
+ uint64_t non_big_joiner_output[IGT_MAX_PIPES];
+ uint64_t combined_output[IGT_MAX_PIPES];
+ enum pipe pipe_seq[IGT_MAX_PIPES];
+ igt_display_t display;
} data_t;
static int max_dotclock;
-static void test_invalid_modeset(data_t *data)
+static void set_all_master_pipes_for_platform(data_t *data)
{
- igt_output_t *output;
- igt_display_t *display = &data->display;
- int ret;
+ enum pipe pipe;
+ enum pipe last_pipe;
+
+ for (pipe = PIPE_A; pipe < IGT_MAX_PIPES; pipe++) {
+ if (data->display.pipes[pipe].enabled) {
+ if (data->display.pipes[pipe+1].enabled) {
+ data->master_pipes |= BIT(pipe);
+ igt_info("Found master pipe %s\n", kmstest_pipe_name(pipe));
+ }
+ last_pipe = pipe;
+ }
+ }
+ data->master_pipes |= BIT(last_pipe);
+}
- igt_info("Bigjoiner test on ");
- for_each_connected_output(display, output){
- enum pipe p = output->pending_pipe;
- drmModeModeInfo *mode;
- igt_pipe_t *pipe;
- igt_plane_t *plane;
+static igt_output_t *get_output_by_id_or_assert(data_t *data, uint64_t id)
+{
+ igt_output_t *output;
- if (p == PIPE_NONE)
- continue;
+ for_each_connected_output(&data->display, output) {
+ if (output->id == id)
+ return output;
+ }
+ igt_assert_f(false, "Output not found\n");
+ return NULL;
+}
- mode = igt_output_get_mode(output);
- igt_info("pipe:%s, output:%s, mode:", kmstest_pipe_name(p), igt_output_name(output));
- kmstest_dump_mode(mode);
+static enum pipe get_next_master_pipe(data_t *data, unsigned int available_pipe_mask)
+{
+ if ((data->master_pipes & available_pipe_mask) == 0)
+ return PIPE_NONE;
- pipe = &display->pipes[p];
- plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
+ return ffs(data->master_pipes & available_pipe_mask) - 1;
+}
- igt_plane_set_fb(plane, &data->fb);
- igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay);
- igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
- }
+static enum pipe setup_pipe(data_t *data, igt_output_t *output, enum pipe pipe, unsigned int available_pipe_mask)
+{
+ enum pipe master_pipe;
+ unsigned int attempt_mask;
- igt_assert(!igt_check_bigjoiner_support(display));
+ attempt_mask = BIT(pipe);
+ master_pipe = get_next_master_pipe(data, available_pipe_mask & attempt_mask);
- /* This commit is expectd to fail as this pipe is being used for big joiner */
- ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY |
- DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+ if (master_pipe == PIPE_NONE)
+ return PIPE_NONE;
- igt_display_reset(&data->display);
- igt_display_commit2(display, COMMIT_ATOMIC);
+ igt_info("Using pipe %s as master and %s slave for %s\n", kmstest_pipe_name(pipe),
+ kmstest_pipe_name(pipe + 1), output->name);
+ igt_output_set_pipe(output, pipe);
- igt_assert_lt(ret, 0);
+ return master_pipe;
}
-static void test_basic_modeset(data_t *data)
+static void test_single_joiner(data_t *data, int output_count)
{
+ int i;
+ enum pipe pipe, master_pipe;
+ unsigned int available_pipe_mask = BIT(data->n_pipes) - 1;
+ igt_output_t *output;
+ igt_plane_t *primary;
+ uint64_t *outputs;
+ igt_fb_t fb;
drmModeModeInfo *mode;
- igt_output_t *output, *bigjoiner_output = NULL;
- igt_display_t *display = &data->display;
- igt_pipe_t *pipe;
- igt_plane_t *plane;
- igt_display_reset(display);
+ outputs = data->big_joiner_output;
- for_each_connected_output(display, output) {
- if (data->output[0].output_id == output->id) {
- bigjoiner_output = output;
- break;
+ for (i = 0; i < output_count; i++) {
+ output = get_output_by_id_or_assert(data, outputs[i]);
+ for (pipe = 0; pipe < data->n_pipes-1; pipe++) {
+ igt_display_reset(&data->display);
+ master_pipe = setup_pipe(data, output, pipe, available_pipe_mask);
+ if (master_pipe == PIPE_NONE)
+ continue;
+ mode = igt_output_get_mode(output);
+ primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+ igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR, &fb);
+ igt_plane_set_fb(primary, &fb);
+ igt_display_commit2(&data->display, COMMIT_ATOMIC);
+ igt_plane_set_fb(primary, NULL);
+ igt_remove_fb(data->drm_fd, &fb);
}
}
-
- igt_output_set_pipe(bigjoiner_output, data->pipe1);
-
- mode = &data->output[0].mode;
- igt_output_override_mode(bigjoiner_output, mode);
-
- pipe = &display->pipes[data->pipe1];
- plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
-
- igt_plane_set_fb(plane, &data->fb);
- igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay);
- igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
-
- igt_display_commit2(display, COMMIT_ATOMIC);
-
- igt_output_set_pipe(bigjoiner_output, PIPE_NONE);
- igt_plane_set_fb(plane, NULL);
- igt_display_commit2(display, COMMIT_ATOMIC);
}
-static void test_dual_display(data_t *data)
+static void test_multi_joiner(data_t *data, int output_count)
{
+ int i;
+ unsigned int available_pipe_mask;
+ enum pipe pipe, master_pipe;
+ uint64_t *outputs;
+ igt_output_t *output;
+ igt_plane_t *primary[output_count];
+ igt_fb_t fb[output_count];
drmModeModeInfo *mode;
- igt_output_t *output, *bigjoiner_output[2];
- igt_display_t *display = &data->display;
- igt_pipe_t *pipe;
- igt_plane_t *plane1, *plane2;
- int count = 0;
-
- igt_display_reset(display);
-
- for_each_connected_output(display, output) {
- if (data->output[count].output_id == output->id) {
- bigjoiner_output[count] = output;
- count++;
- }
- if (count > 1)
+ available_pipe_mask = BIT(data->n_pipes) - 1;
+ outputs = data->big_joiner_output;
+
+ igt_display_reset(&data->display);
+ for (i = 0; i < output_count; i++) {
+ output = get_output_by_id_or_assert(data, outputs[i]);
+ for (pipe = 0; pipe < data->n_pipes; pipe++) {
+ master_pipe = setup_pipe(data, output, pipe, available_pipe_mask);
+ if (master_pipe == PIPE_NONE)
+ continue;
+ mode = igt_output_get_mode(output);
+ primary[i] = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+ igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR, &fb[i]);
+ igt_plane_set_fb(primary[i], &fb[i]);
+
+ available_pipe_mask &= ~BIT(master_pipe);
+ available_pipe_mask &= ~BIT(master_pipe + 1);
break;
+ }
}
+ igt_display_commit2(&data->display, COMMIT_ATOMIC);
+ for (i = 0; i < output_count; i++) {
+ igt_plane_set_fb(primary[i], NULL);
+ igt_remove_fb(data->drm_fd, &fb[i]);
+ }
+}
- igt_output_set_pipe(bigjoiner_output[0], data->pipe1);
- igt_output_set_pipe(bigjoiner_output[1], data->pipe2);
-
- /* Set up first big joiner output on Pipe A*/
- mode = &data->output[0].mode;
- igt_output_override_mode(bigjoiner_output[0], mode);
+static void test_invalid_modeset_two_joiner(data_t *data,
+ bool combined)
+{
+ int i, j, ret;
+ unsigned int available_pipe_mask;
+ unsigned int attempt_mask;
+ enum pipe master_pipe;
+ uint64_t *outputs;
+ igt_output_t *output;
+ igt_plane_t *primary[INVALID_TEST_OUTPUT];
+ igt_fb_t fb[INVALID_TEST_OUTPUT];
+ drmModeModeInfo *mode;
- pipe = &display->pipes[data->pipe1];
- plane1 = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
+ available_pipe_mask = BIT(data->n_pipes) - 1;
+ outputs = combined ? data->combined_output : data->big_joiner_output;
- igt_plane_set_fb(plane1, &data->fb);
- igt_fb_set_size(&data->fb, plane1, mode->hdisplay, mode->vdisplay);
- igt_plane_set_size(plane1, mode->hdisplay, mode->vdisplay);
+ for (i = 0; i < data->n_pipes-1; i++) {
+ igt_display_reset(&data->display);
+ attempt_mask = BIT(data->pipe_seq[i]);
+ master_pipe = get_next_master_pipe(data, available_pipe_mask & attempt_mask);
- /* Set up second big joiner output on Pipe C*/
- mode = &data->output[1].mode;
- igt_output_override_mode(bigjoiner_output[1], mode);
+ if (master_pipe == PIPE_NONE)
+ continue;
- pipe = &display->pipes[data->pipe2];
- plane2 = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
+ for (j = 0; j < INVALID_TEST_OUTPUT; j++) {
+ output = get_output_by_id_or_assert(data, outputs[j]);
+ igt_output_set_pipe(output, data->pipe_seq[i + j]);
+ mode = igt_output_get_mode(output);
+ igt_info(" Assigning pipe %s to %s with mode %dx%d@%d%s",
+ kmstest_pipe_name(data->pipe_seq[i + j]),
+ igt_output_name(output), mode->hdisplay,
+ mode->vdisplay, mode->vrefresh,
+ j == INVALID_TEST_OUTPUT - 1 ? "\n" : ", ");
+ primary[j] = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+ igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR, &fb[j]);
+ igt_plane_set_fb(primary[j], &fb[j]);
+ }
+ ret = igt_display_try_commit2(&data->display, COMMIT_ATOMIC);
+ for (j = 0; j < INVALID_TEST_OUTPUT; j++) {
+ igt_plane_set_fb(primary[j], NULL);
+ igt_remove_fb(data->drm_fd, &fb[j]);
+ }
+ igt_assert_f(ret != 0, "Commit shouldn't have passed\n");
+ }
+}
- igt_plane_set_fb(plane2, &data->fb);
- igt_fb_set_size(&data->fb, plane2, mode->hdisplay, mode->vdisplay);
- igt_plane_set_size(plane2, mode->hdisplay, mode->vdisplay);
+static void test_big_joiner_on_last_pipe(data_t *data)
+{
+ int i, len, ret;
+ uint64_t *outputs;
+ igt_output_t *output;
+ igt_plane_t *primary;
+ igt_fb_t fb;
+ drmModeModeInfo *mode;
- igt_display_commit2(display, COMMIT_ATOMIC);
+ len = data->big_joiner_output_count;
+ outputs = data->big_joiner_output;
- /* Clean up */
- igt_output_set_pipe(bigjoiner_output[0], PIPE_NONE);
- igt_output_set_pipe(bigjoiner_output[1], PIPE_NONE);
- igt_plane_set_fb(plane1, NULL);
- igt_plane_set_fb(plane2, NULL);
- igt_display_commit2(display, COMMIT_ATOMIC);
+ for (i = 0; i < len; i++) {
+ igt_display_reset(&data->display);
+ output = get_output_by_id_or_assert(data, outputs[i]);
+ igt_output_set_pipe(output, data->pipe_seq[data->n_pipes - 1]);
+ mode = igt_output_get_mode(output);
+ igt_info(" Assigning pipe %s to %s with mode %dx%d@%d\n",
+ kmstest_pipe_name(data->pipe_seq[data->n_pipes - 1]),
+ igt_output_name(output), mode->hdisplay,
+ mode->vdisplay, mode->vrefresh);
+ primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+ igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR, &fb);
+ igt_plane_set_fb(primary, &fb);
+ ret = igt_display_try_commit2(&data->display, COMMIT_ATOMIC);
+ igt_plane_set_fb(primary, NULL);
+ igt_remove_fb(data->drm_fd, &fb);
+ igt_assert_f(ret != 0, "Commit shouldn't have passed\n");
+ }
}
igt_main
{
- data_t data;
+ int i, j;
igt_output_t *output;
drmModeModeInfo mode;
- int valid_output = 0, i, count = 0, j = 0;
- uint16_t width = 0, height = 0;
- enum pipe pipe_seq[IGT_MAX_PIPES];
+ data_t data;
igt_fixture {
+ data.big_joiner_output_count = 0;
+ data.non_big_joiner_output_count = 0;
+ data.combined_output_count = 0;
+ data.output_count = 0;
+ j = 0;
+
data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
kmstest_set_vt_graphics_mode();
-
igt_display_require(&data.display, data.drm_fd);
+ set_all_master_pipes_for_platform(&data);
igt_require(data.display.is_atomic);
-
max_dotclock = igt_get_max_dotclock(data.drm_fd);
for_each_connected_output(&data.display, output) {
@@ -228,105 +304,53 @@ igt_main
found = bigjoiner_mode_found(data.drm_fd, connector, max_dotclock, &mode);
if (found) {
- data.output[count].output_id = output->id;
- memcpy(&data.output[count].mode, &mode, sizeof(drmModeModeInfo));
- count++;
-
- width = max(width, mode.hdisplay);
- height = max(height, mode.vdisplay);
+ data.big_joiner_output[data.big_joiner_output_count++] = output->config.connector->connector_id;
+ igt_output_override_mode(output, &mode);
+ } else {
+ data.non_big_joiner_output[data.non_big_joiner_output_count++] = output->config.connector->connector_id;
}
- valid_output++;
+ data.output_count++;
+ }
+ if (data.big_joiner_output_count == 1 && data.non_big_joiner_output_count >= 1) {
+ data.combined_output[data.combined_output_count++] = data.big_joiner_output[0];
+ data.combined_output[data.combined_output_count++] = data.non_big_joiner_output[0];
}
-
data.n_pipes = 0;
for_each_pipe(&data.display, i) {
data.n_pipes++;
- pipe_seq[j] = i;
+ data.pipe_seq[j] = i;
j++;
}
-
- igt_require_f(count > 0, "No output with 5k+ mode (or) clock > max-dot-clock found\n");
-
- igt_create_pattern_fb(data.drm_fd, width, height, DRM_FORMAT_XRGB8888,
- DRM_FORMAT_MOD_LINEAR, &data.fb);
}
igt_describe("Verify the basic modeset on big joiner mode on all pipes");
igt_subtest_with_dynamic("basic") {
- for (i = 0; i < data.n_pipes - 1; i++) {
- data.pipe1 = pipe_seq[i];
- igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe_seq[i]))
- test_basic_modeset(&data);
- }
+ igt_require_f(data.big_joiner_output_count > 0,
+ "No bigjoiner output found\n");
+ igt_require_f(data.n_pipes > 1,
+ "Minimum 2 pipes required\n");
+ igt_dynamic_f("single-joiner")
+ test_single_joiner(&data, data.big_joiner_output_count);
+ if (data.big_joiner_output_count > 1)
+ igt_dynamic_f("multi-joiner")
+ test_multi_joiner(&data, data.big_joiner_output_count);
}
- igt_describe("Verify if the modeset on the adjoining pipe is rejected "
- "when the pipe is active with a big joiner modeset");
igt_subtest_with_dynamic("invalid-modeset") {
- data.pipe1 = pipe_seq[j - 1];
-
- igt_display_reset(&data.display);
- for_each_connected_output(&data.display, output) {
- if (data.output[0].output_id != output->id)
- continue;
-
- mode = data.output[0].mode;
- igt_output_set_pipe(output, data.pipe1);
- igt_output_override_mode(output, &mode);
-
- igt_dynamic_f("pipe-%s-%s",
- kmstest_pipe_name(data.pipe1),
- igt_output_name(output))
- test_invalid_modeset(&data);
- }
-
- if(valid_output > 1) {
- for (i = 0; i < data.n_pipes - 1; i++) {
- igt_output_t *first_output = NULL, *second_output = NULL;
-
- data.pipe1 = pipe_seq[i];
- data.pipe2 = pipe_seq[i + 1];
-
- igt_display_reset(&data.display);
- for_each_connected_output(&data.display, output) {
- if (data.output[0].output_id == output->id) {
- first_output = output;
- mode = data.output[0].mode;
-
- igt_output_set_pipe(output, data.pipe1);
- igt_output_override_mode(output, &mode);
- } else if (second_output == NULL) {
- second_output = output;
- igt_output_set_pipe(output, data.pipe2);
-
- break;
- }
- }
-
- igt_dynamic_f("pipe-%s-%s-pipe-%s-%s",
- kmstest_pipe_name(data.pipe1),
- igt_output_name(first_output),
- kmstest_pipe_name(data.pipe2),
- igt_output_name(second_output))
- test_invalid_modeset(&data);
- }
- }
- }
-
- igt_describe("Verify simultaneous modeset on 2 big joiner outputs");
- igt_subtest_with_dynamic("2x-modeset") {
- igt_require_f(count > 1, "2 outputs with big joiner modes are required\n");
- igt_require_f(data.n_pipes > 3, "Minumum of 4 pipes are required\n");
- for (i = 0; (i + 2) < data.n_pipes - 1; i++) {
- data.pipe1 = pipe_seq[i];
- data.pipe2 = pipe_seq[i + 2];
- igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe_seq[i]), kmstest_pipe_name(pipe_seq[i + 2]))
- test_dual_display(&data);
- }
+ igt_require_f(data.big_joiner_output_count > 0, "Non big joiner output not found\n");
+ igt_require_f(data.n_pipes > 1, "Minimum of 2 pipes are required\n");
+ if (data.big_joiner_output_count >= 1)
+ igt_dynamic_f("big_joiner_on_last_pipe")
+ test_big_joiner_on_last_pipe(&data);
+ if (data.big_joiner_output_count > 1)
+ igt_dynamic_f("invalid_combinations")
+ test_invalid_modeset_two_joiner(&data, false);
+ if (data.combined_output_count)
+ igt_dynamic_f("combined_output")
+ test_invalid_modeset_two_joiner(&data, true);
}
igt_fixture {
- igt_remove_fb(data.drm_fd, &data.fb);
igt_display_fini(&data.display);
drm_close_driver(data.drm_fd);
}
--
2.34.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner
2024-03-21 18:28 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
2024-03-21 18:28 ` [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib Kunal Joshi
2024-03-21 18:28 ` [PATCH i-g-t 2/4] tests/intel/kms_big_joiner: revamp bigjoiner Kunal Joshi
@ 2024-03-21 18:28 ` Kunal Joshi
2024-03-25 10:22 ` Nautiyal, Ankit K
2024-03-21 18:28 ` [PATCH i-g-t 4/4] tests/intel/kms_big_joiner: add tests for " Kunal Joshi
` (4 subsequent siblings)
7 siblings, 1 reply; 18+ messages in thread
From: Kunal Joshi @ 2024-03-21 18:28 UTC (permalink / raw)
To: igt-dev
Cc: Kunal Joshi, Stanislav Lisovskiy, Ankit Nautiyal, Karthik B S,
Bhanuprakash Modem
v2: Add documentation and rename (Ankit)
Combine enable/disable and status check (Ankit)
Don't assert in igt_has_force_joiner_debugfs (Ankit)
add helpers to check whether force joiner debugfs exists
and to enable/disable force joiner for a specific connector.
Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
lib/igt_kms.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
lib/igt_kms.h | 2 ++
2 files changed, 53 insertions(+)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index ff08b0eda..3d9796529 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -6171,6 +6171,57 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
return found;
}
+/**
+ * Checks if the force big joiner debugfs is available
+ * for a specific connector.
+ *
+ * @drmfd: file descriptor of the DRM device.
+ * @output: output to check.
+ * Returns:
+ * true if the debugfs is available, false otherwise.
+ */
+bool igt_has_force_joiner_debugfs(int drmfd, igt_output_t *output)
+{
+ char buf[512];
+ int debugfs_fd, ret;
+
+ igt_assert_f(output->name, "Connector name cannot be NULL\n");
+ debugfs_fd = igt_debugfs_connector_dir(drmfd, output->name, O_RDONLY);
+ if (debugfs_fd < 0)
+ return false;
+ ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
+ close(debugfs_fd);
+ return ret >= 0;
+}
+
+/**
+ * Forces the enable/disable state of big joiner for a specific connector.
+ *
+ * @drmfd The file descriptor of the DRM device.
+ * @connector_name The name of the connector.
+ * @enable The desired state of big joiner (true for enable, false for disable).
+ * Returns:
+ * true if writing the debugfs was successful
+ * and the state was set as requested, false otherwise.
+ */
+bool igt_force_and_check_bigjoiner_status(int drmfd, char *connector_name, bool enable)
+{
+ int debugfs_fd, ret;
+ char buf[512];
+
+ igt_assert_f(connector_name, "Connector name cannot be NULL\n");
+ debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_DIRECTORY);
+ igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", connector_name);
+ ret = igt_sysfs_write(debugfs_fd, "i915_bigjoiner_force_enable", enable ? "1" : "0", 1);
+ igt_assert_f(ret > 0, "Could not write i915_bigjoiner_force_enable for connector %s\n", connector_name);
+ ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
+ close(debugfs_fd);
+ igt_assert_f(ret > 0, "Could not read i915_bigjoiner_force_enable for connector %s\n", connector_name);
+
+ return enable ? strstr(buf, "Bigjoiner enable: 1") :
+ strstr(buf, "Bigjoiner enable: 0");
+}
+
/**
* igt_check_bigjoiner_support:
* @display: a pointer to an #igt_display_t structure
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 0fa7a2ea1..6d13e5851 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -1214,6 +1214,8 @@ int igt_get_max_dotclock(int fd);
bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
int max_dotclock, drmModeModeInfo *mode);
+bool igt_has_force_joiner_debugfs(int drmfd, igt_output_t *output);
+bool igt_force_and_check_bigjoiner_status(int drmfd, char *connector_name, bool enable);
bool igt_check_bigjoiner_support(igt_display_t *display);
bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
bool intel_pipe_output_combo_valid(igt_display_t *display);
--
2.34.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH i-g-t 4/4] tests/intel/kms_big_joiner: add tests for force joiner
2024-03-21 18:28 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
` (2 preceding siblings ...)
2024-03-21 18:28 ` [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner Kunal Joshi
@ 2024-03-21 18:28 ` Kunal Joshi
2024-03-21 18:36 ` ✗ GitLab.Pipeline: warning for revamp big joiner test (rev8) Patchwork
` (3 subsequent siblings)
7 siblings, 0 replies; 18+ messages in thread
From: Kunal Joshi @ 2024-03-21 18:28 UTC (permalink / raw)
To: igt-dev
Cc: Kunal Joshi, Stanislav Lisovskiy, Ankit Nautiyal, Karthik B S,
Bhanuprakash Modem
add tests for force joiner
v2: check status after forcing (Ankit)
take out commoon code (Ankit)
fix missing force_joiner (Ankit)
Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
tests/intel/kms_big_joiner.c | 102 +++++++++++++++++++++++++++++------
1 file changed, 85 insertions(+), 17 deletions(-)
diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c
index eba74cddf..8c3945e15 100644
--- a/tests/intel/kms_big_joiner.c
+++ b/tests/intel/kms_big_joiner.c
@@ -44,9 +44,14 @@
* SUBTEST: basic
* Description: Verify the basic modeset on big joiner mode on all pipes
*
+ * SUBTEST: invalid-modeset-force-joiner
+ * Description: Verify if the modeset on the adjoining pipe is rejected when
+ * the pipe is active with a force joiner modeset
+ *
+ * SUBTEST: basic-force-joiner
+ * Description: Verify the basic modeset on force joiner mode on all pipes
*/
-
-IGT_TEST_DESCRIPTION("Test big joiner");
+IGT_TEST_DESCRIPTION("Test big joiner / force joiner");
#define INVALID_TEST_OUTPUT 2
@@ -96,6 +101,19 @@ static igt_output_t *get_output_by_id_or_assert(data_t *data, uint64_t id)
return NULL;
}
+static void toggle_force_joiner_on_all_non_big_joiner_outputs(data_t *data, bool toggle)
+{
+ bool status;
+ igt_output_t *output;
+ int i;
+
+ for (i = 0; i < data->non_big_joiner_output_count; i++) {
+ output = get_output_by_id_or_assert(data, data->non_big_joiner_output[i]);
+ status = igt_force_and_check_bigjoiner_status(data->drm_fd, output->name, toggle);
+ igt_assert_f(status, "Failed to toggle force joiner\n");
+ }
+}
+
static enum pipe get_next_master_pipe(data_t *data, unsigned int available_pipe_mask)
{
if ((data->master_pipes & available_pipe_mask) == 0)
@@ -122,7 +140,7 @@ static enum pipe setup_pipe(data_t *data, igt_output_t *output, enum pipe pipe,
return master_pipe;
}
-static void test_single_joiner(data_t *data, int output_count)
+static void test_single_joiner(data_t *data, int output_count, bool force_joiner)
{
int i;
enum pipe pipe, master_pipe;
@@ -133,7 +151,7 @@ static void test_single_joiner(data_t *data, int output_count)
igt_fb_t fb;
drmModeModeInfo *mode;
- outputs = data->big_joiner_output;
+ outputs = force_joiner ? data->non_big_joiner_output : data->big_joiner_output;
for (i = 0; i < output_count; i++) {
output = get_output_by_id_or_assert(data, outputs[i]);
@@ -154,7 +172,7 @@ static void test_single_joiner(data_t *data, int output_count)
}
}
-static void test_multi_joiner(data_t *data, int output_count)
+static void test_multi_joiner(data_t *data, int output_count, bool force_joiner)
{
int i;
unsigned int available_pipe_mask;
@@ -166,7 +184,7 @@ static void test_multi_joiner(data_t *data, int output_count)
drmModeModeInfo *mode;
available_pipe_mask = BIT(data->n_pipes) - 1;
- outputs = data->big_joiner_output;
+ outputs = force_joiner ? data->non_big_joiner_output : data->big_joiner_output;
igt_display_reset(&data->display);
for (i = 0; i < output_count; i++) {
@@ -194,7 +212,7 @@ static void test_multi_joiner(data_t *data, int output_count)
}
static void test_invalid_modeset_two_joiner(data_t *data,
- bool combined)
+ bool combined, bool force_joiner)
{
int i, j, ret;
unsigned int available_pipe_mask;
@@ -207,7 +225,8 @@ static void test_invalid_modeset_two_joiner(data_t *data,
drmModeModeInfo *mode;
available_pipe_mask = BIT(data->n_pipes) - 1;
- outputs = combined ? data->combined_output : data->big_joiner_output;
+ outputs = force_joiner ? data->non_big_joiner_output :
+ combined ? data->combined_output : data->big_joiner_output;
for (i = 0; i < data->n_pipes-1; i++) {
igt_display_reset(&data->display);
@@ -240,7 +259,7 @@ static void test_invalid_modeset_two_joiner(data_t *data,
}
}
-static void test_big_joiner_on_last_pipe(data_t *data)
+static void test_joiner_on_last_pipe(data_t *data, bool force_joiner)
{
int i, len, ret;
uint64_t *outputs;
@@ -249,8 +268,8 @@ static void test_big_joiner_on_last_pipe(data_t *data)
igt_fb_t fb;
drmModeModeInfo *mode;
- len = data->big_joiner_output_count;
- outputs = data->big_joiner_output;
+ len = force_joiner ? data->non_big_joiner_output_count : data->big_joiner_output_count;
+ outputs = force_joiner ? data->non_big_joiner_output : data->big_joiner_output;
for (i = 0; i < len; i++) {
igt_display_reset(&data->display);
@@ -274,12 +293,14 @@ static void test_big_joiner_on_last_pipe(data_t *data)
igt_main
{
+ bool force_joiner_supported;
int i, j;
igt_output_t *output;
drmModeModeInfo mode;
data_t data;
igt_fixture {
+ force_joiner_supported = false;
data.big_joiner_output_count = 0;
data.non_big_joiner_output_count = 0;
data.combined_output_count = 0;
@@ -307,7 +328,10 @@ igt_main
data.big_joiner_output[data.big_joiner_output_count++] = output->config.connector->connector_id;
igt_output_override_mode(output, &mode);
} else {
- data.non_big_joiner_output[data.non_big_joiner_output_count++] = output->config.connector->connector_id;
+ if (igt_has_force_joiner_debugfs(data.drm_fd, output)) {
+ force_joiner_supported = true;
+ data.non_big_joiner_output[data.non_big_joiner_output_count++] = output->config.connector->connector_id;
+ }
}
data.output_count++;
}
@@ -330,10 +354,10 @@ igt_main
igt_require_f(data.n_pipes > 1,
"Minimum 2 pipes required\n");
igt_dynamic_f("single-joiner")
- test_single_joiner(&data, data.big_joiner_output_count);
+ test_single_joiner(&data, data.big_joiner_output_count, false);
if (data.big_joiner_output_count > 1)
igt_dynamic_f("multi-joiner")
- test_multi_joiner(&data, data.big_joiner_output_count);
+ test_multi_joiner(&data, data.big_joiner_output_count, false);
}
igt_subtest_with_dynamic("invalid-modeset") {
@@ -341,13 +365,57 @@ igt_main
igt_require_f(data.n_pipes > 1, "Minimum of 2 pipes are required\n");
if (data.big_joiner_output_count >= 1)
igt_dynamic_f("big_joiner_on_last_pipe")
- test_big_joiner_on_last_pipe(&data);
+ test_joiner_on_last_pipe(&data, false);
if (data.big_joiner_output_count > 1)
igt_dynamic_f("invalid_combinations")
- test_invalid_modeset_two_joiner(&data, false);
+ test_invalid_modeset_two_joiner(&data, false, false);
if (data.combined_output_count)
igt_dynamic_f("combined_output")
- test_invalid_modeset_two_joiner(&data, true);
+ test_invalid_modeset_two_joiner(&data, true, false);
+ }
+
+ igt_describe("Verify the basic modeset on big joiner mode on all pipes");
+ igt_subtest_with_dynamic("basic-force-joiner") {
+ igt_require_f(force_joiner_supported,
+ "force joiner not supported on this platform or none of the connected output supports it\n");
+ igt_require_f(data.non_big_joiner_output_count > 0,
+ "No non big joiner output found\n");
+ igt_require_f(data.n_pipes > 1,
+ "Minimum 2 pipes required\n");
+ igt_dynamic_f("single") {
+ toggle_force_joiner_on_all_non_big_joiner_outputs(&data, true);
+ test_single_joiner(&data, data.non_big_joiner_output_count, true);
+ toggle_force_joiner_on_all_non_big_joiner_outputs(&data, false);
+ }
+ if (data.non_big_joiner_output_count > 1) {
+ igt_dynamic_f("multi") {
+ toggle_force_joiner_on_all_non_big_joiner_outputs(&data, true);
+ test_multi_joiner(&data, data.non_big_joiner_output_count, true);
+ toggle_force_joiner_on_all_non_big_joiner_outputs(&data, false);
+ }
+ }
+ }
+
+ igt_subtest_with_dynamic("invalid-modeset-force-joiner") {
+ igt_require_f(force_joiner_supported,
+ "force joiner not supported on this platform or none of the connected output supports it\n");
+ igt_require_f(data.non_big_joiner_output_count > 0, "Non big joiner output not found\n");
+ igt_require_f(data.n_pipes > 1, "Minimum of 2 pipes are required\n");
+
+ if (data.non_big_joiner_output_count >= 1) {
+ igt_dynamic_f("big_joiner_on_last_pipe") {
+ toggle_force_joiner_on_all_non_big_joiner_outputs(&data, true);
+ test_joiner_on_last_pipe(&data, true);
+ toggle_force_joiner_on_all_non_big_joiner_outputs(&data, false);
+ }
+ }
+ if (data.non_big_joiner_output_count > 1) {
+ igt_dynamic_f("invalid_combinations") {
+ toggle_force_joiner_on_all_non_big_joiner_outputs(&data, true);
+ test_invalid_modeset_two_joiner(&data, false, true);
+ toggle_force_joiner_on_all_non_big_joiner_outputs(&data, false);
+ }
+ }
}
igt_fixture {
--
2.34.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* ✗ GitLab.Pipeline: warning for revamp big joiner test (rev8)
2024-03-21 18:28 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
` (3 preceding siblings ...)
2024-03-21 18:28 ` [PATCH i-g-t 4/4] tests/intel/kms_big_joiner: add tests for " Kunal Joshi
@ 2024-03-21 18:36 ` Patchwork
2024-03-21 19:06 ` ✓ Fi.CI.BAT: success " Patchwork
` (2 subsequent siblings)
7 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2024-03-21 18:36 UTC (permalink / raw)
To: Kunal Joshi; +Cc: igt-dev
== Series Details ==
Series: revamp big joiner test (rev8)
URL : https://patchwork.freedesktop.org/series/130572/
State : warning
== Summary ==
Pipeline status: FAILED.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/1133874 for the overview.
build:tests-debian-meson-mips has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/56612278):
Checking if the user of the pipeline is allowed...
Checking if the job's project is part of a well-known group...
Thank you for contributing to freedesktop.org
Fetching changes...
Reinitialized existing Git repository in /builds/gfx-ci/igt-ci-tags/.git/
Checking out a0161063 as detached HEAD (ref is intel/IGTPW_10875)...
Removing build/
Removing lib/i915/perf-configs/__pycache__/
Removing scripts/__pycache__/
Skipping Git submodules setup
section_end:1711045727:get_sources
section_start:1711045727:step_script
Executing "step_script" stage of the job script
Using docker image sha256:cc55efdc667be826910d414a562c76ce1130a9c15255a0dd115431bc42f83448 for registry.freedesktop.org/gfx-ci/igt-ci-tags/build-debian-mips:commit-a01610632f2e7149e517109ae10756520d3a9edf with digest registry.freedesktop.org/gfx-ci/igt-ci-tags/build-debian-mips@sha256:c829c44880da4782b7a72626c259ac6904b4bd5f08601e66b3be889ca1c0cf79 ...
section_end:1711045728:step_script
section_start:1711045728:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1711045729:cleanup_file_variables
ERROR: Job failed (system failure): Error response from daemon: no such image: docker.io/library/sha256:cc55efdc667be826910d414a562c76ce1130a9c15255a0dd115431bc42f83448: image not known (docker.go:570:0s)
== Logs ==
For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/1133874
^ permalink raw reply [flat|nested] 18+ messages in thread
* ✓ Fi.CI.BAT: success for revamp big joiner test (rev8)
2024-03-21 18:28 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
` (4 preceding siblings ...)
2024-03-21 18:36 ` ✗ GitLab.Pipeline: warning for revamp big joiner test (rev8) Patchwork
@ 2024-03-21 19:06 ` Patchwork
2024-03-21 19:10 ` ✓ CI.xeBAT: " Patchwork
2024-03-22 11:15 ` ✗ Fi.CI.IGT: failure " Patchwork
7 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2024-03-21 19:06 UTC (permalink / raw)
To: Kunal Joshi; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 2450 bytes --]
== Series Details ==
Series: revamp big joiner test (rev8)
URL : https://patchwork.freedesktop.org/series/130572/
State : success
== Summary ==
CI Bug Log - changes from IGT_7775 -> IGTPW_10875
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/index.html
Participating hosts (40 -> 36)
------------------------------
Missing (4): bat-dg2-11 bat-jsl-1 fi-snb-2520m fi-kbl-8809g
Known issues
------------
Here are the changes found in IGTPW_10875 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@hangcheck:
- bat-rpls-3: [PASS][1] -> [DMESG-WARN][2] ([i915#5591])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/bat-rpls-3/igt@i915_selftest@live@hangcheck.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/bat-rpls-3/igt@i915_selftest@live@hangcheck.html
#### Possible fixes ####
* igt@gem_lmem_swapping@basic@lmem0:
- bat-dg2-14: [FAIL][3] ([i915#10378]) -> [PASS][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/bat-dg2-14/igt@gem_lmem_swapping@basic@lmem0.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/bat-dg2-14/igt@gem_lmem_swapping@basic@lmem0.html
* igt@i915_selftest@live@hangcheck:
- bat-adlm-1: [ABORT][5] -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/bat-adlm-1/igt@i915_selftest@live@hangcheck.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/bat-adlm-1/igt@i915_selftest@live@hangcheck.html
[i915#10378]: https://gitlab.freedesktop.org/drm/intel/issues/10378
[i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7775 -> IGTPW_10875
CI-20190529: 20190529
CI_DRM_14463: 0cd99ca612f004f19c35f4966a584f0a729bbc31 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_10875: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/index.html
IGT_7775: 0ee4074685c1e184f2d3612ea6eb4d126f9a2e23 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@kms_big_joiner@basic-force-joiner
+igt@kms_big_joiner@invalid-modeset-force-joiner
-igt@kms_big_joiner@2x-modeset
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/index.html
[-- Attachment #2: Type: text/html, Size: 3111 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* ✓ CI.xeBAT: success for revamp big joiner test (rev8)
2024-03-21 18:28 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
` (5 preceding siblings ...)
2024-03-21 19:06 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2024-03-21 19:10 ` Patchwork
2024-03-22 11:15 ` ✗ Fi.CI.IGT: failure " Patchwork
7 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2024-03-21 19:10 UTC (permalink / raw)
To: Kunal Joshi; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 1483 bytes --]
== Series Details ==
Series: revamp big joiner test (rev8)
URL : https://patchwork.freedesktop.org/series/130572/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_7775_BAT -> XEIGTPW_10875_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in XEIGTPW_10875_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@xe_exec_threads@threads-mixed-shared-vm-basic:
- bat-dg2-oem2: [PASS][1] -> [INCOMPLETE][2] ([Intel XE#1169])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7775/bat-dg2-oem2/igt@xe_exec_threads@threads-mixed-shared-vm-basic.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10875/bat-dg2-oem2/igt@xe_exec_threads@threads-mixed-shared-vm-basic.html
[Intel XE#1169]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1169
Build changes
-------------
* IGT: IGT_7775 -> IGTPW_10875
IGTPW_10875: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/index.html
IGT_7775: 0ee4074685c1e184f2d3612ea6eb4d126f9a2e23 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-972-0cd99ca612f004f19c35f4966a584f0a729bbc31: 0cd99ca612f004f19c35f4966a584f0a729bbc31
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10875/index.html
[-- Attachment #2: Type: text/html, Size: 2045 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* ✗ Fi.CI.IGT: failure for revamp big joiner test (rev8)
2024-03-21 18:28 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
` (6 preceding siblings ...)
2024-03-21 19:10 ` ✓ CI.xeBAT: " Patchwork
@ 2024-03-22 11:15 ` Patchwork
7 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2024-03-22 11:15 UTC (permalink / raw)
To: Kunal Joshi; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 92153 bytes --]
== Series Details ==
Series: revamp big joiner test (rev8)
URL : https://patchwork.freedesktop.org/series/130572/
State : failure
== Summary ==
CI Bug Log - changes from IGT_7775_full -> IGTPW_10875_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_10875_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_10875_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_10875/index.html
Participating hosts (10 -> 9)
------------------------------
Missing (1): shard-snb-0
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_10875_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_ctx_shared@q-promotion@rcs0:
- shard-dg2: NOTRUN -> [TIMEOUT][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@gem_ctx_shared@q-promotion@rcs0.html
* igt@i915_pm_rpm@gem-execbuf-stress@extra-wait-smem0:
- shard-dg2: NOTRUN -> [INCOMPLETE][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-2/igt@i915_pm_rpm@gem-execbuf-stress@extra-wait-smem0.html
* {igt@kms_big_joiner@basic-force-joiner} (NEW):
- shard-tglu: NOTRUN -> [SKIP][3] +1 other test skip
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-7/igt@kms_big_joiner@basic-force-joiner.html
- shard-rkl: NOTRUN -> [SKIP][4]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-4/igt@kms_big_joiner@basic-force-joiner.html
- shard-dg1: NOTRUN -> [SKIP][5]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-13/igt@kms_big_joiner@basic-force-joiner.html
* {igt@kms_big_joiner@invalid-modeset-force-joiner} (NEW):
- shard-dg2: NOTRUN -> [SKIP][6] +2 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-2/igt@kms_big_joiner@invalid-modeset-force-joiner.html
* igt@kms_flip@flip-vs-blocking-wf-vblank@a-hdmi-a4:
- shard-dg1: NOTRUN -> [FAIL][7]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@kms_flip@flip-vs-blocking-wf-vblank@a-hdmi-a4.html
* igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1:
- shard-dg2: [PASS][8] -> [INCOMPLETE][9] +1 other test incomplete
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-10/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1.html
* igt@kms_vblank@wait-forked-busy-hang@pipe-b-hdmi-a-1:
- shard-snb: [PASS][10] -> [ABORT][11]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-snb1/igt@kms_vblank@wait-forked-busy-hang@pipe-b-hdmi-a-1.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-snb6/igt@kms_vblank@wait-forked-busy-hang@pipe-b-hdmi-a-1.html
#### Warnings ####
* igt@kms_big_joiner@invalid-modeset:
- shard-dg1: [SKIP][12] ([i915#2705]) -> [SKIP][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg1-14/igt@kms_big_joiner@invalid-modeset.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-13/igt@kms_big_joiner@invalid-modeset.html
- shard-tglu: [SKIP][14] ([i915#2705]) -> [SKIP][15] +1 other test skip
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-tglu-7/igt@kms_big_joiner@invalid-modeset.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-7/igt@kms_big_joiner@invalid-modeset.html
- shard-mtlp: [SKIP][16] ([i915#2705]) -> [SKIP][17] +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-mtlp-5/igt@kms_big_joiner@invalid-modeset.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-1/igt@kms_big_joiner@invalid-modeset.html
- shard-rkl: [SKIP][18] ([i915#2705]) -> [SKIP][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-rkl-4/igt@kms_big_joiner@invalid-modeset.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-4/igt@kms_big_joiner@invalid-modeset.html
* igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1:
- shard-snb: [FAIL][20] ([i915#2122]) -> [ABORT][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-snb7/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-snb2/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1.html
New tests
---------
New tests have been introduced between IGT_7775_full and IGTPW_10875_full:
### New IGT tests (5) ###
* igt@gem_softpin:
- Statuses :
- Exec time: [None] s
* igt@kms_big_joiner@basic-force-joiner:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@kms_big_joiner@basic-force-joiner@single:
- Statuses : 1 pass(s)
- Exec time: [2.48] s
* igt@kms_big_joiner@invalid-modeset-force-joiner:
- Statuses : 4 skip(s)
- Exec time: [0.0] s
* igt@kms_big_joiner@invalid-modeset-force-joiner@big_joiner_on_last_pipe:
- Statuses : 1 pass(s)
- Exec time: [0.06] s
Known issues
------------
Here are the changes found in IGTPW_10875_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@api_intel_bb@blit-reloc-keep-cache:
- shard-dg2: NOTRUN -> [SKIP][22] ([i915#8411])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-3/igt@api_intel_bb@blit-reloc-keep-cache.html
* igt@api_intel_bb@crc32:
- shard-rkl: NOTRUN -> [SKIP][23] ([i915#6230])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@api_intel_bb@crc32.html
* igt@api_intel_bb@object-reloc-keep-cache:
- shard-rkl: NOTRUN -> [SKIP][24] ([i915#8411])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@api_intel_bb@object-reloc-keep-cache.html
* igt@debugfs_test@basic-hwmon:
- shard-mtlp: NOTRUN -> [SKIP][25] ([i915#9318])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-8/igt@debugfs_test@basic-hwmon.html
* igt@device_reset@unbind-cold-reset-rebind:
- shard-dg2: NOTRUN -> [SKIP][26] ([i915#7701])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@device_reset@unbind-cold-reset-rebind.html
* igt@drm_fdinfo@all-busy-idle-check-all:
- shard-dg1: NOTRUN -> [SKIP][27] ([i915#8414])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@drm_fdinfo@all-busy-idle-check-all.html
* igt@drm_fdinfo@isolation@rcs0:
- shard-mtlp: NOTRUN -> [SKIP][28] ([i915#8414]) +6 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-3/igt@drm_fdinfo@isolation@rcs0.html
* igt@drm_fdinfo@most-busy-check-all@bcs0:
- shard-dg2: NOTRUN -> [SKIP][29] ([i915#8414]) +12 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-6/igt@drm_fdinfo@most-busy-check-all@bcs0.html
* igt@drm_fdinfo@most-busy-idle-check-all@rcs0:
- shard-rkl: [PASS][30] -> [FAIL][31] ([i915#7742])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-rkl-4/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html
* igt@drm_fdinfo@virtual-idle:
- shard-rkl: NOTRUN -> [FAIL][32] ([i915#7742])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@drm_fdinfo@virtual-idle.html
* igt@gem_bad_reloc@negative-reloc-lut:
- shard-rkl: NOTRUN -> [SKIP][33] ([i915#3281]) +11 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-2/igt@gem_bad_reloc@negative-reloc-lut.html
* igt@gem_busy@semaphore:
- shard-dg1: NOTRUN -> [SKIP][34] ([i915#3936])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@gem_busy@semaphore.html
- shard-mtlp: NOTRUN -> [SKIP][35] ([i915#3936])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-7/igt@gem_busy@semaphore.html
* igt@gem_ccs@block-copy-compressed:
- shard-dg1: NOTRUN -> [SKIP][36] ([i915#3555] / [i915#9323])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@gem_ccs@block-copy-compressed.html
* igt@gem_ccs@block-multicopy-compressed:
- shard-rkl: NOTRUN -> [SKIP][37] ([i915#9323])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-2/igt@gem_ccs@block-multicopy-compressed.html
* igt@gem_ccs@ctrl-surf-copy:
- shard-rkl: NOTRUN -> [SKIP][38] ([i915#3555] / [i915#9323])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-4/igt@gem_ccs@ctrl-surf-copy.html
* igt@gem_ccs@ctrl-surf-copy-new-ctx:
- shard-tglu: NOTRUN -> [SKIP][39] ([i915#9323])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-3/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
* igt@gem_create@create-ext-cpu-access-sanity-check:
- shard-mtlp: NOTRUN -> [SKIP][40] ([i915#6335])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-6/igt@gem_create@create-ext-cpu-access-sanity-check.html
* igt@gem_ctx_persistence@heartbeat-hang:
- shard-dg2: NOTRUN -> [SKIP][41] ([i915#8555]) +1 other test skip
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-3/igt@gem_ctx_persistence@heartbeat-hang.html
* igt@gem_ctx_persistence@heartbeat-stop:
- shard-dg1: NOTRUN -> [SKIP][42] ([i915#8555])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@gem_ctx_persistence@heartbeat-stop.html
* igt@gem_ctx_persistence@saturated-hostile-nopreempt@ccs0:
- shard-dg2: NOTRUN -> [SKIP][43] ([i915#5882]) +9 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@gem_ctx_persistence@saturated-hostile-nopreempt@ccs0.html
* igt@gem_ctx_sseu@engines:
- shard-dg2: NOTRUN -> [SKIP][44] ([i915#280])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-6/igt@gem_ctx_sseu@engines.html
* igt@gem_exec_balancer@bonded-dual:
- shard-dg2: NOTRUN -> [SKIP][45] ([i915#4771])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@gem_exec_balancer@bonded-dual.html
* igt@gem_exec_balancer@bonded-false-hang:
- shard-mtlp: NOTRUN -> [SKIP][46] ([i915#4812]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-5/igt@gem_exec_balancer@bonded-false-hang.html
* igt@gem_exec_balancer@hog:
- shard-dg1: NOTRUN -> [SKIP][47] ([i915#4812]) +2 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@gem_exec_balancer@hog.html
* igt@gem_exec_balancer@parallel-keep-in-fence:
- shard-rkl: NOTRUN -> [SKIP][48] ([i915#4525])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@gem_exec_balancer@parallel-keep-in-fence.html
* igt@gem_exec_capture@capture-invisible@lmem0:
- shard-dg1: NOTRUN -> [SKIP][49] ([i915#6334]) +1 other test skip
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@gem_exec_capture@capture-invisible@lmem0.html
* igt@gem_exec_capture@capture-invisible@smem0:
- shard-mtlp: NOTRUN -> [SKIP][50] ([i915#6334])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-3/igt@gem_exec_capture@capture-invisible@smem0.html
* igt@gem_exec_capture@capture@vecs0-lmem0:
- shard-dg2: NOTRUN -> [FAIL][51] ([i915#10386]) +3 other tests fail
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@gem_exec_capture@capture@vecs0-lmem0.html
* igt@gem_exec_fair@basic-none-rrul:
- shard-mtlp: NOTRUN -> [SKIP][52] ([i915#4473] / [i915#4771])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@gem_exec_fair@basic-none-rrul.html
* igt@gem_exec_fair@basic-none-rrul@rcs0:
- shard-glk: NOTRUN -> [FAIL][53] ([i915#2842]) +1 other test fail
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-glk5/igt@gem_exec_fair@basic-none-rrul@rcs0.html
* igt@gem_exec_fair@basic-none-share:
- shard-dg2: NOTRUN -> [SKIP][54] ([i915#3539] / [i915#4852]) +5 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@gem_exec_fair@basic-none-share.html
* igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-rkl: [PASS][55] -> [FAIL][56] ([i915#2842])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-rkl-4/igt@gem_exec_fair@basic-none-solo@rcs0.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@gem_exec_fair@basic-none-solo@rcs0.html
* igt@gem_exec_fair@basic-none@bcs0:
- shard-rkl: NOTRUN -> [FAIL][57] ([i915#2842]) +3 other tests fail
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@gem_exec_fair@basic-none@bcs0.html
* igt@gem_exec_fence@submit67:
- shard-dg2: NOTRUN -> [SKIP][58] ([i915#4812])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-6/igt@gem_exec_fence@submit67.html
* igt@gem_exec_flush@basic-batch-kernel-default-cmd:
- shard-mtlp: NOTRUN -> [SKIP][59] ([i915#3711])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-6/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
* igt@gem_exec_flush@basic-uc-set-default:
- shard-dg1: NOTRUN -> [SKIP][60] ([i915#3539])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@gem_exec_flush@basic-uc-set-default.html
* igt@gem_exec_flush@basic-wb-prw-default:
- shard-dg1: NOTRUN -> [SKIP][61] ([i915#3539] / [i915#4852]) +1 other test skip
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@gem_exec_flush@basic-wb-prw-default.html
* igt@gem_exec_reloc@basic-cpu-wc:
- shard-dg1: NOTRUN -> [SKIP][62] ([i915#3281]) +1 other test skip
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@gem_exec_reloc@basic-cpu-wc.html
* igt@gem_exec_reloc@basic-gtt-wc-active:
- shard-mtlp: NOTRUN -> [SKIP][63] ([i915#3281]) +5 other tests skip
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@gem_exec_reloc@basic-gtt-wc-active.html
* igt@gem_exec_reloc@basic-write-read-active:
- shard-dg2: NOTRUN -> [SKIP][64] ([i915#3281]) +6 other tests skip
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@gem_exec_reloc@basic-write-read-active.html
* igt@gem_exec_schedule@preempt-queue-contexts:
- shard-dg2: NOTRUN -> [SKIP][65] ([i915#4537] / [i915#4812])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@gem_exec_schedule@preempt-queue-contexts.html
* igt@gem_fence_thrash@bo-write-verify-threaded-none:
- shard-dg2: NOTRUN -> [SKIP][66] ([i915#4860])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-2/igt@gem_fence_thrash@bo-write-verify-threaded-none.html
* igt@gem_fenced_exec_thrash@no-spare-fences-interruptible:
- shard-mtlp: NOTRUN -> [SKIP][67] ([i915#4860]) +1 other test skip
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@gem_fenced_exec_thrash@no-spare-fences-interruptible.html
* igt@gem_lmem_swapping@basic:
- shard-tglu: NOTRUN -> [SKIP][68] ([i915#4613]) +1 other test skip
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-10/igt@gem_lmem_swapping@basic.html
* igt@gem_lmem_swapping@heavy-multi@lmem0:
- shard-dg2: NOTRUN -> [FAIL][69] ([i915#10378])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@gem_lmem_swapping@heavy-multi@lmem0.html
* igt@gem_lmem_swapping@heavy-verify-multi-ccs@lmem0:
- shard-dg1: NOTRUN -> [SKIP][70] ([i915#4565])
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@gem_lmem_swapping@heavy-verify-multi-ccs@lmem0.html
* igt@gem_lmem_swapping@heavy-verify-random@lmem0:
- shard-dg2: [PASS][71] -> [FAIL][72] ([i915#10378])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-2/igt@gem_lmem_swapping@heavy-verify-random@lmem0.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@gem_lmem_swapping@heavy-verify-random@lmem0.html
* igt@gem_lmem_swapping@parallel-multi:
- shard-rkl: NOTRUN -> [SKIP][73] ([i915#4613]) +3 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-4/igt@gem_lmem_swapping@parallel-multi.html
* igt@gem_lmem_swapping@random-engines:
- shard-mtlp: NOTRUN -> [SKIP][74] ([i915#4613])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-4/igt@gem_lmem_swapping@random-engines.html
* igt@gem_lmem_swapping@smem-oom@lmem0:
- shard-dg2: NOTRUN -> [DMESG-WARN][75] ([i915#4936] / [i915#5493])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@gem_lmem_swapping@smem-oom@lmem0.html
* igt@gem_lmem_swapping@verify:
- shard-glk: NOTRUN -> [SKIP][76] ([i915#4613]) +2 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-glk9/igt@gem_lmem_swapping@verify.html
* igt@gem_mmap@bad-size:
- shard-mtlp: NOTRUN -> [SKIP][77] ([i915#4083]) +1 other test skip
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-7/igt@gem_mmap@bad-size.html
* igt@gem_mmap@short-mmap:
- shard-dg1: NOTRUN -> [SKIP][78] ([i915#4083]) +1 other test skip
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@gem_mmap@short-mmap.html
* igt@gem_mmap_gtt@big-bo-tiledy:
- shard-mtlp: NOTRUN -> [SKIP][79] ([i915#4077]) +5 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-5/igt@gem_mmap_gtt@big-bo-tiledy.html
* igt@gem_mmap_gtt@cpuset-big-copy-odd:
- shard-dg2: NOTRUN -> [SKIP][80] ([i915#4077]) +8 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-3/igt@gem_mmap_gtt@cpuset-big-copy-odd.html
* igt@gem_mmap_gtt@hang:
- shard-dg1: NOTRUN -> [SKIP][81] ([i915#4077]) +2 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@gem_mmap_gtt@hang.html
* igt@gem_mmap_wc@invalid-flags:
- shard-dg2: NOTRUN -> [SKIP][82] ([i915#4083]) +7 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@gem_mmap_wc@invalid-flags.html
* igt@gem_partial_pwrite_pread@reads-uncached:
- shard-dg1: NOTRUN -> [SKIP][83] ([i915#3282]) +2 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@gem_partial_pwrite_pread@reads-uncached.html
* igt@gem_partial_pwrite_pread@write:
- shard-dg2: NOTRUN -> [SKIP][84] ([i915#3282]) +3 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-10/igt@gem_partial_pwrite_pread@write.html
* igt@gem_pxp@display-protected-crc:
- shard-dg1: NOTRUN -> [SKIP][85] ([i915#4270])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@gem_pxp@display-protected-crc.html
- shard-mtlp: NOTRUN -> [SKIP][86] ([i915#4270]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@gem_pxp@display-protected-crc.html
* igt@gem_pxp@regular-baseline-src-copy-readible:
- shard-dg2: NOTRUN -> [SKIP][87] ([i915#4270]) +3 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-6/igt@gem_pxp@regular-baseline-src-copy-readible.html
* igt@gem_pxp@reject-modify-context-protection-on:
- shard-rkl: NOTRUN -> [SKIP][88] ([i915#4270]) +3 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-2/igt@gem_pxp@reject-modify-context-protection-on.html
* igt@gem_readwrite@read-bad-handle:
- shard-mtlp: NOTRUN -> [SKIP][89] ([i915#3282]) +5 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-5/igt@gem_readwrite@read-bad-handle.html
* igt@gem_render_copy@y-tiled-mc-ccs-to-vebox-yf-tiled:
- shard-mtlp: NOTRUN -> [SKIP][90] ([i915#8428]) +4 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-7/igt@gem_render_copy@y-tiled-mc-ccs-to-vebox-yf-tiled.html
* igt@gem_render_copy@y-tiled-to-vebox-yf-tiled:
- shard-dg2: NOTRUN -> [SKIP][91] ([i915#5190] / [i915#8428]) +8 other tests skip
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@gem_render_copy@y-tiled-to-vebox-yf-tiled.html
* igt@gem_set_tiling_vs_blt@tiled-to-tiled:
- shard-dg2: NOTRUN -> [SKIP][92] ([i915#4079]) +2 other tests skip
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html
* igt@gem_softpin@evict-snoop:
- shard-mtlp: NOTRUN -> [SKIP][93] ([i915#4885])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-7/igt@gem_softpin@evict-snoop.html
- shard-dg2: NOTRUN -> [SKIP][94] ([i915#4885])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@gem_softpin@evict-snoop.html
* igt@gem_unfence_active_buffers:
- shard-dg1: NOTRUN -> [SKIP][95] ([i915#4879])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@gem_unfence_active_buffers.html
- shard-mtlp: NOTRUN -> [SKIP][96] ([i915#4879])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@gem_unfence_active_buffers.html
* igt@gem_userptr_blits@dmabuf-sync:
- shard-glk: NOTRUN -> [SKIP][97] ([i915#3323])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-glk2/igt@gem_userptr_blits@dmabuf-sync.html
* igt@gem_userptr_blits@forbidden-operations:
- shard-rkl: NOTRUN -> [SKIP][98] ([i915#3282]) +5 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@gem_userptr_blits@forbidden-operations.html
* igt@gem_userptr_blits@invalid-mmap-offset-unsync:
- shard-tglu: NOTRUN -> [SKIP][99] ([i915#3297])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-6/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
* igt@gem_userptr_blits@unsync-overlap:
- shard-mtlp: NOTRUN -> [SKIP][100] ([i915#3297]) +1 other test skip
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@gem_userptr_blits@unsync-overlap.html
* igt@gem_userptr_blits@unsync-unmap:
- shard-dg2: NOTRUN -> [SKIP][101] ([i915#3297]) +2 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@gem_userptr_blits@unsync-unmap.html
- shard-rkl: NOTRUN -> [SKIP][102] ([i915#3297])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@gem_userptr_blits@unsync-unmap.html
* igt@gen9_exec_parse@batch-without-end:
- shard-mtlp: NOTRUN -> [SKIP][103] ([i915#2856]) +3 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-5/igt@gen9_exec_parse@batch-without-end.html
* igt@gen9_exec_parse@bb-secure:
- shard-tglu: NOTRUN -> [SKIP][104] ([i915#2527] / [i915#2856]) +1 other test skip
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-8/igt@gen9_exec_parse@bb-secure.html
* igt@gen9_exec_parse@bb-start-out:
- shard-rkl: NOTRUN -> [SKIP][105] ([i915#2527]) +4 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@gen9_exec_parse@bb-start-out.html
* igt@gen9_exec_parse@secure-batches:
- shard-dg2: NOTRUN -> [SKIP][106] ([i915#2856]) +3 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-10/igt@gen9_exec_parse@secure-batches.html
* igt@gen9_exec_parse@unaligned-access:
- shard-dg1: NOTRUN -> [SKIP][107] ([i915#2527]) +1 other test skip
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@gen9_exec_parse@unaligned-access.html
* igt@i915_module_load@reload-no-display:
- shard-snb: [PASS][108] -> [INCOMPLETE][109] ([i915#9849])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-snb6/igt@i915_module_load@reload-no-display.html
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-snb1/igt@i915_module_load@reload-no-display.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-rkl: [PASS][110] -> [INCOMPLETE][111] ([i915#9820] / [i915#9849])
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-rkl-7/igt@i915_module_load@reload-with-fault-injection.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_module_load@resize-bar:
- shard-mtlp: NOTRUN -> [SKIP][112] ([i915#6412])
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-8/igt@i915_module_load@resize-bar.html
* igt@i915_pm_freq_api@freq-suspend:
- shard-rkl: NOTRUN -> [SKIP][113] ([i915#8399])
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@i915_pm_freq_api@freq-suspend.html
* igt@i915_pm_rps@min-max-config-idle:
- shard-dg2: NOTRUN -> [SKIP][114] ([i915#6621])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-10/igt@i915_pm_rps@min-max-config-idle.html
* igt@i915_pm_rps@thresholds@gt0:
- shard-dg2: NOTRUN -> [SKIP][115] ([i915#8925])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-3/igt@i915_pm_rps@thresholds@gt0.html
* igt@i915_pm_sseu@full-enable:
- shard-mtlp: NOTRUN -> [SKIP][116] ([i915#8437])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-7/igt@i915_pm_sseu@full-enable.html
* igt@kms_addfb_basic@addfb25-x-tiled-legacy:
- shard-dg2: NOTRUN -> [SKIP][117] ([i915#4212])
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-10/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html
* igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy:
- shard-mtlp: NOTRUN -> [SKIP][118] ([i915#4212])
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-5/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
* igt@kms_async_flips@invalid-async-flip:
- shard-mtlp: NOTRUN -> [SKIP][119] ([i915#6228])
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-1/igt@kms_async_flips@invalid-async-flip.html
* igt@kms_atomic@plane-primary-overlay-mutable-zpos:
- shard-rkl: NOTRUN -> [SKIP][120] ([i915#9531])
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-5/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
- shard-tglu: NOTRUN -> [SKIP][121] ([i915#9531])
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-10/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
* igt@kms_atomic_transition@plane-all-modeset-transition:
- shard-mtlp: NOTRUN -> [SKIP][122] ([i915#1769] / [i915#3555])
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-3/igt@kms_atomic_transition@plane-all-modeset-transition.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][123] ([i915#4538] / [i915#5286])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@4-tiled-addfb-size-overflow:
- shard-dg1: NOTRUN -> [SKIP][124] ([i915#5286])
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-18/igt@kms_big_fb@4-tiled-addfb-size-overflow.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
- shard-mtlp: [PASS][125] -> [FAIL][126] ([i915#5138])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-6/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-async-flip:
- shard-tglu: NOTRUN -> [SKIP][127] ([i915#5286]) +2 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-10/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-rkl: NOTRUN -> [SKIP][128] ([i915#5286]) +3 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@linear-64bpp-rotate-270:
- shard-mtlp: NOTRUN -> [SKIP][129] +17 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-6/igt@kms_big_fb@linear-64bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
- shard-tglu: [PASS][130] -> [FAIL][131] ([i915#3743])
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-tglu-7/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-5/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-270:
- shard-rkl: NOTRUN -> [SKIP][132] ([i915#3638])
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180:
- shard-dg2: NOTRUN -> [SKIP][133] ([i915#4538] / [i915#5190]) +11 other tests skip
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-mtlp: NOTRUN -> [SKIP][134] ([i915#6187]) +1 other test skip
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-8/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
- shard-dg1: NOTRUN -> [SKIP][135] ([i915#4538]) +1 other test skip
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][136] ([i915#10307] / [i915#10434]) +4 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][137] ([i915#6095]) +61 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-3/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_ccs@bad-rotation-90-4-tiled-xe2-ccs:
- shard-dg2: NOTRUN -> [SKIP][138] ([i915#10278]) +1 other test skip
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@kms_ccs@bad-rotation-90-4-tiled-xe2-ccs.html
* igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs@pipe-a-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][139] ([i915#10307]) +210 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-6/igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs@pipe-a-hdmi-a-3.html
* igt@kms_ccs@crc-primary-basic-4-tiled-xe2-ccs:
- shard-tglu: NOTRUN -> [SKIP][140] ([i915#10278])
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-8/igt@kms_ccs@crc-primary-basic-4-tiled-xe2-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1:
- shard-glk: NOTRUN -> [SKIP][141] +349 other tests skip
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-glk1/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][142] ([i915#6095]) +59 other tests skip
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-4.html
* igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-d-hdmi-a-1:
- shard-tglu: NOTRUN -> [SKIP][143] ([i915#6095]) +23 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-8/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][144] ([i915#6095]) +39 other tests skip
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-7/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-edp-1.html
* igt@kms_cdclk@mode-transition:
- shard-rkl: NOTRUN -> [SKIP][145] ([i915#3742]) +1 other test skip
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@kms_cdclk@mode-transition.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-tglu: NOTRUN -> [SKIP][146] ([i915#3742]) +1 other test skip
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-2/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][147] ([i915#7213]) +3 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-10/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-1.html
* igt@kms_cdclk@plane-scaling@pipe-d-dp-4:
- shard-dg2: NOTRUN -> [SKIP][148] ([i915#4087]) +3 other tests skip
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@kms_cdclk@plane-scaling@pipe-d-dp-4.html
* igt@kms_chamelium_audio@dp-audio:
- shard-mtlp: NOTRUN -> [SKIP][149] ([i915#7828]) +5 other tests skip
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-6/igt@kms_chamelium_audio@dp-audio.html
* igt@kms_chamelium_color@degamma:
- shard-dg2: NOTRUN -> [SKIP][150] +22 other tests skip
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@kms_chamelium_color@degamma.html
* igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k:
- shard-dg2: NOTRUN -> [SKIP][151] ([i915#7828]) +9 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-3/igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k.html
* igt@kms_chamelium_edid@hdmi-edid-read:
- shard-dg1: NOTRUN -> [SKIP][152] ([i915#7828]) +1 other test skip
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@kms_chamelium_edid@hdmi-edid-read.html
* igt@kms_chamelium_frames@hdmi-crc-fast:
- shard-rkl: NOTRUN -> [SKIP][153] ([i915#7828]) +7 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-2/igt@kms_chamelium_frames@hdmi-crc-fast.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- shard-tglu: NOTRUN -> [SKIP][154] ([i915#7828]) +2 other tests skip
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-9/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_color@deep-color:
- shard-dg1: NOTRUN -> [SKIP][155] ([i915#3555]) +1 other test skip
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@kms_color@deep-color.html
* igt@kms_content_protection@atomic:
- shard-snb: NOTRUN -> [SKIP][156] +76 other tests skip
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-snb1/igt@kms_content_protection@atomic.html
* igt@kms_content_protection@atomic@pipe-a-dp-4:
- shard-dg2: NOTRUN -> [TIMEOUT][157] ([i915#7173])
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@kms_content_protection@atomic@pipe-a-dp-4.html
* igt@kms_content_protection@content-type-change:
- shard-rkl: NOTRUN -> [SKIP][158] ([i915#9424])
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-4/igt@kms_content_protection@content-type-change.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-mtlp: NOTRUN -> [SKIP][159] ([i915#3299])
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-dg2: NOTRUN -> [SKIP][160] ([i915#3299])
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@lic-type-0:
- shard-dg2: NOTRUN -> [SKIP][161] ([i915#9424]) +1 other test skip
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_content_protection@lic-type-0.html
* igt@kms_content_protection@lic-type-1:
- shard-dg1: NOTRUN -> [SKIP][162] ([i915#9424])
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@kms_content_protection@lic-type-1.html
* igt@kms_content_protection@uevent:
- shard-tglu: NOTRUN -> [SKIP][163] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424])
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-4/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-dg2: NOTRUN -> [SKIP][164] ([i915#3359])
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-3/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_crc@cursor-rapid-movement-128x42:
- shard-mtlp: NOTRUN -> [SKIP][165] ([i915#8814]) +3 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html
* igt@kms_cursor_crc@cursor-rapid-movement-32x10:
- shard-rkl: NOTRUN -> [SKIP][166] ([i915#3555]) +2 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x170:
- shard-rkl: NOTRUN -> [SKIP][167] ([i915#3359])
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x512:
- shard-tglu: NOTRUN -> [SKIP][168] ([i915#3359])
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-7/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
* igt@kms_cursor_crc@cursor-sliding-32x10:
- shard-dg2: NOTRUN -> [SKIP][169] ([i915#3555]) +8 other tests skip
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-3/igt@kms_cursor_crc@cursor-sliding-32x10.html
* igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
- shard-mtlp: NOTRUN -> [SKIP][170] ([i915#9809])
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-4/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- shard-mtlp: NOTRUN -> [SKIP][171] ([i915#4213])
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-glk: NOTRUN -> [FAIL][172] ([i915#2346])
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-dg1: NOTRUN -> [SKIP][173] ([i915#4103] / [i915#4213])
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-18/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
- shard-rkl: NOTRUN -> [SKIP][174] ([i915#4103])
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-dg2: NOTRUN -> [SKIP][175] ([i915#4103] / [i915#4213])
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
- shard-dg1: NOTRUN -> [SKIP][176] ([i915#9723])
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
- shard-mtlp: NOTRUN -> [SKIP][177] ([i915#9833])
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-7/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
* igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-dp-4:
- shard-dg2: NOTRUN -> [SKIP][178] ([i915#9227])
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-dp-4.html
* igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][179] ([i915#9723])
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-3/igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-hdmi-a-2.html
* igt@kms_display_modes@extended-mode-basic:
- shard-mtlp: NOTRUN -> [SKIP][180] ([i915#3555] / [i915#8827])
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-8/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_display_modes@mst-extended-mode-negative:
- shard-rkl: NOTRUN -> [SKIP][181] ([i915#8588])
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@kms_display_modes@mst-extended-mode-negative.html
* igt@kms_dp_aux_dev:
- shard-rkl: NOTRUN -> [SKIP][182] ([i915#1257])
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-4/igt@kms_dp_aux_dev.html
* igt@kms_draw_crc@draw-method-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][183] ([i915#8812])
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@kms_draw_crc@draw-method-mmap-gtt.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-mtlp: NOTRUN -> [SKIP][184] ([i915#3840] / [i915#9688])
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-8/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-with-bpc:
- shard-mtlp: NOTRUN -> [SKIP][185] ([i915#3555] / [i915#3840])
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@kms_dsc@dsc-with-bpc.html
- shard-dg2: NOTRUN -> [SKIP][186] ([i915#3555] / [i915#3840])
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-10/igt@kms_dsc@dsc-with-bpc.html
* igt@kms_dsc@dsc-with-formats:
- shard-rkl: NOTRUN -> [SKIP][187] ([i915#3555] / [i915#3840])
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-6/igt@kms_dsc@dsc-with-formats.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc:
- shard-tglu: NOTRUN -> [SKIP][188] ([i915#3840] / [i915#9053])
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-8/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
* igt@kms_feature_discovery@display-4x:
- shard-rkl: NOTRUN -> [SKIP][189] ([i915#1839]) +1 other test skip
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@kms_feature_discovery@display-4x.html
- shard-dg2: NOTRUN -> [SKIP][190] ([i915#1839])
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@kms_feature_discovery@display-4x.html
* igt@kms_feature_discovery@dp-mst:
- shard-dg2: NOTRUN -> [SKIP][191] ([i915#9337])
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_feature_discovery@dp-mst.html
* igt@kms_feature_discovery@psr2:
- shard-tglu: NOTRUN -> [SKIP][192] ([i915#658])
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-10/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-dpms-vs-vblank-race:
- shard-mtlp: NOTRUN -> [SKIP][193] ([i915#3637]) +5 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-8/igt@kms_flip@2x-dpms-vs-vblank-race.html
* igt@kms_flip@2x-flip-vs-dpms:
- shard-rkl: NOTRUN -> [SKIP][194] +35 other tests skip
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-2/igt@kms_flip@2x-flip-vs-dpms.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2:
- shard-glk: [PASS][195] -> [FAIL][196] ([i915#79])
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-glk5/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
* igt@kms_flip@2x-flip-vs-fences-interruptible:
- shard-tglu: NOTRUN -> [SKIP][197] ([i915#3637]) +1 other test skip
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-2/igt@kms_flip@2x-flip-vs-fences-interruptible.html
* igt@kms_flip@2x-flip-vs-modeset-vs-hang:
- shard-dg1: NOTRUN -> [SKIP][198] ([i915#9934]) +3 other tests skip
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@kms_flip@2x-flip-vs-modeset-vs-hang.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode:
- shard-rkl: NOTRUN -> [SKIP][199] ([i915#2672]) +4 other tests skip
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][200] ([i915#2587] / [i915#2672]) +1 other test skip
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-9/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-dg1: NOTRUN -> [SKIP][201] ([i915#2587] / [i915#2672])
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][202] ([i915#2672]) +1 other test skip
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-8/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][203] ([i915#2672]) +5 other tests skip
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][204] ([i915#3555] / [i915#8810])
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][205] ([i915#2672] / [i915#3555]) +2 other tests skip
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-default-mode.html
* igt@kms_force_connector_basic@prune-stale-modes:
- shard-dg2: NOTRUN -> [SKIP][206] ([i915#5274])
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@kms_force_connector_basic@prune-stale-modes.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move:
- shard-mtlp: NOTRUN -> [SKIP][207] ([i915#1825]) +23 other tests skip
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite:
- shard-snb: [PASS][208] -> [SKIP][209]
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite.html
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-snb1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-move:
- shard-tglu: NOTRUN -> [SKIP][210] +45 other tests skip
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-move.html
* igt@kms_frontbuffer_tracking@fbc-2p-rte:
- shard-dg2: NOTRUN -> [SKIP][211] ([i915#5354]) +39 other tests skip
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-2p-rte.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt:
- shard-mtlp: NOTRUN -> [SKIP][212] ([i915#8708]) +5 other tests skip
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite:
- shard-dg2: [PASS][213] -> [FAIL][214] ([i915#6880])
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-2/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render:
- shard-dg1: NOTRUN -> [SKIP][215] ([i915#3458]) +4 other tests skip
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-dg2: NOTRUN -> [SKIP][216] ([i915#8708]) +18 other tests skip
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu:
- shard-dg1: NOTRUN -> [SKIP][217] +15 other tests skip
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc:
- shard-dg1: NOTRUN -> [SKIP][218] ([i915#8708]) +3 other tests skip
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
- shard-rkl: NOTRUN -> [SKIP][219] ([i915#5439])
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-dg2: NOTRUN -> [SKIP][220] ([i915#10055])
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt:
- shard-rkl: NOTRUN -> [SKIP][221] ([i915#3023]) +18 other tests skip
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-onoff:
- shard-dg2: NOTRUN -> [SKIP][222] ([i915#3458]) +19 other tests skip
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc:
- shard-rkl: NOTRUN -> [SKIP][223] ([i915#1825]) +38 other tests skip
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_hdr@invalid-metadata-sizes:
- shard-dg1: NOTRUN -> [SKIP][224] ([i915#3555] / [i915#8228])
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@kms_hdr@invalid-metadata-sizes.html
* igt@kms_hdr@static-toggle-suspend:
- shard-dg2: NOTRUN -> [SKIP][225] ([i915#3555] / [i915#8228]) +3 other tests skip
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-2/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-dg2: NOTRUN -> [SKIP][226] ([i915#4816])
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_panel_fitting@legacy:
- shard-tglu: NOTRUN -> [SKIP][227] ([i915#6301])
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-8/igt@kms_panel_fitting@legacy.html
* igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1:
- shard-glk: NOTRUN -> [FAIL][228] ([i915#7862]) +1 other test fail
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-glk3/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1.html
* igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-a-hdmi-a-1:
- shard-glk: NOTRUN -> [FAIL][229] ([i915#4573]) +1 other test fail
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-glk5/igt@kms_plane_alpha_blend@alpha-transparent-fb@pipe-a-hdmi-a-1.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-c-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][230] ([i915#9423]) +3 other tests skip
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-c-hdmi-a-1.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][231] ([i915#5176]) +3 other tests skip
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-5/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c-edp-1.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-a-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][232] ([i915#9423]) +5 other tests skip
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-a-hdmi-a-2.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][233] ([i915#5176] / [i915#9423]) +1 other test skip
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b-hdmi-a-2.html
* igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][234] ([i915#9423]) +3 other tests skip
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a-hdmi-a-4.html
* igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-d-hdmi-a-1:
- shard-tglu: NOTRUN -> [SKIP][235] ([i915#9423]) +7 other tests skip
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-8/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-d-hdmi-a-1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][236] ([i915#5235]) +5 other tests skip
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-6/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b-hdmi-a-2.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-b-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][237] ([i915#5235]) +5 other tests skip
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-4/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-b-edp-1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][238] ([i915#5235]) +3 other tests skip
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-4.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-d-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][239] ([i915#5235] / [i915#9423]) +19 other tests skip
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-6/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-d-hdmi-a-3.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][240] ([i915#3555] / [i915#5235]) +1 other test skip
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-8/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-edp-1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-2:
- shard-dg2: NOTRUN -> [SKIP][241] ([i915#5235] / [i915#9423] / [i915#9728]) +3 other tests skip
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-2.html
* igt@kms_pm_backlight@fade-with-dpms:
- shard-rkl: NOTRUN -> [SKIP][242] ([i915#5354])
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-4/igt@kms_pm_backlight@fade-with-dpms.html
* igt@kms_pm_backlight@fade-with-suspend:
- shard-dg1: NOTRUN -> [SKIP][243] ([i915#5354])
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@kms_pm_backlight@fade-with-suspend.html
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-dg2: NOTRUN -> [SKIP][244] ([i915#9685]) +1 other test skip
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-10/igt@kms_pm_dc@dc3co-vpb-simulation.html
* igt@kms_pm_dc@dc6-dpms:
- shard-dg2: NOTRUN -> [SKIP][245] ([i915#5978])
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_pm_dc@dc6-dpms.html
- shard-tglu: [PASS][246] -> [FAIL][247] ([i915#9295])
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-tglu-5/igt@kms_pm_dc@dc6-dpms.html
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-6/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_dc@dc9-dpms:
- shard-tglu: NOTRUN -> [SKIP][248] ([i915#4281])
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-4/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-rkl: NOTRUN -> [SKIP][249] ([i915#9340])
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-6/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-dg2: [PASS][250] -> [SKIP][251] ([i915#9519]) +2 other tests skip
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-10/igt@kms_pm_rpm@modeset-lpsp.html
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-dg2: NOTRUN -> [SKIP][252] ([i915#9519]) +1 other test skip
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
- shard-rkl: NOTRUN -> [SKIP][253] ([i915#9519]) +1 other test skip
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
* igt@kms_prime@basic-crc-hybrid:
- shard-dg2: NOTRUN -> [SKIP][254] ([i915#6524] / [i915#6805])
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-6/igt@kms_prime@basic-crc-hybrid.html
* igt@kms_prime@basic-modeset-hybrid:
- shard-dg1: NOTRUN -> [SKIP][255] ([i915#6524]) +1 other test skip
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@kms_prime@basic-modeset-hybrid.html
* igt@kms_psr2_sf@fbc-cursor-plane-update-sf@psr2-pipe-a-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][256] ([i915#9808]) +5 other tests skip
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@kms_psr2_sf@fbc-cursor-plane-update-sf@psr2-pipe-a-edp-1.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-rkl: NOTRUN -> [SKIP][257] ([i915#9683])
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr2_su@page_flip-nv12:
- shard-dg2: NOTRUN -> [SKIP][258] ([i915#9683])
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_psr2_su@page_flip-nv12.html
* igt@kms_psr@pr-cursor-mmap-cpu:
- shard-dg2: NOTRUN -> [SKIP][259] ([i915#9732]) +19 other tests skip
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-10/igt@kms_psr@pr-cursor-mmap-cpu.html
* igt@kms_psr@pr-primary-render:
- shard-mtlp: NOTRUN -> [SKIP][260] ([i915#9688]) +8 other tests skip
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@kms_psr@pr-primary-render.html
* igt@kms_psr@psr-primary-mmap-gtt@edp-1:
- shard-mtlp: NOTRUN -> [SKIP][261] ([i915#4077] / [i915#9688])
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-1/igt@kms_psr@psr-primary-mmap-gtt@edp-1.html
* igt@kms_psr@psr-sprite-mmap-cpu:
- shard-dg1: NOTRUN -> [SKIP][262] ([i915#9732]) +4 other tests skip
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@kms_psr@psr-sprite-mmap-cpu.html
* igt@kms_psr@psr2-primary-render:
- shard-tglu: NOTRUN -> [SKIP][263] ([i915#9732]) +9 other tests skip
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-4/igt@kms_psr@psr2-primary-render.html
* igt@kms_psr@psr2-sprite-mmap-cpu:
- shard-rkl: NOTRUN -> [SKIP][264] ([i915#9732]) +17 other tests skip
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@kms_psr@psr2-sprite-mmap-cpu.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-rkl: NOTRUN -> [SKIP][265] ([i915#9685]) +1 other test skip
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@bad-tiling:
- shard-dg2: NOTRUN -> [SKIP][266] ([i915#4235]) +1 other test skip
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-3/igt@kms_rotation_crc@bad-tiling.html
* igt@kms_rotation_crc@exhaust-fences:
- shard-mtlp: NOTRUN -> [SKIP][267] ([i915#4235])
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-1/igt@kms_rotation_crc@exhaust-fences.html
* igt@kms_rotation_crc@primary-4-tiled-reflect-x-0:
- shard-rkl: NOTRUN -> [SKIP][268] ([i915#5289])
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@kms_rotation_crc@primary-4-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
- shard-dg2: NOTRUN -> [SKIP][269] ([i915#5190]) +1 other test skip
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
* igt@kms_setmode@basic-clone-single-crtc:
- shard-mtlp: NOTRUN -> [SKIP][270] ([i915#3555] / [i915#8809]) +1 other test skip
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-5/igt@kms_setmode@basic-clone-single-crtc.html
* igt@kms_sysfs_edid_timing:
- shard-dg2: [PASS][271] -> [FAIL][272] ([IGT#2])
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-11/igt@kms_sysfs_edid_timing.html
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_sysfs_edid_timing.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-dg2: NOTRUN -> [SKIP][273] ([i915#8623]) +1 other test skip
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1:
- shard-tglu: [PASS][274] -> [FAIL][275] ([i915#9196])
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-tglu-6/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1.html
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-9/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1.html
* igt@kms_vrr@seamless-rr-switch-vrr:
- shard-dg2: NOTRUN -> [SKIP][276] ([i915#9906]) +1 other test skip
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-5/igt@kms_vrr@seamless-rr-switch-vrr.html
* igt@kms_writeback@writeback-check-output:
- shard-dg2: NOTRUN -> [SKIP][277] ([i915#2437])
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-2/igt@kms_writeback@writeback-check-output.html
* igt@kms_writeback@writeback-fb-id-xrgb2101010:
- shard-dg2: NOTRUN -> [SKIP][278] ([i915#2437] / [i915#9412])
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_writeback@writeback-fb-id-xrgb2101010.html
- shard-rkl: NOTRUN -> [SKIP][279] ([i915#2437] / [i915#9412])
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-5/igt@kms_writeback@writeback-fb-id-xrgb2101010.html
* igt@kms_writeback@writeback-pixel-formats:
- shard-mtlp: NOTRUN -> [SKIP][280] ([i915#2437] / [i915#9412])
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-6/igt@kms_writeback@writeback-pixel-formats.html
* igt@perf@global-sseu-config-invalid:
- shard-mtlp: NOTRUN -> [SKIP][281] ([i915#7387])
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-1/igt@perf@global-sseu-config-invalid.html
* igt@perf@per-context-mode-unprivileged:
- shard-rkl: NOTRUN -> [SKIP][282] ([i915#2435])
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@perf@per-context-mode-unprivileged.html
* igt@perf_pmu@cpu-hotplug:
- shard-rkl: NOTRUN -> [SKIP][283] ([i915#8850])
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-5/igt@perf_pmu@cpu-hotplug.html
* igt@perf_pmu@rc6-all-gts:
- shard-tglu: NOTRUN -> [SKIP][284] ([i915#8516])
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-7/igt@perf_pmu@rc6-all-gts.html
- shard-rkl: NOTRUN -> [SKIP][285] ([i915#8516])
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-4/igt@perf_pmu@rc6-all-gts.html
* igt@prime_vgem@basic-fence-read:
- shard-dg1: NOTRUN -> [SKIP][286] ([i915#3708])
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-18/igt@prime_vgem@basic-fence-read.html
- shard-mtlp: NOTRUN -> [SKIP][287] ([i915#3708])
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-6/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@fence-write-hang:
- shard-rkl: NOTRUN -> [SKIP][288] ([i915#3708])
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@prime_vgem@fence-write-hang.html
* igt@sriov_basic@enable-vfs-autoprobe-on:
- shard-rkl: NOTRUN -> [SKIP][289] ([i915#9917])
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-7/igt@sriov_basic@enable-vfs-autoprobe-on.html
* igt@syncobj_wait@invalid-wait-zero-handles:
- shard-rkl: NOTRUN -> [FAIL][290] ([i915#9779])
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-5/igt@syncobj_wait@invalid-wait-zero-handles.html
* igt@v3d/v3d_job_submission@multiple-singlesync-to-multisync:
- shard-mtlp: NOTRUN -> [SKIP][291] ([i915#2575]) +7 other tests skip
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-3/igt@v3d/v3d_job_submission@multiple-singlesync-to-multisync.html
* igt@v3d/v3d_submit_csd@job-perfmon:
- shard-dg1: NOTRUN -> [SKIP][292] ([i915#2575]) +3 other tests skip
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-18/igt@v3d/v3d_submit_csd@job-perfmon.html
* igt@v3d/v3d_submit_csd@single-out-sync:
- shard-dg2: NOTRUN -> [SKIP][293] ([i915#2575]) +8 other tests skip
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@v3d/v3d_submit_csd@single-out-sync.html
* igt@vc4/vc4_perfmon@create-perfmon-0:
- shard-tglu: NOTRUN -> [SKIP][294] ([i915#2575]) +11 other tests skip
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-6/igt@vc4/vc4_perfmon@create-perfmon-0.html
* igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem:
- shard-mtlp: NOTRUN -> [SKIP][295] ([i915#7711]) +3 other tests skip
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-1/igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem.html
* igt@vc4/vc4_purgeable_bo@mark-unpurgeable-check-retained:
- shard-dg2: NOTRUN -> [SKIP][296] ([i915#7711]) +9 other tests skip
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-3/igt@vc4/vc4_purgeable_bo@mark-unpurgeable-check-retained.html
- shard-rkl: NOTRUN -> [SKIP][297] ([i915#7711]) +7 other tests skip
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@vc4/vc4_purgeable_bo@mark-unpurgeable-check-retained.html
* igt@vc4/vc4_tiling@get-bad-flags:
- shard-dg1: NOTRUN -> [SKIP][298] ([i915#7711])
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@vc4/vc4_tiling@get-bad-flags.html
#### Possible fixes ####
* igt@gem_eio@kms:
- shard-dg2: [INCOMPLETE][299] -> [PASS][300]
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-3/igt@gem_eio@kms.html
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@gem_eio@kms.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-glk: [FAIL][301] ([i915#2842]) -> [PASS][302]
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-glk3/igt@gem_exec_fair@basic-throttle@rcs0.html
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-glk5/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@gem_lmem_evict@dontneed-evict-race:
- shard-dg1: [DMESG-WARN][303] ([i915#4391] / [i915#4423]) -> [PASS][304] +1 other test pass
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg1-15/igt@gem_lmem_evict@dontneed-evict-race.html
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-16/igt@gem_lmem_evict@dontneed-evict-race.html
* igt@gem_lmem_swapping@heavy-random@lmem0:
- shard-dg2: [FAIL][305] ([i915#10378]) -> [PASS][306] +1 other test pass
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-3/igt@gem_lmem_swapping@heavy-random@lmem0.html
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@gem_lmem_swapping@heavy-random@lmem0.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-mtlp: [FAIL][307] ([i915#5138]) -> [PASS][308]
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1:
- shard-rkl: [FAIL][309] -> [PASS][310] +1 other test pass
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-rkl-7/igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1.html
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-2/igt@kms_flip@plain-flip-fb-recreate@a-hdmi-a1.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
- shard-dg2: [FAIL][311] ([i915#6880]) -> [PASS][312]
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen.html
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-dg2: [SKIP][313] ([i915#9519]) -> [PASS][314]
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-5/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-8/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-rkl: [SKIP][315] ([i915#9519]) -> [PASS][316]
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp.html
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-2/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_setmode@basic@pipe-a-hdmi-a-1:
- shard-snb: [FAIL][317] ([i915#5465]) -> [PASS][318] +1 other test pass
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-snb7/igt@kms_setmode@basic@pipe-a-hdmi-a-1.html
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-snb6/igt@kms_setmode@basic@pipe-a-hdmi-a-1.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-2:
- shard-rkl: [FAIL][319] ([i915#9196]) -> [PASS][320]
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-rkl-1/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-2.html
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-rkl-1/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-2.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1:
- shard-snb: [FAIL][321] ([i915#9196]) -> [PASS][322]
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-snb7/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1.html
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-snb2/igt@kms_universal_plane@cursor-fb-leak@pipe-b-hdmi-a-1.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1:
- shard-tglu: [FAIL][323] ([i915#9196]) -> [PASS][324]
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-tglu-6/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1.html
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-9/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1.html
#### Warnings ####
* igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0:
- shard-tglu: [WARN][325] ([i915#2681]) -> [FAIL][326] ([i915#3591]) +1 other test fail
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-tglu-3/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-tglu-2/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html
* igt@kms_content_protection@type1:
- shard-dg2: [SKIP][327] ([i915#7118] / [i915#9424]) -> [SKIP][328] ([i915#7118] / [i915#7162] / [i915#9424])
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-10/igt@kms_content_protection@type1.html
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@kms_content_protection@type1.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode:
- shard-dg1: [SKIP][329] ([i915#2587] / [i915#2672] / [i915#4423]) -> [SKIP][330] ([i915#2587] / [i915#2672])
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg1-14/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode.html
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-17/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode.html
* igt@kms_psr@fbc-psr2-cursor-render:
- shard-dg2: [SKIP][331] ([i915#9732]) -> [SKIP][332] ([i915#9673] / [i915#9732]) +8 other tests skip
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-5/igt@kms_psr@fbc-psr2-cursor-render.html
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-11/igt@kms_psr@fbc-psr2-cursor-render.html
* igt@kms_psr@fbc-psr2-sprite-mmap-cpu:
- shard-dg2: [SKIP][333] ([i915#9673] / [i915#9732]) -> [SKIP][334] ([i915#9732]) +7 other tests skip
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-11/igt@kms_psr@fbc-psr2-sprite-mmap-cpu.html
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-10/igt@kms_psr@fbc-psr2-sprite-mmap-cpu.html
* igt@kms_psr@psr-cursor-mmap-cpu:
- shard-dg1: [SKIP][335] ([i915#4423] / [i915#9732]) -> [SKIP][336] ([i915#9732]) +1 other test skip
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg1-15/igt@kms_psr@psr-cursor-mmap-cpu.html
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg1-15/igt@kms_psr@psr-cursor-mmap-cpu.html
* igt@perf@non-zero-reason@0-rcs0:
- shard-dg2: [FAIL][337] ([i915#9100]) -> [FAIL][338] ([i915#7484])
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-10/igt@perf@non-zero-reason@0-rcs0.html
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-1/igt@perf@non-zero-reason@0-rcs0.html
* igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
- shard-dg2: [CRASH][339] ([i915#9351]) -> [INCOMPLETE][340] ([i915#5493])
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7775/shard-dg2-7/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/shard-dg2-6/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
[i915#10055]: https://gitlab.freedesktop.org/drm/intel/issues/10055
[i915#10278]: https://gitlab.freedesktop.org/drm/intel/issues/10278
[i915#10307]: https://gitlab.freedesktop.org/drm/intel/issues/10307
[i915#10378]: https://gitlab.freedesktop.org/drm/intel/issues/10378
[i915#10386]: https://gitlab.freedesktop.org/drm/intel/issues/10386
[i915#10434]: https://gitlab.freedesktop.org/drm/intel/issues/10434
[i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
[i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2435]: https://gitlab.freedesktop.org/drm/intel/issues/2435
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3711]: https://gitlab.freedesktop.org/drm/intel/issues/3711
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4235]: https://gitlab.freedesktop.org/drm/intel/issues/4235
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
[i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
[i915#4473]: https://gitlab.freedesktop.org/drm/intel/issues/4473
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#4537]: https://gitlab.freedesktop.org/drm/intel/issues/4537
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
[i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
[i915#4936]: https://gitlab.freedesktop.org/drm/intel/issues/4936
[i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5465]: https://gitlab.freedesktop.org/drm/intel/issues/5465
[i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
[i915#5882]: https://gitlab.freedesktop.org/drm/intel/issues/5882
[i915#5978]: https://gitlab.freedesktop.org/drm/intel/issues/5978
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6187]: https://gitlab.freedesktop.org/drm/intel/issues/6187
[i915#6228]: https://gitlab.freedesktop.org/drm/intel/issues/6228
[i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6805]: https://gitlab.freedesktop.org/drm/intel/issues/6805
[i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880
[i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#7162]: https://gitlab.freedesktop.org/drm/intel/issues/7162
[i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173
[i915#7213]: https://gitlab.freedesktop.org/drm/intel/issues/7213
[i915#7387]: https://gitlab.freedesktop.org/drm/intel/issues/7387
[i915#7484]: https://gitlab.freedesktop.org/drm/intel/issues/7484
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7862]: https://gitlab.freedesktop.org/drm/intel/issues/7862
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
[i915#8399]: https://gitlab.freedesktop.org/drm/intel/issues/8399
[i915#8411]: https://gitlab.freedesktop.org/drm/intel/issues/8411
[i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
[i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428
[i915#8437]: https://gitlab.freedesktop.org/drm/intel/issues/8437
[i915#8516]: https://gitlab.freedesktop.org/drm/intel/issues/8516
[i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555
[i915#8588]: https://gitlab.freedesktop.org/drm/intel/issues/8588
[i915#8623]: https://gitlab.freedesktop.org/drm/intel/issues/8623
[i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708
[i915#8809]: https://gitlab.freedesktop.org/drm/intel/issues/8809
[i915#8810]: https://gitlab.freedesktop.org/drm/intel/issues/8810
[i915#8812]: https://gitlab.freedesktop.org/drm/intel/issues/8812
[i915#8814]: https://gitlab.freedesktop.org/drm/intel/issues/8814
[i915#8827]: https://gitlab.freedesktop.org/drm/intel/issues/8827
[i915#8850]: https://gitlab.freedesktop.org/drm/intel/issues/8850
[i915#8925]: https://gitlab.freedesktop.org/drm/intel/issues/8925
[i915#9053]: https://gitlab.freedesktop.org/drm/intel/issues/9053
[i915#9100]: https://gitlab.freedesktop.org/drm/intel/issues/9100
[i915#9196]: https://gitlab.freedesktop.org/drm/intel/issues/9196
[i915#9227]: https://gitlab.freedesktop.org/drm/intel/issues/9227
[i915#9295]: https://gitlab.freedesktop.org/drm/intel/issues/9295
[i915#9318]: https://gitlab.freedesktop.org/drm/intel/issues/9318
[i915#9323]: https://gitlab.freedesktop.org/drm/intel/issues/9323
[i915#9337]: https://gitlab.freedesktop.org/drm/intel/issues/9337
[i915#9340]: https://gitlab.freedesktop.org/drm/intel/issues/9340
[i915#9351]: https://gitlab.freedesktop.org/drm/intel/issues/9351
[i915#9412]: https://gitlab.freedesktop.org/drm/intel/issues/9412
[i915#9423]: https://gitlab.freedesktop.org/drm/intel/issues/9423
[i915#9424]: https://gitlab.freedesktop.org/drm/intel/issues/9424
[i915#9519]: https://gitlab.freedesktop.org/drm/intel/issues/9519
[i915#9531]: https://gitlab.freedesktop.org/drm/intel/issues/9531
[i915#9673]: https://gitlab.freedesktop.org/drm/intel/issues/9673
[i915#9683]: https://gitlab.freedesktop.org/drm/intel/issues/9683
[i915#9685]: https://gitlab.freedesktop.org/drm/intel/issues/9685
[i915#9688]: https://gitlab.freedesktop.org/drm/intel/issues/9688
[i915#9723]: https://gitlab.freedesktop.org/drm/intel/issues/9723
[i915#9728]: https://gitlab.freedesktop.org/drm/intel/issues/9728
[i915#9732]: https://gitlab.freedesktop.org/drm/intel/issues/9732
[i915#9779]: https://gitlab.freedesktop.org/drm/intel/issues/9779
[i915#9808]: https://gitlab.freedesktop.org/drm/intel/issues/9808
[i915#9809]: https://gitlab.freedesktop.org/drm/intel/issues/9809
[i915#9820]: https://gitlab.freedesktop.org/drm/intel/issues/9820
[i915#9833]: https://gitlab.freedesktop.org/drm/intel/issues/9833
[i915#9849]: https://gitlab.freedesktop.org/drm/intel/issues/9849
[i915#9906]: https://gitlab.freedesktop.org/drm/intel/issues/9906
[i915#9917]: https://gitlab.freedesktop.org/drm/intel/issues/9917
[i915#9934]: https://gitlab.freedesktop.org/drm/intel/issues/9934
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7775 -> IGTPW_10875
CI-20190529: 20190529
CI_DRM_14463: 0cd99ca612f004f19c35f4966a584f0a729bbc31 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_10875: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/index.html
IGT_7775: 0ee4074685c1e184f2d3612ea6eb4d126f9a2e23 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10875/index.html
[-- Attachment #2: Type: text/html, Size: 111834 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib
2024-03-21 18:28 ` [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib Kunal Joshi
@ 2024-03-25 9:57 ` Nautiyal, Ankit K
0 siblings, 0 replies; 18+ messages in thread
From: Nautiyal, Ankit K @ 2024-03-25 9:57 UTC (permalink / raw)
To: Kunal Joshi, igt-dev; +Cc: Stanislav Lisovskiy, Karthik B S, Bhanuprakash Modem
On 3/21/2024 11:58 PM, Kunal Joshi wrote:
> move bigjoiner_mode_found to lib
>
> v2: correct documentation (Ankit)
> fix usage of mode (Ankit)
>
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Cc: Karthik B S <karthik.b.s@intel.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
> lib/igt_kms.c | 28 ++++++++++++++++++++++++++++
> lib/igt_kms.h | 2 ++
> tests/intel/kms_big_joiner.c | 14 +-------------
> 3 files changed, 31 insertions(+), 13 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index e18f6fe59..ff08b0eda 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -6143,6 +6143,34 @@ bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock)
> mode->clock > max_dotclock);
> }
>
> +/**
> + * bigjoiner_mode_found:
> + * @drm_fd: drm file descriptor
> + * @connector: libdrm connector
> + * @max_dot_clock: max dot clock frequency
> + * @mode: libdrm mode
libdrm mode to be filled
LGTM.
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> + *
> + * Bigjoiner will come in to the picture when the
> + * resolution > 5K or clock > max-dot-clock.
> + *
> + * Returns: True if big joiner found in connector modes
> + */
> +bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
> + int max_dotclock, drmModeModeInfo *mode)
> +{
> + bool found = false;
> +
> + igt_sort_connector_modes(connector, sort_drm_modes_by_res_dsc);
> + found = igt_bigjoiner_possible(&connector->modes[0], max_dotclock);
> + if (!found) {
> + igt_sort_connector_modes(connector, sort_drm_modes_by_clk_dsc);
> + found = igt_bigjoiner_possible(&connector->modes[0], max_dotclock);
> + }
> + if (found)
> + *mode = connector->modes[0];
> + return found;
> +}
> +
> /**
> * igt_check_bigjoiner_support:
> * @display: a pointer to an #igt_display_t structure
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index b3882808b..0fa7a2ea1 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -1212,6 +1212,8 @@ bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe,
> igt_output_t *output, int bpc);
> int igt_get_max_dotclock(int fd);
> bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
> +bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
> + int max_dotclock, drmModeModeInfo *mode);
> bool igt_check_bigjoiner_support(igt_display_t *display);
> bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
> bool intel_pipe_output_combo_valid(igt_display_t *display);
> diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c
> index aba2adfbe..99b1b898d 100644
> --- a/tests/intel/kms_big_joiner.c
> +++ b/tests/intel/kms_big_joiner.c
> @@ -199,16 +199,6 @@ static void test_dual_display(data_t *data)
> igt_display_commit2(display, COMMIT_ATOMIC);
> }
>
> -static bool bigjoiner_mode_found(drmModeConnector *connector,
> - int (*sort_method)(const void *, const void*),
> - drmModeModeInfo *mode)
> -{
> - igt_sort_connector_modes(connector, sort_method);
> - *mode = connector->modes[0];
> -
> - return igt_bigjoiner_possible(mode, max_dotclock);
> -}
> -
> igt_main
> {
> data_t data;
> @@ -235,9 +225,7 @@ igt_main
> * Bigjoiner will come in to the picture when the
> * resolution > 5K or clock > max-dot-clock.
> */
> - found = (bigjoiner_mode_found(connector, sort_drm_modes_by_res_dsc, &mode) ||
> - bigjoiner_mode_found(connector, sort_drm_modes_by_clk_dsc, &mode)) ?
> - true : false;
> + found = bigjoiner_mode_found(data.drm_fd, connector, max_dotclock, &mode);
>
> if (found) {
> data.output[count].output_id = output->id;
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH i-g-t 2/4] tests/intel/kms_big_joiner: revamp bigjoiner
2024-03-21 18:28 ` [PATCH i-g-t 2/4] tests/intel/kms_big_joiner: revamp bigjoiner Kunal Joshi
@ 2024-03-25 10:16 ` Nautiyal, Ankit K
0 siblings, 0 replies; 18+ messages in thread
From: Nautiyal, Ankit K @ 2024-03-25 10:16 UTC (permalink / raw)
To: Kunal Joshi, igt-dev; +Cc: Stanislav Lisovskiy, Karthik B S, Bhanuprakash Modem
On 3/21/2024 11:58 PM, Kunal Joshi wrote:
> v2: Don't change license (Bhanu)
> Print the pipe name (Bhanu)
> Remove unwanted commit (Bhanu)
> Move combine output logic to igt_fixture (Bhanu)
> split revamp and force joiner (Bhanu)
>
> v3: Ignored fused pipes (Stan)
>
> v4: Ignore master pipes who doesn't have slave (Ankit)
> Retain subtest names (Ankit)
> Use commit instead of try_commit (Ankit)
> Fix typo (Ankit)
>
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Cc: Karthik B S <karthik.b.s@intel.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> ---
> tests/intel/kms_big_joiner.c | 416 ++++++++++++++++++-----------------
> 1 file changed, 220 insertions(+), 196 deletions(-)
>
> diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c
> index 99b1b898d..eba74cddf 100644
> --- a/tests/intel/kms_big_joiner.c
> +++ b/tests/intel/kms_big_joiner.c
> @@ -44,177 +44,253 @@
> * SUBTEST: basic
> * Description: Verify the basic modeset on big joiner mode on all pipes
> *
> - * SUBTEST: 2x-modeset
> - * Description: Verify simultaneous modeset on 2 big joiner outputs
> */
>
> IGT_TEST_DESCRIPTION("Test big joiner");
>
> -struct bigjoiner_output {
> - uint32_t output_id;
> - drmModeModeInfo mode;
> -};
> +#define INVALID_TEST_OUTPUT 2
>
> typedef struct {
> int drm_fd;
> - igt_display_t display;
> - struct igt_fb fb;
> + int big_joiner_output_count;
> + int non_big_joiner_output_count;
> + int combined_output_count;
> + int output_count;
> int n_pipes;
> - enum pipe pipe1;
> - enum pipe pipe2;
> - struct bigjoiner_output output[2];
> + int master_pipes;
> + uint64_t big_joiner_output[IGT_MAX_PIPES];
These can be uint32_t to match drmModeConnector connector_id
> + uint64_t non_big_joiner_output[IGT_MAX_PIPES];
> + uint64_t combined_output[IGT_MAX_PIPES];
> + enum pipe pipe_seq[IGT_MAX_PIPES];
> + igt_display_t display;
> } data_t;
>
> static int max_dotclock;
>
> -static void test_invalid_modeset(data_t *data)
> +static void set_all_master_pipes_for_platform(data_t *data)
> {
> - igt_output_t *output;
> - igt_display_t *display = &data->display;
> - int ret;
> + enum pipe pipe;
> + enum pipe last_pipe;
> +
> + for (pipe = PIPE_A; pipe < IGT_MAX_PIPES; pipe++) {
We should have pipe < IGT_MAX_PIPES -1 as we are checking pipe+1 in the
loop.
> + if (data->display.pipes[pipe].enabled) {
> + if (data->display.pipes[pipe+1].enabled) {
these can be one if condition instead of nested if:
if (data->display.pipes[pipe].enabled &&
data->display.pipes[pipe+1].enabled)
> + data->master_pipes |= BIT(pipe);
> + igt_info("Found master pipe %s\n", kmstest_pipe_name(pipe));
> + }
> + last_pipe = pipe;
I dont think we need this last_pipe.
> + }
> + }
> + data->master_pipes |= BIT(last_pipe);
> +}
>
> - igt_info("Bigjoiner test on ");
> - for_each_connected_output(display, output){
> - enum pipe p = output->pending_pipe;
> - drmModeModeInfo *mode;
> - igt_pipe_t *pipe;
> - igt_plane_t *plane;
> +static igt_output_t *get_output_by_id_or_assert(data_t *data, uint64_t id)
> +{
> + igt_output_t *output;
>
> - if (p == PIPE_NONE)
> - continue;
> + for_each_connected_output(&data->display, output) {
> + if (output->id == id)
> + return output;
I am wondering if we just store the igt_outputs instead of storing id
and then looping to match the id with connected outputs.
> + }
> + igt_assert_f(false, "Output not found\n");
> + return NULL;
> +}
>
> - mode = igt_output_get_mode(output);
> - igt_info("pipe:%s, output:%s, mode:", kmstest_pipe_name(p), igt_output_name(output));
> - kmstest_dump_mode(mode);
> +static enum pipe get_next_master_pipe(data_t *data, unsigned int available_pipe_mask)
> +{
> + if ((data->master_pipes & available_pipe_mask) == 0)
> + return PIPE_NONE;
>
> - pipe = &display->pipes[p];
> - plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
> + return ffs(data->master_pipes & available_pipe_mask) - 1;
> +}
>
> - igt_plane_set_fb(plane, &data->fb);
> - igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay);
> - igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
> - }
> +static enum pipe setup_pipe(data_t *data, igt_output_t *output, enum pipe pipe, unsigned int available_pipe_mask)
> +{
> + enum pipe master_pipe;
> + unsigned int attempt_mask;
>
> - igt_assert(!igt_check_bigjoiner_support(display));
> + attempt_mask = BIT(pipe);
> + master_pipe = get_next_master_pipe(data, available_pipe_mask & attempt_mask);
>
> - /* This commit is expectd to fail as this pipe is being used for big joiner */
> - ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY |
> - DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> + if (master_pipe == PIPE_NONE)
> + return PIPE_NONE;
>
> - igt_display_reset(&data->display);
> - igt_display_commit2(display, COMMIT_ATOMIC);
> + igt_info("Using pipe %s as master and %s slave for %s\n", kmstest_pipe_name(pipe),
> + kmstest_pipe_name(pipe + 1), output->name);
> + igt_output_set_pipe(output, pipe);
>
> - igt_assert_lt(ret, 0);
> + return master_pipe;
> }
>
> -static void test_basic_modeset(data_t *data)
> +static void test_single_joiner(data_t *data, int output_count)
> {
> + int i;
> + enum pipe pipe, master_pipe;
> + unsigned int available_pipe_mask = BIT(data->n_pipes) - 1;
> + igt_output_t *output;
> + igt_plane_t *primary;
> + uint64_t *outputs;
> + igt_fb_t fb;
> drmModeModeInfo *mode;
> - igt_output_t *output, *bigjoiner_output = NULL;
> - igt_display_t *display = &data->display;
> - igt_pipe_t *pipe;
> - igt_plane_t *plane;
>
> - igt_display_reset(display);
> + outputs = data->big_joiner_output;
>
> - for_each_connected_output(display, output) {
> - if (data->output[0].output_id == output->id) {
> - bigjoiner_output = output;
> - break;
> + for (i = 0; i < output_count; i++) {
> + output = get_output_by_id_or_assert(data, outputs[i]);
> + for (pipe = 0; pipe < data->n_pipes-1; pipe++) {
> + igt_display_reset(&data->display);
> + master_pipe = setup_pipe(data, output, pipe, available_pipe_mask);
> + if (master_pipe == PIPE_NONE)
> + continue;
> + mode = igt_output_get_mode(output);
> + primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> + igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888,
> + DRM_FORMAT_MOD_LINEAR, &fb);
> + igt_plane_set_fb(primary, &fb);
> + igt_display_commit2(&data->display, COMMIT_ATOMIC);
> + igt_plane_set_fb(primary, NULL);
> + igt_remove_fb(data->drm_fd, &fb);
> }
> }
> -
> - igt_output_set_pipe(bigjoiner_output, data->pipe1);
> -
> - mode = &data->output[0].mode;
> - igt_output_override_mode(bigjoiner_output, mode);
> -
> - pipe = &display->pipes[data->pipe1];
> - plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
> -
> - igt_plane_set_fb(plane, &data->fb);
> - igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay);
> - igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
> -
> - igt_display_commit2(display, COMMIT_ATOMIC);
> -
> - igt_output_set_pipe(bigjoiner_output, PIPE_NONE);
> - igt_plane_set_fb(plane, NULL);
> - igt_display_commit2(display, COMMIT_ATOMIC);
> }
>
> -static void test_dual_display(data_t *data)
> +static void test_multi_joiner(data_t *data, int output_count)
> {
> + int i;
> + unsigned int available_pipe_mask;
> + enum pipe pipe, master_pipe;
> + uint64_t *outputs;
> + igt_output_t *output;
> + igt_plane_t *primary[output_count];
> + igt_fb_t fb[output_count];
> drmModeModeInfo *mode;
> - igt_output_t *output, *bigjoiner_output[2];
> - igt_display_t *display = &data->display;
> - igt_pipe_t *pipe;
> - igt_plane_t *plane1, *plane2;
> - int count = 0;
> -
> - igt_display_reset(display);
> -
> - for_each_connected_output(display, output) {
> - if (data->output[count].output_id == output->id) {
> - bigjoiner_output[count] = output;
> - count++;
> - }
>
> - if (count > 1)
> + available_pipe_mask = BIT(data->n_pipes) - 1;
> + outputs = data->big_joiner_output;
> +
> + igt_display_reset(&data->display);
> + for (i = 0; i < output_count; i++) {
> + output = get_output_by_id_or_assert(data, outputs[i]);
> + for (pipe = 0; pipe < data->n_pipes; pipe++) {
> + master_pipe = setup_pipe(data, output, pipe, available_pipe_mask);
> + if (master_pipe == PIPE_NONE)
> + continue;
> + mode = igt_output_get_mode(output);
> + primary[i] = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> + igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888,
> + DRM_FORMAT_MOD_LINEAR, &fb[i]);
> + igt_plane_set_fb(primary[i], &fb[i]);
> +
> + available_pipe_mask &= ~BIT(master_pipe);
> + available_pipe_mask &= ~BIT(master_pipe + 1);
> break;
> + }
> }
> + igt_display_commit2(&data->display, COMMIT_ATOMIC);
> + for (i = 0; i < output_count; i++) {
> + igt_plane_set_fb(primary[i], NULL);
> + igt_remove_fb(data->drm_fd, &fb[i]);
> + }
> +}
>
> - igt_output_set_pipe(bigjoiner_output[0], data->pipe1);
> - igt_output_set_pipe(bigjoiner_output[1], data->pipe2);
> -
> - /* Set up first big joiner output on Pipe A*/
> - mode = &data->output[0].mode;
> - igt_output_override_mode(bigjoiner_output[0], mode);
> +static void test_invalid_modeset_two_joiner(data_t *data,
> + bool combined)
> +{
> + int i, j, ret;
> + unsigned int available_pipe_mask;
> + unsigned int attempt_mask;
> + enum pipe master_pipe;
> + uint64_t *outputs;
> + igt_output_t *output;
> + igt_plane_t *primary[INVALID_TEST_OUTPUT];
> + igt_fb_t fb[INVALID_TEST_OUTPUT];
> + drmModeModeInfo *mode;
>
> - pipe = &display->pipes[data->pipe1];
> - plane1 = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
> + available_pipe_mask = BIT(data->n_pipes) - 1;
> + outputs = combined ? data->combined_output : data->big_joiner_output;
>
> - igt_plane_set_fb(plane1, &data->fb);
> - igt_fb_set_size(&data->fb, plane1, mode->hdisplay, mode->vdisplay);
> - igt_plane_set_size(plane1, mode->hdisplay, mode->vdisplay);
> + for (i = 0; i < data->n_pipes-1; i++) {
> + igt_display_reset(&data->display);
> + attempt_mask = BIT(data->pipe_seq[i]);
> + master_pipe = get_next_master_pipe(data, available_pipe_mask & attempt_mask);
>
> - /* Set up second big joiner output on Pipe C*/
> - mode = &data->output[1].mode;
> - igt_output_override_mode(bigjoiner_output[1], mode);
> + if (master_pipe == PIPE_NONE)
> + continue;
>
> - pipe = &display->pipes[data->pipe2];
> - plane2 = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
> + for (j = 0; j < INVALID_TEST_OUTPUT; j++) {
> + output = get_output_by_id_or_assert(data, outputs[j]);
> + igt_output_set_pipe(output, data->pipe_seq[i + j]);
> + mode = igt_output_get_mode(output);
> + igt_info(" Assigning pipe %s to %s with mode %dx%d@%d%s",
> + kmstest_pipe_name(data->pipe_seq[i + j]),
> + igt_output_name(output), mode->hdisplay,
> + mode->vdisplay, mode->vrefresh,
> + j == INVALID_TEST_OUTPUT - 1 ? "\n" : ", ");
> + primary[j] = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> + igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888,
> + DRM_FORMAT_MOD_LINEAR, &fb[j]);
> + igt_plane_set_fb(primary[j], &fb[j]);
> + }
> + ret = igt_display_try_commit2(&data->display, COMMIT_ATOMIC);
> + for (j = 0; j < INVALID_TEST_OUTPUT; j++) {
> + igt_plane_set_fb(primary[j], NULL);
> + igt_remove_fb(data->drm_fd, &fb[j]);
> + }
> + igt_assert_f(ret != 0, "Commit shouldn't have passed\n");
> + }
> +}
>
> - igt_plane_set_fb(plane2, &data->fb);
> - igt_fb_set_size(&data->fb, plane2, mode->hdisplay, mode->vdisplay);
> - igt_plane_set_size(plane2, mode->hdisplay, mode->vdisplay);
> +static void test_big_joiner_on_last_pipe(data_t *data)
> +{
> + int i, len, ret;
> + uint64_t *outputs;
> + igt_output_t *output;
> + igt_plane_t *primary;
> + igt_fb_t fb;
> + drmModeModeInfo *mode;
>
> - igt_display_commit2(display, COMMIT_ATOMIC);
> + len = data->big_joiner_output_count;
> + outputs = data->big_joiner_output;
>
> - /* Clean up */
> - igt_output_set_pipe(bigjoiner_output[0], PIPE_NONE);
> - igt_output_set_pipe(bigjoiner_output[1], PIPE_NONE);
> - igt_plane_set_fb(plane1, NULL);
> - igt_plane_set_fb(plane2, NULL);
> - igt_display_commit2(display, COMMIT_ATOMIC);
> + for (i = 0; i < len; i++) {
> + igt_display_reset(&data->display);
> + output = get_output_by_id_or_assert(data, outputs[i]);
> + igt_output_set_pipe(output, data->pipe_seq[data->n_pipes - 1]);
> + mode = igt_output_get_mode(output);
> + igt_info(" Assigning pipe %s to %s with mode %dx%d@%d\n",
Extra space after before 'Assign'
> + kmstest_pipe_name(data->pipe_seq[data->n_pipes - 1]),
> + igt_output_name(output), mode->hdisplay,
> + mode->vdisplay, mode->vrefresh);
> + primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> + igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, DRM_FORMAT_XRGB8888,
> + DRM_FORMAT_MOD_LINEAR, &fb);
> + igt_plane_set_fb(primary, &fb);
> + ret = igt_display_try_commit2(&data->display, COMMIT_ATOMIC);
> + igt_plane_set_fb(primary, NULL);
> + igt_remove_fb(data->drm_fd, &fb);
> + igt_assert_f(ret != 0, "Commit shouldn't have passed\n");
> + }
> }
>
> igt_main
> {
> - data_t data;
> + int i, j;
> igt_output_t *output;
> drmModeModeInfo mode;
> - int valid_output = 0, i, count = 0, j = 0;
> - uint16_t width = 0, height = 0;
> - enum pipe pipe_seq[IGT_MAX_PIPES];
> + data_t data;
>
> igt_fixture {
> + data.big_joiner_output_count = 0;
> + data.non_big_joiner_output_count = 0;
> + data.combined_output_count = 0;
> + data.output_count = 0;
> + j = 0;
> +
> data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> kmstest_set_vt_graphics_mode();
> -
> igt_display_require(&data.display, data.drm_fd);
> + set_all_master_pipes_for_platform(&data);
> igt_require(data.display.is_atomic);
> -
> max_dotclock = igt_get_max_dotclock(data.drm_fd);
>
> for_each_connected_output(&data.display, output) {
> @@ -228,105 +304,53 @@ igt_main
> found = bigjoiner_mode_found(data.drm_fd, connector, max_dotclock, &mode);
>
> if (found) {
> - data.output[count].output_id = output->id;
> - memcpy(&data.output[count].mode, &mode, sizeof(drmModeModeInfo));
> - count++;
> -
> - width = max(width, mode.hdisplay);
> - height = max(height, mode.vdisplay);
> + data.big_joiner_output[data.big_joiner_output_count++] = output->config.connector->connector_id;
> + igt_output_override_mode(output, &mode);
> + } else {
> + data.non_big_joiner_output[data.non_big_joiner_output_count++] = output->config.connector->connector_id;
> }
> - valid_output++;
> + data.output_count++;
> + }
> + if (data.big_joiner_output_count == 1 && data.non_big_joiner_output_count >= 1) {
> + data.combined_output[data.combined_output_count++] = data.big_joiner_output[0];
> + data.combined_output[data.combined_output_count++] = data.non_big_joiner_output[0];
> }
> -
> data.n_pipes = 0;
> for_each_pipe(&data.display, i) {
> data.n_pipes++;
> - pipe_seq[j] = i;
> + data.pipe_seq[j] = i;
> j++;
> }
> -
> - igt_require_f(count > 0, "No output with 5k+ mode (or) clock > max-dot-clock found\n");
> -
> - igt_create_pattern_fb(data.drm_fd, width, height, DRM_FORMAT_XRGB8888,
> - DRM_FORMAT_MOD_LINEAR, &data.fb);
> }
>
> igt_describe("Verify the basic modeset on big joiner mode on all pipes");
It would be good to describe about the two subtests.
> igt_subtest_with_dynamic("basic") {
> - for (i = 0; i < data.n_pipes - 1; i++) {
> - data.pipe1 = pipe_seq[i];
> - igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe_seq[i]))
> - test_basic_modeset(&data);
> - }
> + igt_require_f(data.big_joiner_output_count > 0,
> + "No bigjoiner output found\n");
> + igt_require_f(data.n_pipes > 1,
> + "Minimum 2 pipes required\n");
> + igt_dynamic_f("single-joiner")
> + test_single_joiner(&data, data.big_joiner_output_count);
> + if (data.big_joiner_output_count > 1)
> + igt_dynamic_f("multi-joiner")
> + test_multi_joiner(&data, data.big_joiner_output_count);
> }
>
> - igt_describe("Verify if the modeset on the adjoining pipe is rejected "
> - "when the pipe is active with a big joiner modeset");
I think we need this for invalid case, describing new subtests.
Regards,
Ankit
> igt_subtest_with_dynamic("invalid-modeset") {
> - data.pipe1 = pipe_seq[j - 1];
> -
> - igt_display_reset(&data.display);
> - for_each_connected_output(&data.display, output) {
> - if (data.output[0].output_id != output->id)
> - continue;
> -
> - mode = data.output[0].mode;
> - igt_output_set_pipe(output, data.pipe1);
> - igt_output_override_mode(output, &mode);
> -
> - igt_dynamic_f("pipe-%s-%s",
> - kmstest_pipe_name(data.pipe1),
> - igt_output_name(output))
> - test_invalid_modeset(&data);
> - }
> -
> - if(valid_output > 1) {
> - for (i = 0; i < data.n_pipes - 1; i++) {
> - igt_output_t *first_output = NULL, *second_output = NULL;
> -
> - data.pipe1 = pipe_seq[i];
> - data.pipe2 = pipe_seq[i + 1];
> -
> - igt_display_reset(&data.display);
> - for_each_connected_output(&data.display, output) {
> - if (data.output[0].output_id == output->id) {
> - first_output = output;
> - mode = data.output[0].mode;
> -
> - igt_output_set_pipe(output, data.pipe1);
> - igt_output_override_mode(output, &mode);
> - } else if (second_output == NULL) {
> - second_output = output;
> - igt_output_set_pipe(output, data.pipe2);
> -
> - break;
> - }
> - }
> -
> - igt_dynamic_f("pipe-%s-%s-pipe-%s-%s",
> - kmstest_pipe_name(data.pipe1),
> - igt_output_name(first_output),
> - kmstest_pipe_name(data.pipe2),
> - igt_output_name(second_output))
> - test_invalid_modeset(&data);
> - }
> - }
> - }
> -
> - igt_describe("Verify simultaneous modeset on 2 big joiner outputs");
> - igt_subtest_with_dynamic("2x-modeset") {
> - igt_require_f(count > 1, "2 outputs with big joiner modes are required\n");
> - igt_require_f(data.n_pipes > 3, "Minumum of 4 pipes are required\n");
> - for (i = 0; (i + 2) < data.n_pipes - 1; i++) {
> - data.pipe1 = pipe_seq[i];
> - data.pipe2 = pipe_seq[i + 2];
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe_seq[i]), kmstest_pipe_name(pipe_seq[i + 2]))
> - test_dual_display(&data);
> - }
> + igt_require_f(data.big_joiner_output_count > 0, "Non big joiner output not found\n");
> + igt_require_f(data.n_pipes > 1, "Minimum of 2 pipes are required\n");
> + if (data.big_joiner_output_count >= 1)
> + igt_dynamic_f("big_joiner_on_last_pipe")
> + test_big_joiner_on_last_pipe(&data);
> + if (data.big_joiner_output_count > 1)
> + igt_dynamic_f("invalid_combinations")
> + test_invalid_modeset_two_joiner(&data, false);
> + if (data.combined_output_count)
> + igt_dynamic_f("combined_output")
> + test_invalid_modeset_two_joiner(&data, true);
> }
>
> igt_fixture {
> - igt_remove_fb(data.drm_fd, &data.fb);
> igt_display_fini(&data.display);
> drm_close_driver(data.drm_fd);
> }
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner
2024-03-21 18:28 ` [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner Kunal Joshi
@ 2024-03-25 10:22 ` Nautiyal, Ankit K
0 siblings, 0 replies; 18+ messages in thread
From: Nautiyal, Ankit K @ 2024-03-25 10:22 UTC (permalink / raw)
To: Kunal Joshi, igt-dev; +Cc: Stanislav Lisovskiy, Karthik B S, Bhanuprakash Modem
On 3/21/2024 11:58 PM, Kunal Joshi wrote:
> v2: Add documentation and rename (Ankit)
> Combine enable/disable and status check (Ankit)
> Don't assert in igt_has_force_joiner_debugfs (Ankit)
>
> add helpers to check whether force joiner debugfs exists
> and to enable/disable force joiner for a specific connector.
>
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Cc: Karthik B S <karthik.b.s@intel.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Missing Signed-off-by
With SOB added, this is:
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> ---
> lib/igt_kms.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
> lib/igt_kms.h | 2 ++
> 2 files changed, 53 insertions(+)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index ff08b0eda..3d9796529 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -6171,6 +6171,57 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
> return found;
> }
>
> +/**
> + * Checks if the force big joiner debugfs is available
> + * for a specific connector.
> + *
> + * @drmfd: file descriptor of the DRM device.
> + * @output: output to check.
> + * Returns:
> + * true if the debugfs is available, false otherwise.
> + */
> +bool igt_has_force_joiner_debugfs(int drmfd, igt_output_t *output)
> +{
> + char buf[512];
> + int debugfs_fd, ret;
> +
> + igt_assert_f(output->name, "Connector name cannot be NULL\n");
> + debugfs_fd = igt_debugfs_connector_dir(drmfd, output->name, O_RDONLY);
> + if (debugfs_fd < 0)
> + return false;
> + ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
> + close(debugfs_fd);
> + return ret >= 0;
> +}
> +
> +/**
> + * Forces the enable/disable state of big joiner for a specific connector.
> + *
> + * @drmfd The file descriptor of the DRM device.
> + * @connector_name The name of the connector.
> + * @enable The desired state of big joiner (true for enable, false for disable).
> + * Returns:
> + * true if writing the debugfs was successful
> + * and the state was set as requested, false otherwise.
> + */
> +bool igt_force_and_check_bigjoiner_status(int drmfd, char *connector_name, bool enable)
> +{
> + int debugfs_fd, ret;
> + char buf[512];
> +
> + igt_assert_f(connector_name, "Connector name cannot be NULL\n");
> + debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_DIRECTORY);
> + igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", connector_name);
> + ret = igt_sysfs_write(debugfs_fd, "i915_bigjoiner_force_enable", enable ? "1" : "0", 1);
> + igt_assert_f(ret > 0, "Could not write i915_bigjoiner_force_enable for connector %s\n", connector_name);
> + ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
> + close(debugfs_fd);
> + igt_assert_f(ret > 0, "Could not read i915_bigjoiner_force_enable for connector %s\n", connector_name);
> +
> + return enable ? strstr(buf, "Bigjoiner enable: 1") :
> + strstr(buf, "Bigjoiner enable: 0");
> +}
> +
> /**
> * igt_check_bigjoiner_support:
> * @display: a pointer to an #igt_display_t structure
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 0fa7a2ea1..6d13e5851 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -1214,6 +1214,8 @@ int igt_get_max_dotclock(int fd);
> bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
> bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
> int max_dotclock, drmModeModeInfo *mode);
> +bool igt_has_force_joiner_debugfs(int drmfd, igt_output_t *output);
> +bool igt_force_and_check_bigjoiner_status(int drmfd, char *connector_name, bool enable);
> bool igt_check_bigjoiner_support(igt_display_t *display);
> bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
> bool intel_pipe_output_combo_valid(igt_display_t *display);
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner
2024-03-25 16:51 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
@ 2024-03-25 16:51 ` Kunal Joshi
2024-03-28 7:11 ` Nautiyal, Ankit K
0 siblings, 1 reply; 18+ messages in thread
From: Kunal Joshi @ 2024-03-25 16:51 UTC (permalink / raw)
To: igt-dev
Cc: Kunal Joshi, Stanislav Lisovskiy, Ankit Nautiyal, Karthik B S,
Bhanuprakash Modem
v2: Add documentation and rename (Ankit)
Combine enable/disable and status check (Ankit)
Don't assert in igt_has_force_joiner_debugfs (Ankit)
add helpers to check whether force joiner debugfs exists
and to enable/disable force joiner for a specific connector.
Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
lib/igt_kms.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
lib/igt_kms.h | 2 ++
2 files changed, 53 insertions(+)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 548c9d1f3..c38021dd7 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -6171,6 +6171,57 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
return found;
}
+/**
+ * Checks if the force big joiner debugfs is available
+ * for a specific connector.
+ *
+ * @drmfd: file descriptor of the DRM device.
+ * @output: output to check.
+ * Returns:
+ * true if the debugfs is available, false otherwise.
+ */
+bool igt_has_force_joiner_debugfs(int drmfd, igt_output_t *output)
+{
+ char buf[512];
+ int debugfs_fd, ret;
+
+ igt_assert_f(output->name, "Connector name cannot be NULL\n");
+ debugfs_fd = igt_debugfs_connector_dir(drmfd, output->name, O_RDONLY);
+ if (debugfs_fd < 0)
+ return false;
+ ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
+ close(debugfs_fd);
+ return ret >= 0;
+}
+
+/**
+ * Forces the enable/disable state of big joiner for a specific connector.
+ *
+ * @drmfd The file descriptor of the DRM device.
+ * @connector_name The name of the connector.
+ * @enable The desired state of big joiner (true for enable, false for disable).
+ * Returns:
+ * true if writing the debugfs was successful
+ * and the state was set as requested, false otherwise.
+ */
+bool igt_force_and_check_bigjoiner_status(int drmfd, char *connector_name, bool enable)
+{
+ int debugfs_fd, ret;
+ char buf[512];
+
+ igt_assert_f(connector_name, "Connector name cannot be NULL\n");
+ debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_DIRECTORY);
+ igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", connector_name);
+ ret = igt_sysfs_write(debugfs_fd, "i915_bigjoiner_force_enable", enable ? "1" : "0", 1);
+ igt_assert_f(ret > 0, "Could not write i915_bigjoiner_force_enable for connector %s\n", connector_name);
+ ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
+ close(debugfs_fd);
+ igt_assert_f(ret > 0, "Could not read i915_bigjoiner_force_enable for connector %s\n", connector_name);
+
+ return enable ? strstr(buf, "Bigjoiner enable: 1") :
+ strstr(buf, "Bigjoiner enable: 0");
+}
+
/**
* igt_check_bigjoiner_support:
* @display: a pointer to an #igt_display_t structure
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 0fa7a2ea1..6d13e5851 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -1214,6 +1214,8 @@ int igt_get_max_dotclock(int fd);
bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
int max_dotclock, drmModeModeInfo *mode);
+bool igt_has_force_joiner_debugfs(int drmfd, igt_output_t *output);
+bool igt_force_and_check_bigjoiner_status(int drmfd, char *connector_name, bool enable);
bool igt_check_bigjoiner_support(igt_display_t *display);
bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
bool intel_pipe_output_combo_valid(igt_display_t *display);
--
2.34.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner
2024-03-25 16:51 ` [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner Kunal Joshi
@ 2024-03-28 7:11 ` Nautiyal, Ankit K
0 siblings, 0 replies; 18+ messages in thread
From: Nautiyal, Ankit K @ 2024-03-28 7:11 UTC (permalink / raw)
To: Kunal Joshi, igt-dev; +Cc: Stanislav Lisovskiy, Karthik B S, Bhanuprakash Modem
On 3/25/2024 10:21 PM, Kunal Joshi wrote:
> v2: Add documentation and rename (Ankit)
> Combine enable/disable and status check (Ankit)
> Don't assert in igt_has_force_joiner_debugfs (Ankit)
Version history should come after the commit message.
I think this got mix up between series rev 7-8.
Regards,
Ankit
>
> add helpers to check whether force joiner debugfs exists
> and to enable/disable force joiner for a specific connector.
>
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Cc: Karthik B S <karthik.b.s@intel.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> ---
> lib/igt_kms.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
> lib/igt_kms.h | 2 ++
> 2 files changed, 53 insertions(+)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 548c9d1f3..c38021dd7 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -6171,6 +6171,57 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
> return found;
> }
>
> +/**
> + * Checks if the force big joiner debugfs is available
> + * for a specific connector.
> + *
> + * @drmfd: file descriptor of the DRM device.
> + * @output: output to check.
> + * Returns:
> + * true if the debugfs is available, false otherwise.
> + */
> +bool igt_has_force_joiner_debugfs(int drmfd, igt_output_t *output)
> +{
> + char buf[512];
> + int debugfs_fd, ret;
> +
> + igt_assert_f(output->name, "Connector name cannot be NULL\n");
> + debugfs_fd = igt_debugfs_connector_dir(drmfd, output->name, O_RDONLY);
> + if (debugfs_fd < 0)
> + return false;
> + ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
> + close(debugfs_fd);
> + return ret >= 0;
> +}
> +
> +/**
> + * Forces the enable/disable state of big joiner for a specific connector.
> + *
> + * @drmfd The file descriptor of the DRM device.
> + * @connector_name The name of the connector.
> + * @enable The desired state of big joiner (true for enable, false for disable).
> + * Returns:
> + * true if writing the debugfs was successful
> + * and the state was set as requested, false otherwise.
> + */
> +bool igt_force_and_check_bigjoiner_status(int drmfd, char *connector_name, bool enable)
> +{
> + int debugfs_fd, ret;
> + char buf[512];
> +
> + igt_assert_f(connector_name, "Connector name cannot be NULL\n");
> + debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_DIRECTORY);
> + igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", connector_name);
> + ret = igt_sysfs_write(debugfs_fd, "i915_bigjoiner_force_enable", enable ? "1" : "0", 1);
> + igt_assert_f(ret > 0, "Could not write i915_bigjoiner_force_enable for connector %s\n", connector_name);
> + ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
> + close(debugfs_fd);
> + igt_assert_f(ret > 0, "Could not read i915_bigjoiner_force_enable for connector %s\n", connector_name);
> +
> + return enable ? strstr(buf, "Bigjoiner enable: 1") :
> + strstr(buf, "Bigjoiner enable: 0");
> +}
> +
> /**
> * igt_check_bigjoiner_support:
> * @display: a pointer to an #igt_display_t structure
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 0fa7a2ea1..6d13e5851 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -1214,6 +1214,8 @@ int igt_get_max_dotclock(int fd);
> bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
> bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
> int max_dotclock, drmModeModeInfo *mode);
> +bool igt_has_force_joiner_debugfs(int drmfd, igt_output_t *output);
> +bool igt_force_and_check_bigjoiner_status(int drmfd, char *connector_name, bool enable);
> bool igt_check_bigjoiner_support(igt_display_t *display);
> bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
> bool intel_pipe_output_combo_valid(igt_display_t *display);
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner
2024-03-28 8:39 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
@ 2024-03-28 8:39 ` Kunal Joshi
0 siblings, 0 replies; 18+ messages in thread
From: Kunal Joshi @ 2024-03-28 8:39 UTC (permalink / raw)
To: igt-dev
Cc: Kunal Joshi, Stanislav Lisovskiy, Ankit Nautiyal, Karthik B S,
Bhanuprakash Modem
add helpers to check whether force joiner debugfs exists
and to enable/disable force joiner for a specific connector.
v2: Add documentation and rename (Ankit)
Combine enable/disable and status check (Ankit)
Don't assert in igt_has_force_joiner_debugfs (Ankit)
Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
lib/igt_kms.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
lib/igt_kms.h | 2 ++
2 files changed, 53 insertions(+)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 548c9d1f3..c38021dd7 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -6171,6 +6171,57 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
return found;
}
+/**
+ * Checks if the force big joiner debugfs is available
+ * for a specific connector.
+ *
+ * @drmfd: file descriptor of the DRM device.
+ * @output: output to check.
+ * Returns:
+ * true if the debugfs is available, false otherwise.
+ */
+bool igt_has_force_joiner_debugfs(int drmfd, igt_output_t *output)
+{
+ char buf[512];
+ int debugfs_fd, ret;
+
+ igt_assert_f(output->name, "Connector name cannot be NULL\n");
+ debugfs_fd = igt_debugfs_connector_dir(drmfd, output->name, O_RDONLY);
+ if (debugfs_fd < 0)
+ return false;
+ ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
+ close(debugfs_fd);
+ return ret >= 0;
+}
+
+/**
+ * Forces the enable/disable state of big joiner for a specific connector.
+ *
+ * @drmfd The file descriptor of the DRM device.
+ * @connector_name The name of the connector.
+ * @enable The desired state of big joiner (true for enable, false for disable).
+ * Returns:
+ * true if writing the debugfs was successful
+ * and the state was set as requested, false otherwise.
+ */
+bool igt_force_and_check_bigjoiner_status(int drmfd, char *connector_name, bool enable)
+{
+ int debugfs_fd, ret;
+ char buf[512];
+
+ igt_assert_f(connector_name, "Connector name cannot be NULL\n");
+ debugfs_fd = igt_debugfs_connector_dir(drmfd, connector_name, O_DIRECTORY);
+ igt_assert_f(debugfs_fd >= 0, "Could not open debugfs for connector %s\n", connector_name);
+ ret = igt_sysfs_write(debugfs_fd, "i915_bigjoiner_force_enable", enable ? "1" : "0", 1);
+ igt_assert_f(ret > 0, "Could not write i915_bigjoiner_force_enable for connector %s\n", connector_name);
+ ret = igt_debugfs_simple_read(debugfs_fd, "i915_bigjoiner_force_enable", buf, sizeof(buf));
+ close(debugfs_fd);
+ igt_assert_f(ret > 0, "Could not read i915_bigjoiner_force_enable for connector %s\n", connector_name);
+
+ return enable ? strstr(buf, "Bigjoiner enable: 1") :
+ strstr(buf, "Bigjoiner enable: 0");
+}
+
/**
* igt_check_bigjoiner_support:
* @display: a pointer to an #igt_display_t structure
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 0fa7a2ea1..6d13e5851 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -1214,6 +1214,8 @@ int igt_get_max_dotclock(int fd);
bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
int max_dotclock, drmModeModeInfo *mode);
+bool igt_has_force_joiner_debugfs(int drmfd, igt_output_t *output);
+bool igt_force_and_check_bigjoiner_status(int drmfd, char *connector_name, bool enable);
bool igt_check_bigjoiner_support(igt_display_t *display);
bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
bool intel_pipe_output_combo_valid(igt_display_t *display);
--
2.25.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
end of thread, other threads:[~2024-03-28 8:28 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-21 18:28 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
2024-03-21 18:28 ` [PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib Kunal Joshi
2024-03-25 9:57 ` Nautiyal, Ankit K
2024-03-21 18:28 ` [PATCH i-g-t 2/4] tests/intel/kms_big_joiner: revamp bigjoiner Kunal Joshi
2024-03-25 10:16 ` Nautiyal, Ankit K
2024-03-21 18:28 ` [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner Kunal Joshi
2024-03-25 10:22 ` Nautiyal, Ankit K
2024-03-21 18:28 ` [PATCH i-g-t 4/4] tests/intel/kms_big_joiner: add tests for " Kunal Joshi
2024-03-21 18:36 ` ✗ GitLab.Pipeline: warning for revamp big joiner test (rev8) Patchwork
2024-03-21 19:06 ` ✓ Fi.CI.BAT: success " Patchwork
2024-03-21 19:10 ` ✓ CI.xeBAT: " Patchwork
2024-03-22 11:15 ` ✗ Fi.CI.IGT: failure " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2024-03-28 8:39 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
2024-03-28 8:39 ` [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner Kunal Joshi
2024-03-25 16:51 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
2024-03-25 16:51 ` [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner Kunal Joshi
2024-03-28 7:11 ` Nautiyal, Ankit K
2024-03-10 14:27 [PATCH i-g-t 0/4] revamp big joiner test Kunal Joshi
2024-03-10 14:27 ` [PATCH i-g-t 3/4] lib/igt_kms: add helper to enable/disable force joiner Kunal Joshi
2024-03-20 12:53 ` Nautiyal, Ankit K
2024-03-20 13:21 ` Nautiyal, Ankit K
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox