* [igt-dev] [PATCH i-g-t v2 0/3] Testcases for dirtyfb ioctl
@ 2023-04-12 9:30 Jouni Högander
2023-04-12 9:30 ` [igt-dev] [PATCH i-g-t v2 1/3] tests/i915/kms_frontbuffer_tracking: Split fbc into library Jouni Högander
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Jouni Högander @ 2023-04-12 9:30 UTC (permalink / raw)
To: igt-dev
This patchset is adding new testcases for dirtyfb ioctl with features
like FBC, PSR and DRRS.
Also some helpers are split from kms_frontbuffer_tracking to be shared
with a new testcases.
v2:
- Move fbc and drrs into libigt
- Change testcase license comment
- Move disable_features and do not apply for FEATURE_DEFAULT
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Jouni Högander (3):
tests/i915/kms_frontbuffer_tracking: Split fbc into library
tests/i915/kms_frontbuffer_tracking: Split drrs into library
tests/kms_dirtyfb: Add new test for dirtyfb ioctl
lib/i915/intel_drrs.c | 83 ++++++++
lib/i915/intel_drrs.h | 17 ++
lib/i915/intel_fbc.c | 62 ++++++
lib/i915/intel_fbc.h | 19 ++
lib/meson.build | 2 +
tests/i915/kms_dirtyfb.c | 292 ++++++++++++++++++++++++++
tests/i915/kms_frontbuffer_tracking.c | 140 ++----------
tests/meson.build | 1 +
8 files changed, 493 insertions(+), 123 deletions(-)
create mode 100644 lib/i915/intel_drrs.c
create mode 100644 lib/i915/intel_drrs.h
create mode 100644 lib/i915/intel_fbc.c
create mode 100644 lib/i915/intel_fbc.h
create mode 100644 tests/i915/kms_dirtyfb.c
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] [PATCH i-g-t v2 1/3] tests/i915/kms_frontbuffer_tracking: Split fbc into library
2023-04-12 9:30 [igt-dev] [PATCH i-g-t v2 0/3] Testcases for dirtyfb ioctl Jouni Högander
@ 2023-04-12 9:30 ` Jouni Högander
2023-04-12 9:30 ` [igt-dev] [PATCH i-g-t v2 2/3] tests/i915/kms_frontbuffer_tracking: Split drrs " Jouni Högander
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Jouni Högander @ 2023-04-12 9:30 UTC (permalink / raw)
To: igt-dev
Split fbc handling into library to be used by other tests as well.
v2: Moved into libigt instead of static kms_fbc_helper
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
lib/i915/intel_fbc.c | 62 +++++++++++++++++++++++++++
lib/i915/intel_fbc.h | 19 ++++++++
lib/meson.build | 1 +
tests/i915/kms_frontbuffer_tracking.c | 57 +++++-------------------
4 files changed, 92 insertions(+), 47 deletions(-)
create mode 100644 lib/i915/intel_fbc.c
create mode 100644 lib/i915/intel_fbc.h
diff --git a/lib/i915/intel_fbc.c b/lib/i915/intel_fbc.c
new file mode 100644
index 00000000..2a1a65d5
--- /dev/null
+++ b/lib/i915/intel_fbc.c
@@ -0,0 +1,62 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2023 Intel Corporation
+ */
+
+#include <fcntl.h>
+
+#include "igt.h"
+
+#include "intel_fbc.h"
+
+bool intel_fbc_supported_on_chipset(int device, enum pipe pipe)
+{
+ char buf[128];
+ int dir;
+
+ dir = igt_debugfs_pipe_dir(device, pipe, O_DIRECTORY);
+ igt_require_fd(dir);
+ igt_debugfs_simple_read(dir, "i915_fbc_status", buf, sizeof(buf));
+ close(dir);
+ if (*buf == '\0')
+ return false;
+
+ return !strstr(buf, "FBC unsupported on this chipset\n");
+}
+
+static bool _intel_fbc_is_enabled(int device, enum pipe pipe, int log_level, char *last_fbc_buf)
+{
+ char buf[128];
+ bool print = true;
+ int dir;
+
+ dir = igt_debugfs_pipe_dir(device, pipe, O_DIRECTORY);
+ igt_require_fd(dir);
+ igt_debugfs_simple_read(dir, "i915_fbc_status", buf, sizeof(buf));
+ close(dir);
+ if (log_level != IGT_LOG_DEBUG)
+ last_fbc_buf[0] = '\0';
+ else if (strcmp(last_fbc_buf, buf))
+ strcpy(last_fbc_buf, buf);
+ else
+ print = false;
+
+ if (print)
+ igt_log(IGT_LOG_DOMAIN, log_level, "fbc_is_enabled()?\n%s", buf);
+
+ return strstr(buf, "FBC enabled\n");
+}
+
+bool intel_fbc_is_enabled(int device, enum pipe pipe, int log_level)
+{
+ char last_fbc_buf[128] = {'\0'};
+
+ return _intel_fbc_is_enabled(device, pipe, log_level, last_fbc_buf);
+}
+
+bool intel_fbc_wait_until_enabled(int device, enum pipe pipe)
+{
+ char last_fbc_buf[128] = {'\0'};
+
+ return igt_wait(_intel_fbc_is_enabled(device, pipe, IGT_LOG_DEBUG, last_fbc_buf), 2000, 1);
+}
diff --git a/lib/i915/intel_fbc.h b/lib/i915/intel_fbc.h
new file mode 100644
index 00000000..901bf984
--- /dev/null
+++ b/lib/i915/intel_fbc.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2022 Intel Corporation
+ */
+
+#ifndef INTEL_FBC_H
+#define INTEL_FBC_H
+
+#include "igt.h"
+
+#define intel_fbc_enable(device) igt_set_module_param_int(device, "enable_fbc", 1)
+#define intel_fbc_disable(device) igt_set_module_param_int(device, "enable_fbc", 0)
+
+bool intel_fbc_supported_on_chipset(int device, enum pipe pipe);
+bool intel_fbc_wait_until_enabled(int device, enum pipe pipe);
+bool intel_fbc_is_enabled(int device, enum pipe pipe, int log_level);
+
+#endif
+
diff --git a/lib/meson.build b/lib/meson.build
index ad68089d..820914c5 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -12,6 +12,7 @@ lib_sources = [
'i915/gem_mman.c',
'i915/gem_vm.c',
'i915/intel_decode.c',
+ 'i915/intel_fbc.c',
'i915/intel_memory_region.c',
'i915/intel_mocs.c',
'i915/intel_cmds_info.c',
diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c
index 650e14a7..f5da0f24 100644
--- a/tests/i915/kms_frontbuffer_tracking.c
+++ b/tests/i915/kms_frontbuffer_tracking.c
@@ -32,6 +32,7 @@
#include "i915/gem.h"
#include "i915/gem_create.h"
+#include "i915/intel_fbc.h"
#include "igt.h"
#include "igt_sysfs.h"
#include "igt_psr.h"
@@ -775,27 +776,6 @@ static void __debugfs_read_connector(const char *param, char *buf, int len)
#define debugfs_write_crtc(p, arr) __debugfs_write_crtc(p, arr, sizeof(arr))
#define debugfs_read_connector(p, arr) __debugfs_read_connector(p, arr, sizeof(arr))
-static char last_fbc_buf[128];
-
-static bool fbc_is_enabled(int lvl)
-{
- char buf[128];
- bool print = true;
-
- debugfs_read_crtc("i915_fbc_status", buf);
- if (lvl != IGT_LOG_DEBUG)
- last_fbc_buf[0] = '\0';
- else if (strcmp(last_fbc_buf, buf))
- strcpy(last_fbc_buf, buf);
- else
- print = false;
-
- if (print)
- igt_log(IGT_LOG_DOMAIN, lvl, "fbc_is_enabled()?\n%s", buf);
-
- return strstr(buf, "FBC enabled\n");
-}
-
static void drrs_set(unsigned int val)
{
char buf[2];
@@ -970,20 +950,11 @@ static bool fbc_mode_too_large(void)
return strstr(buf, "FBC disabled: mode too large for compression\n");
}
-static bool fbc_wait_until_enabled(void)
-{
- last_fbc_buf[0] = '\0';
-
- return igt_wait(fbc_is_enabled(IGT_LOG_DEBUG), 2000, 1);
-}
-
static bool drrs_wait_until_rr_switch_to_low(void)
{
return igt_wait(is_drrs_low(), 5000, 1);
}
-#define fbc_enable() igt_set_module_param_int(drm.fd, "enable_fbc", 1)
-#define fbc_disable() igt_set_module_param_int(drm.fd, "enable_fbc", 0)
#define drrs_enable() drrs_set(1)
#define drrs_disable() drrs_set(0)
@@ -1188,8 +1159,8 @@ static bool disable_features(const struct test_mode *t)
if (t->feature == FEATURE_DEFAULT)
return false;
- fbc_disable();
drrs_disable();
+ intel_fbc_disable(drm.fd);
return psr.can_test ? psr_disable(drm.fd, drm.debugfs) : false;
}
@@ -1429,20 +1400,9 @@ static void teardown_crcs(void)
igt_pipe_crc_free(pipe_crc);
}
-static bool fbc_supported_on_chipset(void)
-{
- char buf[128];
-
- debugfs_read_crtc("i915_fbc_status", buf);
- if (*buf == '\0')
- return false;
-
- return !strstr(buf, "FBC unsupported on this chipset\n");
-}
-
static void setup_fbc(void)
{
- if (!fbc_supported_on_chipset()) {
+ if (!intel_fbc_supported_on_chipset(drm.fd, prim_mode_params.pipe)) {
igt_info("Can't test FBC: not supported on this chipset\n");
return;
}
@@ -1649,15 +1609,18 @@ static void do_status_assertions(int flags)
igt_require(!fbc_not_enough_stolen());
igt_require(!fbc_stride_not_supported());
igt_require(!fbc_mode_too_large());
- if (!fbc_wait_until_enabled()) {
- igt_assert_f(fbc_is_enabled(IGT_LOG_WARN),
+ if (!intel_fbc_wait_until_enabled(drm.fd, prim_mode_params.pipe)) {
+ igt_assert_f(intel_fbc_is_enabled(drm.fd,
+ prim_mode_params.pipe,
+ IGT_LOG_WARN),
"FBC disabled\n");
}
if (opt.fbc_check_compression)
igt_assert(fbc_wait_for_compression());
} else if (flags & ASSERT_FBC_DISABLED) {
- igt_assert(!fbc_wait_until_enabled());
+ igt_assert(!intel_fbc_wait_until_enabled(drm.fd,
+ prim_mode_params.pipe));
}
if (flags & ASSERT_PSR_ENABLED)
@@ -1797,7 +1760,7 @@ static bool enable_features_for_test(const struct test_mode *t)
return false;
if (t->feature & FEATURE_FBC)
- fbc_enable();
+ intel_fbc_enable(drm.fd);
if (t->feature & FEATURE_PSR)
ret = psr_enable(drm.fd, drm.debugfs, PSR_MODE_1);
if (t->feature & FEATURE_DRRS)
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [igt-dev] [PATCH i-g-t v2 2/3] tests/i915/kms_frontbuffer_tracking: Split drrs into library
2023-04-12 9:30 [igt-dev] [PATCH i-g-t v2 0/3] Testcases for dirtyfb ioctl Jouni Högander
2023-04-12 9:30 ` [igt-dev] [PATCH i-g-t v2 1/3] tests/i915/kms_frontbuffer_tracking: Split fbc into library Jouni Högander
@ 2023-04-12 9:30 ` Jouni Högander
2023-04-12 9:30 ` [igt-dev] [PATCH i-g-t v2 3/3] tests/kms_dirtyfb: Add new test for dirtyfb ioctl Jouni Högander
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Jouni Högander @ 2023-04-12 9:30 UTC (permalink / raw)
To: igt-dev
Split drrs handling into library to be used by other testcases as well.
v2: Moved into libigt instead of static kms_drrs_helper
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
lib/i915/intel_drrs.c | 83 +++++++++++++++++++++++++++
lib/i915/intel_drrs.h | 17 ++++++
lib/meson.build | 1 +
tests/i915/kms_frontbuffer_tracking.c | 83 +++------------------------
4 files changed, 108 insertions(+), 76 deletions(-)
create mode 100644 lib/i915/intel_drrs.c
create mode 100644 lib/i915/intel_drrs.h
diff --git a/lib/i915/intel_drrs.c b/lib/i915/intel_drrs.c
new file mode 100644
index 00000000..75ed7fdc
--- /dev/null
+++ b/lib/i915/intel_drrs.c
@@ -0,0 +1,83 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2023 Intel Corporation
+ */
+
+#include <fcntl.h>
+
+#include "igt.h"
+#include "igt_sysfs.h"
+
+#include "intel_drrs.h"
+
+bool intel_is_drrs_supported(int device, enum pipe pipe)
+{
+ char buf[256];
+ int dir;
+
+ dir = igt_debugfs_pipe_dir(device, pipe, O_DIRECTORY);
+ igt_require_fd(dir);
+ igt_debugfs_simple_read(dir, "i915_drrs_status", buf, sizeof(buf));
+ close(dir);
+ if (*buf == '\0')
+ return false;
+
+ return !strcasestr(buf, "DRRS enabled:");
+}
+
+bool intel_output_has_drrs(int device, igt_output_t *output)
+{
+ char buf[256];
+ int dir;
+
+ dir = igt_debugfs_connector_dir(device, output->name, O_DIRECTORY);
+ igt_require_fd(dir);
+ igt_debugfs_simple_read(dir, "i915_drrs_type", buf, sizeof(buf));
+ close(dir);
+
+ return strstr(buf, "seamless");
+}
+
+static void drrs_set(int device, enum pipe pipe, unsigned int val)
+{
+ char buf[2];
+ int dir, ret;
+
+ igt_debug("Manually %sabling DRRS. %u\n", val ? "en" : "dis", val);
+ snprintf(buf, sizeof(buf), "%d", val);
+
+ dir = igt_debugfs_pipe_dir(device, pipe, O_DIRECTORY);
+ igt_require_fd(dir);
+ ret = igt_sysfs_write(dir, "i915_drrs_ctl", buf, sizeof(buf) - 1);
+
+ /*
+ * drrs_enable() is called on DRRS capable platform only,
+ * whereas drrs_disable() is called on all platforms.
+ * So handle the failure of debugfs_write only for drrs_enable().
+ */
+ if (val)
+ igt_assert_f(ret == (sizeof(buf) - 1), "debugfs_write failed");
+}
+
+void intel_drrs_enable(int device, enum pipe pipe)
+{
+ drrs_set(device, pipe, 1);
+}
+
+void intel_drrs_disable(int device, enum pipe pipe)
+{
+ drrs_set(device, pipe, 0);
+}
+
+bool intel_is_drrs_inactive(int device, enum pipe pipe)
+{
+ char buf[256];
+ int dir;
+
+ dir = igt_debugfs_pipe_dir(device, pipe, O_DIRECTORY);
+ igt_require_fd(dir);
+ igt_debugfs_simple_read(dir, "i915_drrs_status", buf, sizeof(buf));
+ close(dir);
+
+ return strstr(buf, "DRRS active: no");
+}
diff --git a/lib/i915/intel_drrs.h b/lib/i915/intel_drrs.h
new file mode 100644
index 00000000..d4d27a5f
--- /dev/null
+++ b/lib/i915/intel_drrs.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2022 Intel Corporation
+ */
+
+#ifndef INTEL_DRRS_H
+#define INTEL_DRRS_H
+
+#include "igt.h"
+
+bool intel_is_drrs_supported(int device, enum pipe pipe);
+bool intel_output_has_drrs(int device, igt_output_t *output);
+void intel_drrs_enable(int device, enum pipe pipe);
+void intel_drrs_disable(int device, enum pipe pipe);
+bool intel_is_drrs_inactive(int device, enum pipe pipe);
+
+#endif
diff --git a/lib/meson.build b/lib/meson.build
index 820914c5..11b79418 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -12,6 +12,7 @@ lib_sources = [
'i915/gem_mman.c',
'i915/gem_vm.c',
'i915/intel_decode.c',
+ 'i915/intel_drrs.c',
'i915/intel_fbc.c',
'i915/intel_memory_region.c',
'i915/intel_mocs.c',
diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c
index f5da0f24..4669e0d4 100644
--- a/tests/i915/kms_frontbuffer_tracking.c
+++ b/tests/i915/kms_frontbuffer_tracking.c
@@ -32,6 +32,7 @@
#include "i915/gem.h"
#include "i915/gem_create.h"
+#include "i915/intel_drrs.h"
#include "i915/intel_fbc.h"
#include "igt.h"
#include "igt_sysfs.h"
@@ -746,54 +747,10 @@ static void __debugfs_read_crtc(const char *param, char *buf, int len)
close(dir);
}
-static int __debugfs_write_crtc(const char *param, const char *buf, int len)
-{
- int dir, ret;
- enum pipe pipe;
-
- pipe = prim_mode_params.pipe;
- dir = igt_debugfs_pipe_dir(drm.fd, pipe, O_DIRECTORY);
- igt_require_fd(dir);
- ret = igt_sysfs_write(dir, param, buf, len - 1);
- close(dir);
-
- return ret;
-}
-
-static void __debugfs_read_connector(const char *param, char *buf, int len)
-{
- int dir;
- igt_output_t *output;
-
- output = prim_mode_params.output;
- dir = igt_debugfs_connector_dir(drm.fd, output->name, O_DIRECTORY);
- igt_require_fd(dir);
- igt_debugfs_simple_read(dir, param, buf, len);
- close(dir);
-}
-
#define debugfs_read_crtc(p, arr) __debugfs_read_crtc(p, arr, sizeof(arr))
#define debugfs_write_crtc(p, arr) __debugfs_write_crtc(p, arr, sizeof(arr))
#define debugfs_read_connector(p, arr) __debugfs_read_connector(p, arr, sizeof(arr))
-static void drrs_set(unsigned int val)
-{
- char buf[2];
- int ret;
-
- igt_debug("Manually %sabling DRRS. %u\n", val ? "en" : "dis", val);
- snprintf(buf, sizeof(buf), "%d", val);
- ret = debugfs_write_crtc("i915_drrs_ctl", buf);
-
- /*
- * drrs_enable() is called on DRRS capable platform only,
- * whereas drrs_disable() is called on all platforms.
- * So handle the failure of debugfs_write only for drrs_enable().
- */
- if (val)
- igt_assert_f(ret == (sizeof(buf) - 1), "debugfs_write failed");
-}
-
static bool is_drrs_high(void)
{
char buf[MAX_DRRS_STATUS_BUF_LEN];
@@ -810,22 +767,6 @@ static bool is_drrs_low(void)
return strstr(buf, "DRRS refresh rate: low");
}
-static bool is_drrs_supported(void)
-{
- char buf[MAX_DRRS_STATUS_BUF_LEN];
-
- debugfs_read_crtc("i915_drrs_status", buf);
- return strcasestr(buf, "DRRS enabled:");
-}
-
-static bool is_drrs_inactive(void)
-{
- char buf[MAX_DRRS_STATUS_BUF_LEN];
-
- debugfs_read_crtc("i915_drrs_status", buf);
- return strstr(buf, "DRRS active: no");
-}
-
static void drrs_print_status(void)
{
char buf[MAX_DRRS_STATUS_BUF_LEN];
@@ -834,14 +775,6 @@ static void drrs_print_status(void)
igt_info("DRRS STATUS :\n%s\n", buf);
}
-static bool output_has_drrs(void)
-{
- char buf[MAX_DRRS_STATUS_BUF_LEN];
-
- debugfs_read_connector("i915_drrs_type", buf);
- return strstr(buf, "seamless");
-}
-
static struct timespec fbc_get_last_action(void)
{
struct timespec ret = { 0, 0 };
@@ -955,9 +888,6 @@ static bool drrs_wait_until_rr_switch_to_low(void)
return igt_wait(is_drrs_low(), 5000, 1);
}
-#define drrs_enable() drrs_set(1)
-#define drrs_disable() drrs_set(0)
-
static struct rect pat1_get_rect(struct fb_region *fb, int r)
{
struct rect rect;
@@ -1159,8 +1089,9 @@ static bool disable_features(const struct test_mode *t)
if (t->feature == FEATURE_DEFAULT)
return false;
- drrs_disable();
intel_fbc_disable(drm.fd);
+ intel_drrs_disable(drm.fd, prim_mode_params.pipe);
+
return psr.can_test ? psr_disable(drm.fd, drm.debugfs) : false;
}
@@ -1437,12 +1368,12 @@ static void teardown_psr(void)
static void setup_drrs(void)
{
- if (!output_has_drrs()) {
+ if (!intel_output_has_drrs(drm.fd, prim_mode_params.output)) {
igt_info("Can't test DRRS: no usable screen.\n");
return;
}
- if (!is_drrs_supported()) {
+ if (!intel_is_drrs_supported(drm.fd, prim_mode_params.pipe)) {
igt_info("Can't test DRRS: Not supported.\n");
return;
}
@@ -1599,7 +1530,7 @@ static void do_status_assertions(int flags)
igt_assert_f(false, "DRRS LOW\n");
}
} else if (flags & ASSERT_DRRS_INACTIVE) {
- if (!is_drrs_inactive()) {
+ if (!intel_is_drrs_inactive(drm.fd, prim_mode_params.pipe)) {
drrs_print_status();
igt_assert_f(false, "DRRS INACTIVE\n");
}
@@ -1764,7 +1695,7 @@ static bool enable_features_for_test(const struct test_mode *t)
if (t->feature & FEATURE_PSR)
ret = psr_enable(drm.fd, drm.debugfs, PSR_MODE_1);
if (t->feature & FEATURE_DRRS)
- drrs_enable();
+ intel_drrs_enable(drm.fd, prim_mode_params.pipe);
return ret;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [igt-dev] [PATCH i-g-t v2 3/3] tests/kms_dirtyfb: Add new test for dirtyfb ioctl
2023-04-12 9:30 [igt-dev] [PATCH i-g-t v2 0/3] Testcases for dirtyfb ioctl Jouni Högander
2023-04-12 9:30 ` [igt-dev] [PATCH i-g-t v2 1/3] tests/i915/kms_frontbuffer_tracking: Split fbc into library Jouni Högander
2023-04-12 9:30 ` [igt-dev] [PATCH i-g-t v2 2/3] tests/i915/kms_frontbuffer_tracking: Split drrs " Jouni Högander
@ 2023-04-12 9:30 ` Jouni Högander
2023-04-12 11:15 ` [igt-dev] ✓ Fi.CI.BAT: success for Testcases for dirtyfb ioctl (rev3) Patchwork
2023-04-12 19:17 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Jouni Högander @ 2023-04-12 9:30 UTC (permalink / raw)
To: igt-dev
Add new test to validate dirtyfb ioctl is working properly with GPU
frontbuffer rendering.
Create big framebuffer and use only lower right corner for the
plane. Initiate GPU drawing for a rectangle over the whole
framebuffer and perform dirtyfb ioctl. Then wait for the drawing to
complete and collect crc and check that it matches with expected.
v2:
- Change license comment
- Move disable_features and do not apply for FEATURE_DEFAULT
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
tests/i915/kms_dirtyfb.c | 292 +++++++++++++++++++++++++++++++++++++++
tests/meson.build | 1 +
2 files changed, 293 insertions(+)
create mode 100644 tests/i915/kms_dirtyfb.c
diff --git a/tests/i915/kms_dirtyfb.c b/tests/i915/kms_dirtyfb.c
new file mode 100644
index 00000000..b120e957
--- /dev/null
+++ b/tests/i915/kms_dirtyfb.c
@@ -0,0 +1,292 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2023 Intel Corporation
+ */
+
+#include <sys/types.h>
+
+#include "igt.h"
+#include "igt_psr.h"
+
+#include "i915/intel_drrs.h"
+#include "i915/intel_fbc.h"
+
+IGT_TEST_DESCRIPTION("Test the DIRTYFB ioctl is working properly with "
+ "its related features: FBC, PSR and DRRS");
+
+#ifndef PAGE_ALIGN
+#ifndef PAGE_SIZE
+#define PAGE_SIZE 4096
+#endif
+#define PAGE_ALIGN(x) ALIGN(x, PAGE_SIZE)
+#endif
+
+typedef struct {
+ int drm_fd;
+ int debugfs_fd;
+ igt_display_t display;
+ drmModeModeInfo *mode;
+ igt_output_t *output;
+ igt_pipe_crc_t *pipe_crc;
+ enum pipe pipe;
+
+ struct igt_fb fbs[3];
+
+ igt_crc_t ref_crc;
+
+ struct buf_ops *bops;
+ enum {
+ FEATURE_NONE = 0,
+ FEATURE_PSR = 1,
+ FEATURE_FBC = 2,
+ FEATURE_DRRS = 4,
+ FEATURE_COUNT = 8,
+ FEATURE_DEFAULT = 8,
+ } feature;
+} data_t;
+
+static const char *feature_str(int feature)
+{
+ switch (feature) {
+ case FEATURE_NONE:
+ return "nop";
+ case FEATURE_FBC:
+ return "fbc";
+ case FEATURE_PSR:
+ return "psr";
+ case FEATURE_DRRS:
+ return "drrs";
+ case FEATURE_DEFAULT:
+ return "default";
+ default:
+ igt_assert(false);
+ }
+}
+
+static bool check_support(data_t *data)
+{
+ switch (data->feature) {
+ case FEATURE_NONE:
+ return true;
+ case FEATURE_FBC:
+ return intel_fbc_supported_on_chipset(data->drm_fd, data->pipe);
+ case FEATURE_PSR:
+ return psr_sink_support(data->drm_fd, data->debugfs_fd,
+ PSR_MODE_1);
+ case FEATURE_DRRS:
+ return intel_is_drrs_supported(data->drm_fd, data->pipe) &&
+ intel_output_has_drrs(data->drm_fd, data->output);
+ case FEATURE_DEFAULT:
+ return true;
+ default:
+ igt_assert(false);
+ }
+}
+
+static void enable_feature(data_t *data)
+{
+ switch (data->feature) {
+ case FEATURE_NONE:
+ break;
+ case FEATURE_FBC:
+ intel_fbc_enable(data->drm_fd);
+ break;
+ case FEATURE_PSR:
+ psr_enable(data->drm_fd, data->debugfs_fd, PSR_MODE_1);
+ break;
+ case FEATURE_DRRS:
+ intel_drrs_enable(data->drm_fd, data->pipe);
+ break;
+ case FEATURE_DEFAULT:
+ break;
+ default:
+ igt_assert(false);
+ }
+}
+
+static void check_feature(data_t *data)
+{
+ switch (data->feature) {
+ case FEATURE_NONE:
+ break;
+ case FEATURE_FBC:
+ igt_assert_f(intel_fbc_wait_until_enabled(data->drm_fd,
+ data->pipe),
+ "FBC still disabled");
+ break;
+ case FEATURE_PSR:
+ igt_assert_f(psr_wait_entry(data->debugfs_fd, PSR_MODE_1),
+ "PSR still disabled\n");
+ break;
+ case FEATURE_DRRS:
+ igt_assert_f(intel_is_drrs_inactive(data->drm_fd, data->pipe),
+ "DRRS INACTIVE\n");
+ break;
+ case FEATURE_DEFAULT:
+ break;
+ default:
+ igt_assert(false);
+ }
+}
+
+static void disable_features(data_t *data)
+{
+ intel_fbc_disable(data->drm_fd);
+ psr_disable(data->drm_fd, data->debugfs_fd);
+ intel_drrs_disable(data->drm_fd, data->pipe);
+}
+
+static void prepare(data_t *data)
+{
+ igt_plane_t *primary;
+ drmModeResPtr res;
+
+ igt_skip_on(!check_support(data));
+
+ data->mode = igt_output_get_mode(data->output);
+
+ igt_output_set_pipe(data->output, data->pipe);
+
+ data->pipe_crc = igt_pipe_crc_new(data->drm_fd, data->pipe,
+ IGT_PIPE_CRC_SOURCE_AUTO);
+
+ igt_create_color_fb(data->drm_fd, data->mode->hdisplay,
+ data->mode->hdisplay, DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR, 0.0, 1.0, 0.0,
+ &data->fbs[0]);
+ igt_draw_rect_fb(data->drm_fd, data->bops, 0, &data->fbs[0],
+ IGT_DRAW_RENDER, 0, 0, data->fbs[0].width,
+ data->fbs[0].height, 0xFF);
+
+ primary = igt_output_get_plane_type(data->output,
+ DRM_PLANE_TYPE_PRIMARY);
+
+ igt_plane_set_fb(primary, &data->fbs[0]);
+
+ if (data->feature != FEATURE_DEFAULT)
+ disable_features(data);
+
+ igt_display_commit2(&data->display, COMMIT_ATOMIC);
+
+ igt_pipe_crc_collect_crc(data->pipe_crc, &data->ref_crc);
+
+ res = drmModeGetResources(data->drm_fd);
+
+ igt_create_color_fb(data->drm_fd, res->max_width,
+ res->max_height, DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR, 0.0, 1.0, 0.0,
+ &data->fbs[1]);
+ igt_draw_rect_fb(data->drm_fd, data->bops, 0, &data->fbs[1],
+ IGT_DRAW_MMAP_CPU, 0, 0, data->fbs[1].width,
+ data->fbs[1].height, 0xFF);
+
+ igt_create_color_fb(data->drm_fd, res->max_width,
+ res->max_height, DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR, 0.0, 1.0, 0.0,
+ &data->fbs[2]);
+
+ igt_plane_set_fb(primary, &data->fbs[2]);
+ igt_fb_set_position(&data->fbs[2], primary,
+ data->fbs[2].width - data->fbs[0].width,
+ data->fbs[2].height - data->fbs[0].height);
+ igt_fb_set_size(&data->fbs[2], primary, data->fbs[0].width,
+ data->fbs[0].height);
+
+ enable_feature(data);
+
+ igt_display_commit2(&data->display, COMMIT_ATOMIC);
+
+ check_feature(data);
+}
+
+static void cleanup(data_t *data)
+{
+ igt_remove_fb(data->drm_fd, &data->fbs[0]);
+ igt_remove_fb(data->drm_fd, &data->fbs[1]);
+
+ igt_pipe_crc_free(data->pipe_crc);
+
+ igt_output_set_pipe(data->output, PIPE_NONE);
+
+ igt_display_commit2(&data->display, COMMIT_ATOMIC);
+}
+
+static void run_test(data_t *data)
+{
+ igt_crc_t crc;
+ struct intel_buf *src, *dst;
+ struct intel_bb *ibb;
+ uint32_t devid = intel_get_drm_devid(data->drm_fd);
+ igt_render_copyfunc_t rendercopy = igt_get_render_copyfunc(devid);
+ int r;
+
+ igt_skip_on(!rendercopy);
+
+ src = intel_buf_create_using_handle(data->bops, data->fbs[1].gem_handle,
+ data->fbs[1].width,
+ data->fbs[1].height,
+ igt_drm_format_to_bpp(data->fbs[1].drm_format),
+ 0, igt_fb_mod_to_tiling(data->fbs[1].modifier), 0);
+ dst = intel_buf_create_using_handle(data->bops, data->fbs[2].gem_handle,
+ data->fbs[2].width,
+ data->fbs[2].height,
+ igt_drm_format_to_bpp(data->fbs[2].drm_format),
+ 0, igt_fb_mod_to_tiling(data->fbs[2].modifier), 0);
+ ibb = intel_bb_create_with_context(data->drm_fd, 0, NULL, PAGE_SIZE);
+
+ rendercopy(ibb, src, 0, 0, data->fbs[2].width, data->fbs[2].height, dst, 0, 0);
+
+ /* Perfom dirtyfb right after initiating rendercopy */
+ r = drmModeDirtyFB(data->drm_fd, data->fbs[2].fb_id, NULL, 0);
+ igt_assert(r == 0 || r == -ENOSYS);
+
+ /* Ensure rendercopy is complete */
+ intel_bb_sync(ibb);
+
+ intel_bb_destroy(ibb);
+ intel_buf_destroy(src);
+ intel_buf_destroy(dst);
+
+ igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
+ igt_assert_crc_equal(&crc, &data->ref_crc);
+}
+
+igt_main
+{
+ data_t data = {};
+
+ igt_fixture {
+ data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
+ data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
+ kmstest_set_vt_graphics_mode();
+
+ igt_display_require(&data.display, data.drm_fd);
+
+ data.bops = buf_ops_create(data.drm_fd);
+
+ igt_display_reset(&data.display);
+ }
+
+ igt_describe("Test dirtyFB ioctl");
+ igt_subtest_with_dynamic("dirtyfb-ioctl") {
+ data.pipe = PIPE_A;
+ for_each_valid_output_on_pipe(&data.display, data.pipe,
+ data.output) {
+ for (data.feature = FEATURE_DEFAULT; data.feature > 0;
+ data.feature = data.feature >> 1) {
+ igt_dynamic_f("%s-%s", feature_str(data.feature),
+ igt_output_name(data.output)) {
+ prepare(&data);
+ run_test(&data);
+ cleanup(&data);
+ }
+ }
+ }
+ }
+
+ igt_fixture {
+ buf_ops_destroy(data.bops);
+ igt_display_fini(&data.display);
+ close(data.drm_fd);
+ }
+}
diff --git a/tests/meson.build b/tests/meson.build
index da31e782..4bf2951b 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -222,6 +222,7 @@ i915_progs = [
'kms_busy',
'kms_ccs',
'kms_cdclk',
+ 'kms_dirtyfb',
'kms_draw_crc',
'kms_fbcon_fbt',
'kms_fence_pin_leak',
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Testcases for dirtyfb ioctl (rev3)
2023-04-12 9:30 [igt-dev] [PATCH i-g-t v2 0/3] Testcases for dirtyfb ioctl Jouni Högander
` (2 preceding siblings ...)
2023-04-12 9:30 ` [igt-dev] [PATCH i-g-t v2 3/3] tests/kms_dirtyfb: Add new test for dirtyfb ioctl Jouni Högander
@ 2023-04-12 11:15 ` Patchwork
2023-04-12 19:17 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2023-04-12 11:15 UTC (permalink / raw)
To: Hogander, Jouni; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 5220 bytes --]
== Series Details ==
Series: Testcases for dirtyfb ioctl (rev3)
URL : https://patchwork.freedesktop.org/series/116130/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12995 -> IGTPW_8787
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/index.html
Participating hosts (37 -> 36)
------------------------------
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in IGTPW_8787 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@slpc:
- bat-rpls-1: [PASS][1] -> [DMESG-FAIL][2] ([i915#6367])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/bat-rpls-1/igt@i915_selftest@live@slpc.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/bat-rpls-1/igt@i915_selftest@live@slpc.html
- bat-adln-1: NOTRUN -> [DMESG-FAIL][3] ([i915#6997])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/bat-adln-1/igt@i915_selftest@live@slpc.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- bat-adln-1: NOTRUN -> [SKIP][4] ([i915#7828])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/bat-adln-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1:
- bat-dg2-8: [PASS][5] -> [FAIL][6] ([i915#7932])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1.html
#### Possible fixes ####
* igt@i915_module_load@load:
- fi-elk-e7500: [DMESG-WARN][7] ([i915#4391]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/fi-elk-e7500/igt@i915_module_load@load.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/fi-elk-e7500/igt@i915_module_load@load.html
* igt@i915_module_load@reload:
- fi-kbl-soraka: [DMESG-WARN][9] ([i915#1982]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/fi-kbl-soraka/igt@i915_module_load@reload.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/fi-kbl-soraka/igt@i915_module_load@reload.html
* igt@i915_selftest@live@gt_heartbeat:
- fi-kbl-soraka: [DMESG-FAIL][11] ([i915#5334] / [i915#7872]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@gt_lrc:
- bat-adln-1: [INCOMPLETE][13] ([i915#7609]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/bat-adln-1/igt@i915_selftest@live@gt_lrc.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/bat-adln-1/igt@i915_selftest@live@gt_lrc.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1:
- bat-dg2-8: [FAIL][15] ([i915#7932]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
#### Warnings ####
* igt@i915_selftest@live@slpc:
- bat-rpls-2: [DMESG-FAIL][17] ([i915#6367] / [i915#7913] / [i915#7996]) -> [DMESG-FAIL][18] ([i915#6367] / [i915#7913])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/bat-rpls-2/igt@i915_selftest@live@slpc.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/bat-rpls-2/igt@i915_selftest@live@slpc.html
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
[i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7872]: https://gitlab.freedesktop.org/drm/intel/issues/7872
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
[i915#7996]: https://gitlab.freedesktop.org/drm/intel/issues/7996
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7251 -> IGTPW_8787
CI-20190529: 20190529
CI_DRM_12995: 0c5be3027d7ac4a8b107bf1113867744aa3bb440 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8787: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/index.html
IGT_7251: 55fa959aad79b3771350a801c1c2dbd4e5034102 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@kms_dirtyfb@dirtyfb-ioctl
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/index.html
[-- Attachment #2: Type: text/html, Size: 6306 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for Testcases for dirtyfb ioctl (rev3)
2023-04-12 9:30 [igt-dev] [PATCH i-g-t v2 0/3] Testcases for dirtyfb ioctl Jouni Högander
` (3 preceding siblings ...)
2023-04-12 11:15 ` [igt-dev] ✓ Fi.CI.BAT: success for Testcases for dirtyfb ioctl (rev3) Patchwork
@ 2023-04-12 19:17 ` Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2023-04-12 19:17 UTC (permalink / raw)
To: Hogander, Jouni; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 17994 bytes --]
== Series Details ==
Series: Testcases for dirtyfb ioctl (rev3)
URL : https://patchwork.freedesktop.org/series/116130/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12995_full -> IGTPW_8787_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/index.html
Participating hosts (7 -> 7)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_8787_full:
### IGT changes ###
#### Possible regressions ####
* {igt@kms_dirtyfb@dirtyfb-ioctl@default-dp-1} (NEW):
- shard-apl: NOTRUN -> [FAIL][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-apl6/igt@kms_dirtyfb@dirtyfb-ioctl@default-dp-1.html
* {igt@kms_dirtyfb@dirtyfb-ioctl@default-hdmi-a-2} (NEW):
- shard-glk: NOTRUN -> [FAIL][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-glk4/igt@kms_dirtyfb@dirtyfb-ioctl@default-hdmi-a-2.html
* {igt@kms_dirtyfb@dirtyfb-ioctl@default-vga-1} (NEW):
- shard-snb: NOTRUN -> [FAIL][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-snb2/igt@kms_dirtyfb@dirtyfb-ioctl@default-vga-1.html
* {igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1} (NEW):
- {shard-tglu}: NOTRUN -> [SKIP][4] +2 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-tglu-8/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1.html
* {igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-2} (NEW):
- {shard-rkl}: NOTRUN -> [SKIP][5] +2 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-rkl-6/igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-2.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
- {shard-rkl}: [PASS][6] -> [ABORT][7]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-rkl-2/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-rkl-1/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
New tests
---------
New tests have been introduced between CI_DRM_12995_full and IGTPW_8787_full:
### New IGT tests (18) ###
* igt@kms_dirtyfb@dirtyfb-ioctl:
- Statuses :
- Exec time: [None] s
* igt@kms_dirtyfb@dirtyfb-ioctl@default-dp-1:
- Statuses : 1 fail(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@default-hdmi-a-1:
- Statuses : 2 pass(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@default-hdmi-a-2:
- Statuses : 1 fail(s) 1 pass(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@default-vga-1:
- Statuses : 1 fail(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@drrs-dp-1:
- Statuses : 1 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@drrs-hdmi-a-1:
- Statuses : 2 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@drrs-hdmi-a-2:
- Statuses : 2 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@drrs-vga-1:
- Statuses : 1 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@fbc-dp-1:
- Statuses : 1 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-1:
- Statuses : 2 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@fbc-hdmi-a-2:
- Statuses : 2 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@fbc-vga-1:
- Statuses : 1 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@psr-dp-1:
- Statuses : 1 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-1:
- Statuses : 2 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@psr-hdmi-a-2:
- Statuses : 2 skip(s)
- Exec time: [0.0] s
* igt@kms_dirtyfb@dirtyfb-ioctl@psr-vga-1:
- Statuses : 1 skip(s)
- Exec time: [0.0] s
* igt@kms_vblank:
- Statuses :
- Exec time: [None] s
Known issues
------------
Here are the changes found in IGTPW_8787_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_fair@basic-pace-solo@rcs0:
- shard-apl: [PASS][8] -> [FAIL][9] ([i915#2842])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-apl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-apl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html
* igt@gem_pxp@protected-encrypted-src-copy-not-readible:
- shard-snb: NOTRUN -> [SKIP][10] ([fdo#109271]) +17 similar issues
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-snb5/igt@gem_pxp@protected-encrypted-src-copy-not-readible.html
* igt@i915_pm_dc@dc9-dpms:
- shard-apl: [PASS][11] -> [SKIP][12] ([fdo#109271])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-apl1/igt@i915_pm_dc@dc9-dpms.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-glk: [PASS][13] -> [FAIL][14] ([i915#2346])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
- shard-apl: [PASS][15] -> [FAIL][16] ([i915#2346])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-apl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* {igt@kms_dirtyfb@dirtyfb-ioctl@drrs-dp-1} (NEW):
- shard-apl: NOTRUN -> [SKIP][17] ([fdo#109271]) +2 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-apl6/igt@kms_dirtyfb@dirtyfb-ioctl@drrs-dp-1.html
* {igt@kms_dirtyfb@dirtyfb-ioctl@drrs-hdmi-a-2} (NEW):
- shard-glk: NOTRUN -> [SKIP][18] ([fdo#109271]) +5 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-glk4/igt@kms_dirtyfb@dirtyfb-ioctl@drrs-hdmi-a-2.html
* igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1:
- shard-glk: [PASS][19] -> [FAIL][20] ([i915#79])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-glk2/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-glk6/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1.html
#### Possible fixes ####
* igt@gem_exec_fair@basic-flow@rcs0:
- {shard-tglu}: [FAIL][21] ([i915#2842]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-tglu-7/igt@gem_exec_fair@basic-flow@rcs0.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-tglu-3/igt@gem_exec_fair@basic-flow@rcs0.html
* igt@gem_exec_suspend@basic-s4-devices@smem:
- {shard-tglu}: [ABORT][23] ([i915#7975]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-tglu-10/igt@gem_exec_suspend@basic-s4-devices@smem.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-tglu-8/igt@gem_exec_suspend@basic-s4-devices@smem.html
* igt@i915_suspend@basic-s2idle-without-i915:
- shard-snb: [ABORT][25] ([i915#4528]) -> [PASS][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-snb5/igt@i915_suspend@basic-s2idle-without-i915.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-snb7/igt@i915_suspend@basic-s2idle-without-i915.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
- shard-glk: [FAIL][27] ([i915#72]) -> [PASS][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-glk4/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-glk9/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-glk: [FAIL][29] ([i915#2346]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@single-bo@pipe-b:
- {shard-rkl}: [INCOMPLETE][31] ([i915#8011]) -> [PASS][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-rkl-7/igt@kms_cursor_legacy@single-bo@pipe-b.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-rkl-6/igt@kms_cursor_legacy@single-bo@pipe-b.html
* igt@kms_plane_scaling@i915-max-src-size@pipe-a-hdmi-a-1:
- {shard-tglu}: [FAIL][33] ([i915#8292]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12995/shard-tglu-2/igt@kms_plane_scaling@i915-max-src-size@pipe-a-hdmi-a-1.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/shard-tglu-2/igt@kms_plane_scaling@i915-max-src-size@pipe-a-hdmi-a-1.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
[i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
[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#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[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#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[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#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
[i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
[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#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
[i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[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#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
[i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
[i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
[i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
[i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
[i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
[i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150
[i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7251 -> IGTPW_8787
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12995: 0c5be3027d7ac4a8b107bf1113867744aa3bb440 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8787: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/index.html
IGT_7251: 55fa959aad79b3771350a801c1c2dbd4e5034102 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8787/index.html
[-- Attachment #2: Type: text/html, Size: 13053 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-04-12 19:17 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-12 9:30 [igt-dev] [PATCH i-g-t v2 0/3] Testcases for dirtyfb ioctl Jouni Högander
2023-04-12 9:30 ` [igt-dev] [PATCH i-g-t v2 1/3] tests/i915/kms_frontbuffer_tracking: Split fbc into library Jouni Högander
2023-04-12 9:30 ` [igt-dev] [PATCH i-g-t v2 2/3] tests/i915/kms_frontbuffer_tracking: Split drrs " Jouni Högander
2023-04-12 9:30 ` [igt-dev] [PATCH i-g-t v2 3/3] tests/kms_dirtyfb: Add new test for dirtyfb ioctl Jouni Högander
2023-04-12 11:15 ` [igt-dev] ✓ Fi.CI.BAT: success for Testcases for dirtyfb ioctl (rev3) Patchwork
2023-04-12 19:17 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox