* [igt-dev] [PATCH i-g-t 1/2] lib: Add DRRS helpers
@ 2022-04-05 19:12 José Roberto de Souza
2022-04-05 19:12 ` [igt-dev] [PATCH i-g-t 2/2] test: kms_frontbuffer_tracking: Fix DRRS subtests José Roberto de Souza
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: José Roberto de Souza @ 2022-04-05 19:12 UTC (permalink / raw)
To: igt-dev
Due to recent refactors in i915, it completely changed
i915_drrs_status breaking all DRRS tests in kms_frontbuffer_tracking
so here adding DRRS helpers to a separate file so it can be used by
kms_frontbuffer_tracking and any future tests.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
lib/igt_drrs.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++
lib/igt_drrs.h | 31 ++++++++++
lib/meson.build | 1 +
3 files changed, 183 insertions(+)
create mode 100644 lib/igt_drrs.c
create mode 100644 lib/igt_drrs.h
diff --git a/lib/igt_drrs.c b/lib/igt_drrs.c
new file mode 100644
index 0000000000..8c424c32e3
--- /dev/null
+++ b/lib/igt_drrs.c
@@ -0,0 +1,151 @@
+/*
+ * Copyright © 2022 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include "drmtest.h"
+#include "igt_drrs.h"
+
+#define DRRS_ENABLE_STR "DRRS Enabled: "
+#define DRRS_ACTIVE_STR "DRRS Active: "
+#define DRRS_REFRESH_RATE_STR "DRRS refresh rate: "
+
+struct drrs_status {
+ bool enabled;
+ bool active;
+ bool low_refresh_rate;
+};
+
+static bool is_yes_or_no(char *ch)
+{
+ return strncmp(ch, "yes", 3) == 0;
+}
+
+static const char *yes_or_no(bool r)
+{
+ return r ? "yes" : "no";
+}
+
+static bool parse(int debugfs_fd, enum pipe pipe, struct drrs_status *status)
+{
+ char buf[1024], search[16], *ch;
+ int ret;
+
+ ret = igt_debugfs_simple_read(debugfs_fd, "i915_drrs_status", buf,
+ sizeof(buf));
+ if (ret < 0) {
+ igt_info("Could not read i915_drrs_status: %s\n",
+ strerror(-ret));
+ return false;
+ }
+
+ snprintf(search, sizeof(search), ":pipe %s]:", kmstest_pipe_name(pipe));
+ ch = strstr(buf, search);
+ if (!ch)
+ return false;
+
+ ch = strstr(buf, DRRS_ENABLE_STR);
+ if (!ch)
+ return false;
+ ch += sizeof(DRRS_ENABLE_STR);
+ status->enabled = is_yes_or_no(ch);
+
+ ch = strstr(buf, DRRS_ACTIVE_STR);
+ if (!ch)
+ return false;
+ ch += sizeof(DRRS_ACTIVE_STR);
+ status->active = is_yes_or_no(ch);
+
+ ch = strstr(buf, DRRS_REFRESH_RATE_STR);
+ if (!ch)
+ return false;
+ ch += sizeof(DRRS_REFRESH_RATE_STR);
+ status->low_refresh_rate = strncmp(ch, "low", 3) == 0;
+
+ return true;
+}
+
+bool drrs_is_enabled(int debugfs_fd, enum pipe pipe)
+{
+ struct drrs_status status;
+ bool ret;
+
+ ret = parse(debugfs_fd, pipe, &status);
+ if (!ret)
+ return false;
+
+ return status.enabled;
+}
+
+bool drrs_is_active(int debugfs_fd, enum pipe pipe)
+{
+ struct drrs_status status;
+ bool ret;
+
+ ret = parse(debugfs_fd, pipe, &status);
+ if (!ret)
+ return false;
+
+ return status.active;
+}
+
+bool drrs_is_low_refresh_rate(int debugfs_fd, enum pipe pipe)
+{
+ struct drrs_status status;
+ bool ret;
+
+ ret = parse(debugfs_fd, pipe, &status);
+ if (!ret)
+ return false;
+
+ return status.low_refresh_rate;
+}
+
+bool drrs_write_status(int debugfs_fd, enum pipe pipe, char *buf, int len)
+{
+ struct drrs_status status;
+ int ret, used = 0;
+
+ ret = parse(debugfs_fd, pipe, &status);
+ if (!ret)
+ return false;
+
+ ret = snprintf(buf, len - used, DRRS_ENABLE_STR "%s\n",
+ yes_or_no(status.enabled));
+ if (ret < 0 || ret >= (len - used))
+ return false;
+ used += ret;
+ buf += ret;
+
+ ret = snprintf(buf, len - used, DRRS_ACTIVE_STR "%s\n",
+ yes_or_no(status.active));
+ if (ret < 0 || ret >= (len - used))
+ return false;
+ used += ret;
+ buf += ret;
+
+ ret = snprintf(buf, len - used, DRRS_REFRESH_RATE_STR "%s\n",
+ status.low_refresh_rate ? "low" : "high");
+ if (ret < 0 || ret >= (len - used))
+ return false;
+
+ return true;
+}
\ No newline at end of file
diff --git a/lib/igt_drrs.h b/lib/igt_drrs.h
new file mode 100644
index 0000000000..ff79fb20fb
--- /dev/null
+++ b/lib/igt_drrs.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright © 2022 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#pragma once
+
+#include "igt_kms.h"
+
+bool drrs_is_enabled(int debugfs_fd, enum pipe pipe);
+bool drrs_is_active(int debugfs_fd, enum pipe pipe);
+bool drrs_is_low_refresh_rate(int debugfs_fd, enum pipe pipe);
+bool drrs_write_status(int debugfs_fd, enum pipe pipe, char *buf, int len);
diff --git a/lib/meson.build b/lib/meson.build
index ccee7a5965..3176b27813 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -77,6 +77,7 @@ lib_sources = [
'igt_dummyload.c',
'igt_store.c',
'uwildmat/uwildmat.c',
+ 'igt_drrs.c',
'igt_kmod.c',
'igt_panfrost.c',
'igt_v3d.c',
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [igt-dev] [PATCH i-g-t 2/2] test: kms_frontbuffer_tracking: Fix DRRS subtests 2022-04-05 19:12 [igt-dev] [PATCH i-g-t 1/2] lib: Add DRRS helpers José Roberto de Souza @ 2022-04-05 19:12 ` José Roberto de Souza 2022-04-06 7:33 ` Petri Latvala 2022-04-05 20:17 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/2] lib: Add DRRS helpers Patchwork ` (3 subsequent siblings) 4 siblings, 1 reply; 10+ messages in thread From: José Roberto de Souza @ 2022-04-05 19:12 UTC (permalink / raw) To: igt-dev Due to recent refactors in i915, it completely changed i915_drrs_status breaking all DRRS subtests, so here using the newly added DRRS helpers to fix it. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> --- tests/i915/kms_frontbuffer_tracking.c | 57 +++------------------------ 1 file changed, 5 insertions(+), 52 deletions(-) diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c index 814ddb46ce..59ba6cfc11 100644 --- a/tests/i915/kms_frontbuffer_tracking.c +++ b/tests/i915/kms_frontbuffer_tracking.c @@ -34,6 +34,7 @@ #include "i915/gem_create.h" #include "igt.h" #include "igt_sysfs.h" +#include "igt_drrs.h" #include "igt_psr.h" IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and " @@ -723,13 +724,6 @@ static void set_mode_for_params(struct modeset_params *params) igt_display_commit(&drm.display); } -static void __debugfs_read(const char *param, char *buf, int len) -{ - len = igt_debugfs_simple_read(drm.debugfs, param, buf, len); - if (len < 0) - igt_assert(len == -ENOENT || len == -ENODEV); -} - static int __debugfs_write(const char *param, char *buf, int len) { return igt_sysfs_write(drm.debugfs, param, buf, len - 1); @@ -790,47 +784,11 @@ static void drrs_set(unsigned int val) igt_assert_f(ret == (sizeof(buf) - 1), "debugfs_write failed"); } -static bool is_drrs_high(void) -{ - char buf[MAX_DRRS_STATUS_BUF_LEN]; - - debugfs_read("i915_drrs_status", buf); - return strstr(buf, "DRRS_HIGH_RR"); -} - -static bool is_drrs_low(void) -{ - char buf[MAX_DRRS_STATUS_BUF_LEN]; - - debugfs_read("i915_drrs_status", buf); - return strstr(buf, "DRRS_LOW_RR"); -} - -static bool is_drrs_supported(void) -{ - char buf[MAX_DRRS_STATUS_BUF_LEN]; - - debugfs_read("i915_drrs_status", buf); - return strcasestr(buf, "DRRS Supported: Yes"); -} - -static bool is_drrs_inactive(void) -{ - char buf[MAX_DRRS_STATUS_BUF_LEN]; - - debugfs_read("i915_drrs_status", buf); - - if (strstr(buf, "DRRS_State: ")) - return false; - - return true; -} - static void drrs_print_status(void) { char buf[MAX_DRRS_STATUS_BUF_LEN]; - debugfs_read("i915_drrs_status", buf); + drrs_write_status(drm.debugfs, prim_mode_params.pipe, buf, sizeof(buf)); igt_info("DRRS STATUS :\n%s\n", buf); } @@ -951,7 +909,7 @@ static bool fbc_wait_until_enabled(void) static bool drrs_wait_until_rr_switch_to_low(void) { - return igt_wait(is_drrs_low(), 5000, 1); + return igt_wait(drrs_is_low_refresh_rate(drm.debugfs, prim_mode_params.pipe), 5000, 1); } #define fbc_enable() igt_set_module_param_int(drm.fd, "enable_fbc", 1) @@ -1460,11 +1418,6 @@ static void setup_drrs(void) return; } - if (!is_drrs_supported()) { - igt_info("Can't test DRRS: Not supported.\n"); - return; - } - drrs.can_test = true; } @@ -1607,7 +1560,7 @@ static void do_status_assertions(int flags) } if (flags & ASSERT_DRRS_HIGH) { - if (!is_drrs_high()) { + if (drrs_is_low_refresh_rate(drm.debugfs, prim_mode_params.pipe)) { drrs_print_status(); igt_assert_f(false, "DRRS HIGH\n"); } @@ -1617,7 +1570,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 (drrs_is_active(drm.debugfs, prim_mode_params.pipe)) { drrs_print_status(); igt_assert_f(false, "DRRS INACTIVE\n"); } -- 2.35.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] test: kms_frontbuffer_tracking: Fix DRRS subtests 2022-04-05 19:12 ` [igt-dev] [PATCH i-g-t 2/2] test: kms_frontbuffer_tracking: Fix DRRS subtests José Roberto de Souza @ 2022-04-06 7:33 ` Petri Latvala 2022-04-13 19:46 ` Souza, Jose 0 siblings, 1 reply; 10+ messages in thread From: Petri Latvala @ 2022-04-06 7:33 UTC (permalink / raw) To: José Roberto de Souza; +Cc: igt-dev On Tue, Apr 05, 2022 at 12:12:15PM -0700, José Roberto de Souza wrote: > Due to recent refactors in i915, it completely changed > i915_drrs_status breaking all DRRS subtests, so here using > the newly added DRRS helpers to fix it. > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > --- > tests/i915/kms_frontbuffer_tracking.c | 57 +++------------------------ > 1 file changed, 5 insertions(+), 52 deletions(-) > > diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c > index 814ddb46ce..59ba6cfc11 100644 > --- a/tests/i915/kms_frontbuffer_tracking.c > +++ b/tests/i915/kms_frontbuffer_tracking.c > @@ -34,6 +34,7 @@ > #include "i915/gem_create.h" > #include "igt.h" > #include "igt_sysfs.h" > +#include "igt_drrs.h" > #include "igt_psr.h" > > IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and " > @@ -723,13 +724,6 @@ static void set_mode_for_params(struct modeset_params *params) > igt_display_commit(&drm.display); > } > > -static void __debugfs_read(const char *param, char *buf, int len) > -{ > - len = igt_debugfs_simple_read(drm.debugfs, param, buf, len); > - if (len < 0) > - igt_assert(len == -ENOENT || len == -ENODEV); > -} > - > static int __debugfs_write(const char *param, char *buf, int len) > { > return igt_sysfs_write(drm.debugfs, param, buf, len - 1); > @@ -790,47 +784,11 @@ static void drrs_set(unsigned int val) > igt_assert_f(ret == (sizeof(buf) - 1), "debugfs_write failed"); > } > > -static bool is_drrs_high(void) > -{ > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > - > - debugfs_read("i915_drrs_status", buf); > - return strstr(buf, "DRRS_HIGH_RR"); > -} > - > -static bool is_drrs_low(void) > -{ > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > - > - debugfs_read("i915_drrs_status", buf); > - return strstr(buf, "DRRS_LOW_RR"); > -} > - > -static bool is_drrs_supported(void) > -{ > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > - > - debugfs_read("i915_drrs_status", buf); > - return strcasestr(buf, "DRRS Supported: Yes"); > -} > - > -static bool is_drrs_inactive(void) > -{ > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > - > - debugfs_read("i915_drrs_status", buf); > - > - if (strstr(buf, "DRRS_State: ")) > - return false; > - > - return true; > -} > - > static void drrs_print_status(void) > { > char buf[MAX_DRRS_STATUS_BUF_LEN]; > > - debugfs_read("i915_drrs_status", buf); > + drrs_write_status(drm.debugfs, prim_mode_params.pipe, buf, sizeof(buf)); > igt_info("DRRS STATUS :\n%s\n", buf); > } > > @@ -951,7 +909,7 @@ static bool fbc_wait_until_enabled(void) > > static bool drrs_wait_until_rr_switch_to_low(void) > { > - return igt_wait(is_drrs_low(), 5000, 1); > + return igt_wait(drrs_is_low_refresh_rate(drm.debugfs, prim_mode_params.pipe), 5000, 1); > } > > #define fbc_enable() igt_set_module_param_int(drm.fd, "enable_fbc", 1) > @@ -1460,11 +1418,6 @@ static void setup_drrs(void) > return; > } > > - if (!is_drrs_supported()) { > - igt_info("Can't test DRRS: Not supported.\n"); > - return; > - } > - > drrs.can_test = true; > } > > @@ -1607,7 +1560,7 @@ static void do_status_assertions(int flags) > } > > if (flags & ASSERT_DRRS_HIGH) { > - if (!is_drrs_high()) { > + if (drrs_is_low_refresh_rate(drm.debugfs, prim_mode_params.pipe)) { > drrs_print_status(); > igt_assert_f(false, "DRRS HIGH\n"); > } > @@ -1617,7 +1570,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 (drrs_is_active(drm.debugfs, prim_mode_params.pipe)) { > drrs_print_status(); > igt_assert_f(false, "DRRS INACTIVE\n"); > } With how the DRRS state handling is moved to lib it's hard to read from the patch series what actually changed in the kernel. Does this now handle just the new semantics? Is the old one used in any stable kernels? -- Petri Latvala ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] test: kms_frontbuffer_tracking: Fix DRRS subtests 2022-04-06 7:33 ` Petri Latvala @ 2022-04-13 19:46 ` Souza, Jose 2022-04-14 9:42 ` Petri Latvala 0 siblings, 1 reply; 10+ messages in thread From: Souza, Jose @ 2022-04-13 19:46 UTC (permalink / raw) To: Latvala, Petri; +Cc: igt-dev@lists.freedesktop.org On Wed, 2022-04-06 at 10:33 +0300, Petri Latvala wrote: > On Tue, Apr 05, 2022 at 12:12:15PM -0700, José Roberto de Souza wrote: > > Due to recent refactors in i915, it completely changed > > i915_drrs_status breaking all DRRS subtests, so here using > > the newly added DRRS helpers to fix it. > > > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > --- > > tests/i915/kms_frontbuffer_tracking.c | 57 +++------------------------ > > 1 file changed, 5 insertions(+), 52 deletions(-) > > > > diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c > > index 814ddb46ce..59ba6cfc11 100644 > > --- a/tests/i915/kms_frontbuffer_tracking.c > > +++ b/tests/i915/kms_frontbuffer_tracking.c > > @@ -34,6 +34,7 @@ > > #include "i915/gem_create.h" > > #include "igt.h" > > #include "igt_sysfs.h" > > +#include "igt_drrs.h" > > #include "igt_psr.h" > > > > IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and " > > @@ -723,13 +724,6 @@ static void set_mode_for_params(struct modeset_params *params) > > igt_display_commit(&drm.display); > > } > > > > -static void __debugfs_read(const char *param, char *buf, int len) > > -{ > > - len = igt_debugfs_simple_read(drm.debugfs, param, buf, len); > > - if (len < 0) > > - igt_assert(len == -ENOENT || len == -ENODEV); > > -} > > - > > static int __debugfs_write(const char *param, char *buf, int len) > > { > > return igt_sysfs_write(drm.debugfs, param, buf, len - 1); > > @@ -790,47 +784,11 @@ static void drrs_set(unsigned int val) > > igt_assert_f(ret == (sizeof(buf) - 1), "debugfs_write failed"); > > } > > > > -static bool is_drrs_high(void) > > -{ > > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > > - > > - debugfs_read("i915_drrs_status", buf); > > - return strstr(buf, "DRRS_HIGH_RR"); > > -} > > - > > -static bool is_drrs_low(void) > > -{ > > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > > - > > - debugfs_read("i915_drrs_status", buf); > > - return strstr(buf, "DRRS_LOW_RR"); > > -} > > - > > -static bool is_drrs_supported(void) > > -{ > > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > > - > > - debugfs_read("i915_drrs_status", buf); > > - return strcasestr(buf, "DRRS Supported: Yes"); > > -} > > - > > -static bool is_drrs_inactive(void) > > -{ > > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > > - > > - debugfs_read("i915_drrs_status", buf); > > - > > - if (strstr(buf, "DRRS_State: ")) > > - return false; > > - > > - return true; > > -} > > - > > static void drrs_print_status(void) > > { > > char buf[MAX_DRRS_STATUS_BUF_LEN]; > > > > - debugfs_read("i915_drrs_status", buf); > > + drrs_write_status(drm.debugfs, prim_mode_params.pipe, buf, sizeof(buf)); > > igt_info("DRRS STATUS :\n%s\n", buf); > > } > > > > @@ -951,7 +909,7 @@ static bool fbc_wait_until_enabled(void) > > > > static bool drrs_wait_until_rr_switch_to_low(void) > > { > > - return igt_wait(is_drrs_low(), 5000, 1); > > + return igt_wait(drrs_is_low_refresh_rate(drm.debugfs, prim_mode_params.pipe), 5000, 1); > > } > > > > #define fbc_enable() igt_set_module_param_int(drm.fd, "enable_fbc", 1) > > @@ -1460,11 +1418,6 @@ static void setup_drrs(void) > > return; > > } > > > > - if (!is_drrs_supported()) { > > - igt_info("Can't test DRRS: Not supported.\n"); > > - return; > > - } > > - > > drrs.can_test = true; > > } > > > > @@ -1607,7 +1560,7 @@ static void do_status_assertions(int flags) > > } > > > > if (flags & ASSERT_DRRS_HIGH) { > > - if (!is_drrs_high()) { > > + if (drrs_is_low_refresh_rate(drm.debugfs, prim_mode_params.pipe)) { > > drrs_print_status(); > > igt_assert_f(false, "DRRS HIGH\n"); > > } > > @@ -1617,7 +1570,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 (drrs_is_active(drm.debugfs, prim_mode_params.pipe)) { > > drrs_print_status(); > > igt_assert_f(false, "DRRS INACTIVE\n"); > > } > > With how the DRRS state handling is moved to lib it's hard to read > from the patch series what actually changed in the kernel. This is now the output: gta@DUT4020-ADLP:~$ sudo more /sys/kernel/debug/dri/0/i915_drrs_status [CRTC:80:pipe A]: DRRS Enabled: no DRRS Active: no Busy_frontbuffer_bits: 0x0 DRRS refresh rate: high [CRTC:131:pipe B]: DRRS Enabled: no DRRS Active: no Busy_frontbuffer_bits: 0x0 DRRS refresh rate: high [CRTC:182:pipe C]: DRRS Enabled: no DRRS Active: no Busy_frontbuffer_bits: 0x0 DRRS refresh rate: high [CRTC:233:pipe D]: DRRS Enabled: no DRRS Active: no Busy_frontbuffer_bits: 0x0 DRRS refresh rate: high So completely different than the old one > > Does this now handle just the new semantics? Is the old one used in > any stable kernels? Semantics also have changed a bit, so stable kernels would be broken with the fix. What should be done here? > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] test: kms_frontbuffer_tracking: Fix DRRS subtests 2022-04-13 19:46 ` Souza, Jose @ 2022-04-14 9:42 ` Petri Latvala 0 siblings, 0 replies; 10+ messages in thread From: Petri Latvala @ 2022-04-14 9:42 UTC (permalink / raw) To: Souza, Jose; +Cc: igt-dev@lists.freedesktop.org On Wed, Apr 13, 2022 at 10:46:04PM +0300, Souza, Jose wrote: > On Wed, 2022-04-06 at 10:33 +0300, Petri Latvala wrote: > > On Tue, Apr 05, 2022 at 12:12:15PM -0700, José Roberto de Souza wrote: > > > Due to recent refactors in i915, it completely changed > > > i915_drrs_status breaking all DRRS subtests, so here using > > > the newly added DRRS helpers to fix it. > > > > > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > > --- > > > tests/i915/kms_frontbuffer_tracking.c | 57 +++------------------------ > > > 1 file changed, 5 insertions(+), 52 deletions(-) > > > > > > diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c > > > index 814ddb46ce..59ba6cfc11 100644 > > > --- a/tests/i915/kms_frontbuffer_tracking.c > > > +++ b/tests/i915/kms_frontbuffer_tracking.c > > > @@ -34,6 +34,7 @@ > > > #include "i915/gem_create.h" > > > #include "igt.h" > > > #include "igt_sysfs.h" > > > +#include "igt_drrs.h" > > > #include "igt_psr.h" > > > > > > IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and " > > > @@ -723,13 +724,6 @@ static void set_mode_for_params(struct modeset_params *params) > > > igt_display_commit(&drm.display); > > > } > > > > > > -static void __debugfs_read(const char *param, char *buf, int len) > > > -{ > > > - len = igt_debugfs_simple_read(drm.debugfs, param, buf, len); > > > - if (len < 0) > > > - igt_assert(len == -ENOENT || len == -ENODEV); > > > -} > > > - > > > static int __debugfs_write(const char *param, char *buf, int len) > > > { > > > return igt_sysfs_write(drm.debugfs, param, buf, len - 1); > > > @@ -790,47 +784,11 @@ static void drrs_set(unsigned int val) > > > igt_assert_f(ret == (sizeof(buf) - 1), "debugfs_write failed"); > > > } > > > > > > -static bool is_drrs_high(void) > > > -{ > > > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > > > - > > > - debugfs_read("i915_drrs_status", buf); > > > - return strstr(buf, "DRRS_HIGH_RR"); > > > -} > > > - > > > -static bool is_drrs_low(void) > > > -{ > > > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > > > - > > > - debugfs_read("i915_drrs_status", buf); > > > - return strstr(buf, "DRRS_LOW_RR"); > > > -} > > > - > > > -static bool is_drrs_supported(void) > > > -{ > > > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > > > - > > > - debugfs_read("i915_drrs_status", buf); > > > - return strcasestr(buf, "DRRS Supported: Yes"); > > > -} > > > - > > > -static bool is_drrs_inactive(void) > > > -{ > > > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > > > - > > > - debugfs_read("i915_drrs_status", buf); > > > - > > > - if (strstr(buf, "DRRS_State: ")) > > > - return false; > > > - > > > - return true; > > > -} > > > - > > > static void drrs_print_status(void) > > > { > > > char buf[MAX_DRRS_STATUS_BUF_LEN]; > > > > > > - debugfs_read("i915_drrs_status", buf); > > > + drrs_write_status(drm.debugfs, prim_mode_params.pipe, buf, sizeof(buf)); > > > igt_info("DRRS STATUS :\n%s\n", buf); > > > } > > > > > > @@ -951,7 +909,7 @@ static bool fbc_wait_until_enabled(void) > > > > > > static bool drrs_wait_until_rr_switch_to_low(void) > > > { > > > - return igt_wait(is_drrs_low(), 5000, 1); > > > + return igt_wait(drrs_is_low_refresh_rate(drm.debugfs, prim_mode_params.pipe), 5000, 1); > > > } > > > > > > #define fbc_enable() igt_set_module_param_int(drm.fd, "enable_fbc", 1) > > > @@ -1460,11 +1418,6 @@ static void setup_drrs(void) > > > return; > > > } > > > > > > - if (!is_drrs_supported()) { > > > - igt_info("Can't test DRRS: Not supported.\n"); > > > - return; > > > - } > > > - > > > drrs.can_test = true; > > > } > > > > > > @@ -1607,7 +1560,7 @@ static void do_status_assertions(int flags) > > > } > > > > > > if (flags & ASSERT_DRRS_HIGH) { > > > - if (!is_drrs_high()) { > > > + if (drrs_is_low_refresh_rate(drm.debugfs, prim_mode_params.pipe)) { > > > drrs_print_status(); > > > igt_assert_f(false, "DRRS HIGH\n"); > > > } > > > @@ -1617,7 +1570,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 (drrs_is_active(drm.debugfs, prim_mode_params.pipe)) { > > > drrs_print_status(); > > > igt_assert_f(false, "DRRS INACTIVE\n"); > > > } > > > > With how the DRRS state handling is moved to lib it's hard to read > > from the patch series what actually changed in the kernel. > > This is now the output: > > gta@DUT4020-ADLP:~$ sudo more /sys/kernel/debug/dri/0/i915_drrs_status > [CRTC:80:pipe A]: > DRRS Enabled: no > DRRS Active: no > Busy_frontbuffer_bits: 0x0 > DRRS refresh rate: high > [CRTC:131:pipe B]: > DRRS Enabled: no > DRRS Active: no > Busy_frontbuffer_bits: 0x0 > DRRS refresh rate: high > [CRTC:182:pipe C]: > DRRS Enabled: no > DRRS Active: no > Busy_frontbuffer_bits: 0x0 > DRRS refresh rate: high > [CRTC:233:pipe D]: > DRRS Enabled: no > DRRS Active: no > Busy_frontbuffer_bits: 0x0 > DRRS refresh rate: high > > So completely different than the old one > > > > > Does this now handle just the new semantics? Is the old one used in > > any stable kernels? > > Semantics also have changed a bit, so stable kernels would be broken with the fix. > > What should be done here? A fallback to parse the old format would be neat. If the DRRS stuff is moved to a different path (per-crtc), can the old path use old format (if exists) and new path use new format? -- Petri Latvala ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/2] lib: Add DRRS helpers 2022-04-05 19:12 [igt-dev] [PATCH i-g-t 1/2] lib: Add DRRS helpers José Roberto de Souza 2022-04-05 19:12 ` [igt-dev] [PATCH i-g-t 2/2] test: kms_frontbuffer_tracking: Fix DRRS subtests José Roberto de Souza @ 2022-04-05 20:17 ` Patchwork 2022-04-05 20:42 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork ` (2 subsequent siblings) 4 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2022-04-05 20:17 UTC (permalink / raw) To: José Roberto de Souza; +Cc: igt-dev == Series Details == Series: series starting with [i-g-t,1/2] lib: Add DRRS helpers URL : https://patchwork.freedesktop.org/series/102219/ State : warning == Summary == Pipeline status: FAILED. see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/551234 for the overview. test:ninja-test-armhf has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/20747485): Ok: 22 Expected Fail: 3 Fail: 288 Unexpected Pass: 0 Skipped: 0 Timeout: 0 Full log written to /builds/gfx-ci/igt-ci-tags/build/meson-logs/testlog.txt section_end:1649189827:step_script section_start:1649189827:upload_artifacts_on_failure Uploading artifacts for failed job Uploading artifacts... build: found 1724 matching files and directories Uploading artifacts as "archive" to coordinator... 201 Created id=20747485 responseStatus=201 Created token=PGuA9xDD section_end:1649189836:upload_artifacts_on_failure section_start:1649189836:cleanup_file_variables Cleaning up project directory and file based variables section_end:1649189837:cleanup_file_variables ERROR: Job failed: exit code 1 == Logs == For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/551234 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] lib: Add DRRS helpers 2022-04-05 19:12 [igt-dev] [PATCH i-g-t 1/2] lib: Add DRRS helpers José Roberto de Souza 2022-04-05 19:12 ` [igt-dev] [PATCH i-g-t 2/2] test: kms_frontbuffer_tracking: Fix DRRS subtests José Roberto de Souza 2022-04-05 20:17 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/2] lib: Add DRRS helpers Patchwork @ 2022-04-05 20:42 ` Patchwork 2022-04-06 2:03 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2022-04-13 19:59 ` [igt-dev] [PATCH i-g-t 1/2] " Ville Syrjälä 4 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2022-04-05 20:42 UTC (permalink / raw) To: José Roberto de Souza; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 2571 bytes --] == Series Details == Series: series starting with [i-g-t,1/2] lib: Add DRRS helpers URL : https://patchwork.freedesktop.org/series/102219/ State : success == Summary == CI Bug Log - changes from IGT_6411 -> IGTPW_6877 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/index.html Participating hosts (37 -> 35) ------------------------------ Missing (2): fi-bsw-cyan fi-bdw-samus Known issues ------------ Here are the changes found in IGTPW_6877 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_suspend@basic-s3@smem: - fi-rkl-11600: [PASS][1] -> [INCOMPLETE][2] ([i915#5127]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/fi-rkl-11600/igt@gem_exec_suspend@basic-s3@smem.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/fi-rkl-11600/igt@gem_exec_suspend@basic-s3@smem.html * igt@kms_flip@basic-flip-vs-dpms@a-edp1: - fi-tgl-u2: [PASS][3] -> [DMESG-WARN][4] ([i915#402]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/fi-tgl-u2/igt@kms_flip@basic-flip-vs-dpms@a-edp1.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/fi-tgl-u2/igt@kms_flip@basic-flip-vs-dpms@a-edp1.html #### Possible fixes #### * igt@kms_flip@basic-flip-vs-modeset@a-edp1: - fi-tgl-u2: [DMESG-WARN][5] ([i915#402]) -> [PASS][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/fi-tgl-u2/igt@kms_flip@basic-flip-vs-modeset@a-edp1.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/fi-tgl-u2/igt@kms_flip@basic-flip-vs-modeset@a-edp1.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402 [i915#5127]: https://gitlab.freedesktop.org/drm/intel/issues/5127 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_6411 -> IGTPW_6877 CI-20190529: 20190529 CI_DRM_11458: 7b4967c734a7c99ff69154d062a071181021e49d @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_6877: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/index.html IGT_6411: 987678ecf2d6930981af93f719e4575c91886959 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/index.html [-- Attachment #2: Type: text/html, Size: 3231 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] lib: Add DRRS helpers 2022-04-05 19:12 [igt-dev] [PATCH i-g-t 1/2] lib: Add DRRS helpers José Roberto de Souza ` (2 preceding siblings ...) 2022-04-05 20:42 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork @ 2022-04-06 2:03 ` Patchwork 2022-04-13 19:59 ` [igt-dev] [PATCH i-g-t 1/2] " Ville Syrjälä 4 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2022-04-06 2:03 UTC (permalink / raw) To: José Roberto de Souza; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 30273 bytes --] == Series Details == Series: series starting with [i-g-t,1/2] lib: Add DRRS helpers URL : https://patchwork.freedesktop.org/series/102219/ State : success == Summary == CI Bug Log - changes from IGT_6411_full -> IGTPW_6877_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/index.html Participating hosts (7 -> 6) ------------------------------ Missing (1): shard-skl Known issues ------------ Here are the changes found in IGTPW_6877_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@feature_discovery@display-3x: - shard-iclb: NOTRUN -> [SKIP][1] ([i915#1839]) +2 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb3/igt@feature_discovery@display-3x.html * igt@gem_ccs@block-copy-inplace: - shard-iclb: NOTRUN -> [SKIP][2] ([i915#5327]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb4/igt@gem_ccs@block-copy-inplace.html - shard-tglb: NOTRUN -> [SKIP][3] ([i915#3555] / [i915#5325]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb7/igt@gem_ccs@block-copy-inplace.html * igt@gem_create@create-massive: - shard-kbl: NOTRUN -> [DMESG-WARN][4] ([i915#4991]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl3/igt@gem_create@create-massive.html - shard-apl: NOTRUN -> [DMESG-WARN][5] ([i915#4991]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl2/igt@gem_create@create-massive.html * igt@gem_ctx_persistence@engines-cleanup: - shard-snb: NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#1099]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-snb4/igt@gem_ctx_persistence@engines-cleanup.html * igt@gem_ctx_sseu@mmap-args: - shard-tglb: NOTRUN -> [SKIP][7] ([i915#280]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb6/igt@gem_ctx_sseu@mmap-args.html * igt@gem_exec_balancer@parallel-balancer: - shard-iclb: [PASS][8] -> [SKIP][9] ([i915#4525]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-iclb4/igt@gem_exec_balancer@parallel-balancer.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb8/igt@gem_exec_balancer@parallel-balancer.html * igt@gem_exec_balancer@parallel-ordering: - shard-iclb: NOTRUN -> [SKIP][10] ([i915#4525]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb8/igt@gem_exec_balancer@parallel-ordering.html - shard-tglb: NOTRUN -> [DMESG-FAIL][11] ([i915#5076]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb2/igt@gem_exec_balancer@parallel-ordering.html - shard-kbl: NOTRUN -> [DMESG-FAIL][12] ([i915#5076]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl7/igt@gem_exec_balancer@parallel-ordering.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-iclb: NOTRUN -> [FAIL][13] ([i915#2842]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb7/igt@gem_exec_fair@basic-none-share@rcs0.html - shard-glk: NOTRUN -> [FAIL][14] ([i915#2842]) +1 similar issue [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk6/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-none@vecs0: - shard-apl: [PASS][15] -> [FAIL][16] ([i915#2842]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-apl6/igt@gem_exec_fair@basic-none@vecs0.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl1/igt@gem_exec_fair@basic-none@vecs0.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-tglb: [PASS][17] -> [FAIL][18] ([i915#2842]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-tglb6/igt@gem_exec_fair@basic-pace-share@rcs0.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb3/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_flush@basic-batch-kernel-default-cmd: - shard-iclb: NOTRUN -> [SKIP][19] ([fdo#109313]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb1/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html - shard-tglb: NOTRUN -> [SKIP][20] ([fdo#109313]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb7/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html * igt@gem_exec_params@secure-non-master: - shard-tglb: NOTRUN -> [SKIP][21] ([fdo#112283]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb6/igt@gem_exec_params@secure-non-master.html - shard-iclb: NOTRUN -> [SKIP][22] ([fdo#112283]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb7/igt@gem_exec_params@secure-non-master.html * igt@gem_huc_copy@huc-copy: - shard-apl: NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#2190]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl6/igt@gem_huc_copy@huc-copy.html - shard-glk: NOTRUN -> [SKIP][24] ([fdo#109271] / [i915#2190]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk7/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@parallel-random-verify: - shard-apl: NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#4613]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl4/igt@gem_lmem_swapping@parallel-random-verify.html * igt@gem_lmem_swapping@random: - shard-iclb: NOTRUN -> [SKIP][26] ([i915#4613]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb8/igt@gem_lmem_swapping@random.html * igt@gem_pxp@create-protected-buffer: - shard-iclb: NOTRUN -> [SKIP][27] ([i915#4270]) +1 similar issue [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb4/igt@gem_pxp@create-protected-buffer.html * igt@gem_pxp@verify-pxp-execution-after-suspend-resume: - shard-tglb: NOTRUN -> [SKIP][28] ([i915#4270]) +1 similar issue [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb5/igt@gem_pxp@verify-pxp-execution-after-suspend-resume.html * igt@gem_render_copy@y-tiled-to-vebox-linear: - shard-iclb: NOTRUN -> [SKIP][29] ([i915#768]) +3 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb4/igt@gem_render_copy@y-tiled-to-vebox-linear.html * igt@gem_userptr_blits@dmabuf-sync: - shard-kbl: NOTRUN -> [SKIP][30] ([fdo#109271] / [i915#3323]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl4/igt@gem_userptr_blits@dmabuf-sync.html - shard-iclb: NOTRUN -> [SKIP][31] ([i915#3323]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb3/igt@gem_userptr_blits@dmabuf-sync.html - shard-tglb: NOTRUN -> [SKIP][32] ([i915#3323]) [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb3/igt@gem_userptr_blits@dmabuf-sync.html * igt@gem_userptr_blits@unsync-unmap-cycles: - shard-tglb: NOTRUN -> [SKIP][33] ([i915#3297]) +2 similar issues [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb1/igt@gem_userptr_blits@unsync-unmap-cycles.html - shard-iclb: NOTRUN -> [SKIP][34] ([i915#3297]) +2 similar issues [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb5/igt@gem_userptr_blits@unsync-unmap-cycles.html * igt@gem_userptr_blits@vma-merge: - shard-snb: NOTRUN -> [FAIL][35] ([i915#2724]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-snb4/igt@gem_userptr_blits@vma-merge.html - shard-apl: NOTRUN -> [FAIL][36] ([i915#3318]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl3/igt@gem_userptr_blits@vma-merge.html - shard-glk: NOTRUN -> [FAIL][37] ([i915#3318]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk5/igt@gem_userptr_blits@vma-merge.html * igt@gen9_exec_parse@batch-invalid-length: - shard-iclb: NOTRUN -> [SKIP][38] ([i915#2856]) +3 similar issues [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb3/igt@gen9_exec_parse@batch-invalid-length.html * igt@gen9_exec_parse@bb-secure: - shard-tglb: NOTRUN -> [SKIP][39] ([i915#2527] / [i915#2856]) +2 similar issues [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb3/igt@gen9_exec_parse@bb-secure.html * igt@i915_pm_dc@dc9-dpms: - shard-iclb: [PASS][40] -> [SKIP][41] ([i915#4281]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-iclb1/igt@i915_pm_dc@dc9-dpms.html [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp: - shard-kbl: NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#1937]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl6/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html - shard-apl: NOTRUN -> [SKIP][43] ([fdo#109271] / [i915#1937]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl2/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a: - shard-glk: NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#1937]) [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk1/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html * igt@i915_pm_rc6_residency@media-rc6-accuracy: - shard-tglb: NOTRUN -> [SKIP][45] ([fdo#109289] / [fdo#111719]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb7/igt@i915_pm_rc6_residency@media-rc6-accuracy.html - shard-iclb: NOTRUN -> [SKIP][46] ([fdo#109289]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb1/igt@i915_pm_rc6_residency@media-rc6-accuracy.html * igt@i915_pm_rpm@fences: - shard-iclb: [PASS][47] -> [SKIP][48] ([i915#579]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-iclb5/igt@i915_pm_rpm@fences.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb5/igt@i915_pm_rpm@fences.html * igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait: - shard-tglb: NOTRUN -> [SKIP][49] ([fdo#111644] / [i915#1397] / [i915#2411]) [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb5/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html - shard-iclb: NOTRUN -> [SKIP][50] ([fdo#110892]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb6/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html * igt@i915_selftest@live@gt_lrc: - shard-iclb: [PASS][51] -> [DMESG-WARN][52] ([i915#2867]) +6 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-iclb4/igt@i915_selftest@live@gt_lrc.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb5/igt@i915_selftest@live@gt_lrc.html * igt@kms_addfb_basic@invalid-smem-bo-on-discrete: - shard-tglb: NOTRUN -> [SKIP][53] ([i915#3826]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb6/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html - shard-iclb: NOTRUN -> [SKIP][54] ([i915#3826]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb7/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html * igt@kms_big_fb@4-tiled-64bpp-rotate-90: - shard-iclb: NOTRUN -> [SKIP][55] ([i915#5286]) +4 similar issues [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb5/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0: - shard-tglb: NOTRUN -> [SKIP][56] ([i915#5286]) +6 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0.html * igt@kms_big_fb@linear-32bpp-rotate-180: - shard-glk: [PASS][57] -> [DMESG-WARN][58] ([i915#118]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-glk6/igt@kms_big_fb@linear-32bpp-rotate-180.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk5/igt@kms_big_fb@linear-32bpp-rotate-180.html * igt@kms_big_fb@x-tiled-8bpp-rotate-90: - shard-iclb: NOTRUN -> [SKIP][59] ([fdo#110725] / [fdo#111614]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb8/igt@kms_big_fb@x-tiled-8bpp-rotate-90.html * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip: - shard-apl: NOTRUN -> [SKIP][60] ([fdo#109271] / [i915#3777]) +1 similar issue [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl4/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip.html * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip: - shard-kbl: NOTRUN -> [SKIP][61] ([fdo#109271] / [i915#3777]) +1 similar issue [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl4/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html * igt@kms_big_fb@yf-tiled-addfb-size-overflow: - shard-tglb: NOTRUN -> [SKIP][62] ([fdo#111615]) +6 similar issues [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb5/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip: - shard-glk: NOTRUN -> [SKIP][63] ([fdo#109271] / [i915#3777]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk8/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0: - shard-apl: NOTRUN -> [SKIP][64] ([fdo#109271]) +192 similar issues [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl7/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip: - shard-iclb: NOTRUN -> [SKIP][65] ([fdo#110723]) +1 similar issue [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb4/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc: - shard-iclb: NOTRUN -> [SKIP][66] ([fdo#109278] / [i915#3886]) +8 similar issues [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb1/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs: - shard-tglb: NOTRUN -> [SKIP][67] ([i915#3689] / [i915#3886]) +3 similar issues [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb6/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc: - shard-kbl: NOTRUN -> [SKIP][68] ([fdo#109271] / [i915#3886]) +9 similar issues [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl3/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs: - shard-apl: NOTRUN -> [SKIP][69] ([fdo#109271] / [i915#3886]) +8 similar issues [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl6/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs.html - shard-glk: NOTRUN -> [SKIP][70] ([fdo#109271] / [i915#3886]) +5 similar issues [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk3/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-missing-ccs-buffer-yf_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][71] ([fdo#111615] / [i915#3689]) +3 similar issues [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb5/igt@kms_ccs@pipe-c-missing-ccs-buffer-yf_tiled_ccs.html * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][72] ([i915#3689]) +9 similar issues [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb1/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_ccs.html * igt@kms_cdclk@plane-scaling: - shard-iclb: NOTRUN -> [SKIP][73] ([i915#3742]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb3/igt@kms_cdclk@plane-scaling.html - shard-tglb: NOTRUN -> [SKIP][74] ([i915#3742]) [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb3/igt@kms_cdclk@plane-scaling.html * igt@kms_chamelium@dp-mode-timings: - shard-apl: NOTRUN -> [SKIP][75] ([fdo#109271] / [fdo#111827]) +9 similar issues [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl2/igt@kms_chamelium@dp-mode-timings.html * igt@kms_chamelium@hdmi-hpd-with-enabled-mode: - shard-kbl: NOTRUN -> [SKIP][76] ([fdo#109271] / [fdo#111827]) +11 similar issues [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl7/igt@kms_chamelium@hdmi-hpd-with-enabled-mode.html * igt@kms_chamelium@vga-hpd-enable-disable-mode: - shard-glk: NOTRUN -> [SKIP][77] ([fdo#109271] / [fdo#111827]) +5 similar issues [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk6/igt@kms_chamelium@vga-hpd-enable-disable-mode.html * igt@kms_color@pipe-d-ctm-0-25: - shard-iclb: NOTRUN -> [SKIP][78] ([fdo#109278] / [i915#1149]) +2 similar issues [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb8/igt@kms_color@pipe-d-ctm-0-25.html * igt@kms_color_chamelium@pipe-b-ctm-0-5: - shard-tglb: NOTRUN -> [SKIP][79] ([fdo#109284] / [fdo#111827]) +13 similar issues [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb5/igt@kms_color_chamelium@pipe-b-ctm-0-5.html * igt@kms_color_chamelium@pipe-b-ctm-red-to-blue: - shard-iclb: NOTRUN -> [SKIP][80] ([fdo#109284] / [fdo#111827]) +10 similar issues [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb3/igt@kms_color_chamelium@pipe-b-ctm-red-to-blue.html * igt@kms_color_chamelium@pipe-d-ctm-red-to-blue: - shard-snb: NOTRUN -> [SKIP][81] ([fdo#109271] / [fdo#111827]) +6 similar issues [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-snb7/igt@kms_color_chamelium@pipe-d-ctm-red-to-blue.html - shard-iclb: NOTRUN -> [SKIP][82] ([fdo#109278] / [fdo#109284] / [fdo#111827]) [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb6/igt@kms_color_chamelium@pipe-d-ctm-red-to-blue.html * igt@kms_content_protection@legacy: - shard-iclb: NOTRUN -> [SKIP][83] ([fdo#109300] / [fdo#111066]) [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb3/igt@kms_content_protection@legacy.html - shard-kbl: NOTRUN -> [TIMEOUT][84] ([i915#1319]) [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl4/igt@kms_content_protection@legacy.html - shard-tglb: NOTRUN -> [SKIP][85] ([i915#1063]) [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb3/igt@kms_content_protection@legacy.html * igt@kms_cursor_crc@pipe-a-cursor-256x85-sliding: - shard-snb: NOTRUN -> [SKIP][86] ([fdo#109271]) +103 similar issues [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-snb5/igt@kms_cursor_crc@pipe-a-cursor-256x85-sliding.html * igt@kms_cursor_crc@pipe-a-cursor-512x512-sliding: - shard-iclb: NOTRUN -> [SKIP][87] ([fdo#109278] / [fdo#109279]) +3 similar issues [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb8/igt@kms_cursor_crc@pipe-a-cursor-512x512-sliding.html * igt@kms_cursor_crc@pipe-b-cursor-512x170-onscreen: - shard-tglb: NOTRUN -> [SKIP][88] ([fdo#109279] / [i915#3359]) +3 similar issues [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb3/igt@kms_cursor_crc@pipe-b-cursor-512x170-onscreen.html * igt@kms_cursor_crc@pipe-c-cursor-32x32-random: - shard-tglb: NOTRUN -> [SKIP][89] ([i915#3319]) +3 similar issues [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb3/igt@kms_cursor_crc@pipe-c-cursor-32x32-random.html * igt@kms_cursor_crc@pipe-c-cursor-suspend: - shard-apl: [PASS][90] -> [DMESG-WARN][91] ([i915#180]) +1 similar issue [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-apl8/igt@kms_cursor_crc@pipe-c-cursor-suspend.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl1/igt@kms_cursor_crc@pipe-c-cursor-suspend.html * igt@kms_cursor_crc@pipe-d-cursor-max-size-rapid-movement: - shard-tglb: NOTRUN -> [SKIP][92] ([i915#3359]) +9 similar issues [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb2/igt@kms_cursor_crc@pipe-d-cursor-max-size-rapid-movement.html * igt@kms_cursor_edge_walk@pipe-d-256x256-left-edge: - shard-iclb: NOTRUN -> [SKIP][93] ([fdo#109278]) +47 similar issues [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb8/igt@kms_cursor_edge_walk@pipe-d-256x256-left-edge.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy: - shard-tglb: NOTRUN -> [SKIP][94] ([fdo#109274] / [fdo#111825]) +11 similar issues [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb5/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy: - shard-glk: [PASS][95] -> [FAIL][96] ([i915#72]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-glk8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk9/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size: - shard-iclb: NOTRUN -> [SKIP][97] ([fdo#109274] / [fdo#109278]) +4 similar issues [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb7/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-glk: [PASS][98] -> [FAIL][99] ([i915#2346] / [i915#533]) [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@pipe-d-single-bo: - shard-kbl: NOTRUN -> [SKIP][100] ([fdo#109271] / [i915#533]) +1 similar issue [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl4/igt@kms_cursor_legacy@pipe-d-single-bo.html * igt@kms_dither@fb-8bpc-vs-panel-8bpc@edp-1-pipe-a: - shard-tglb: NOTRUN -> [SKIP][101] ([i915#3788]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb7/igt@kms_dither@fb-8bpc-vs-panel-8bpc@edp-1-pipe-a.html * igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-4tiled: - shard-tglb: NOTRUN -> [SKIP][102] ([i915#5287]) +5 similar issues [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb3/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-4tiled.html * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-gtt-4tiled: - shard-iclb: NOTRUN -> [SKIP][103] ([i915#5287]) +3 similar issues [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb3/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-gtt-4tiled.html * igt@kms_dsc@xrgb8888-dsc-compression: - shard-tglb: NOTRUN -> [SKIP][104] ([i915#3828]) [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb7/igt@kms_dsc@xrgb8888-dsc-compression.html * igt@kms_flip@2x-flip-vs-suspend: - shard-iclb: NOTRUN -> [SKIP][105] ([fdo#109274]) +6 similar issues [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb7/igt@kms_flip@2x-flip-vs-suspend.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling: - shard-iclb: [PASS][106] -> [SKIP][107] ([i915#3701]) [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-iclb8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html * igt@kms_force_connector_basic@force-load-detect: - shard-tglb: NOTRUN -> [SKIP][108] ([fdo#109285]) [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb1/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt: - shard-iclb: NOTRUN -> [SKIP][109] ([fdo#109280]) +26 similar issues [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt: - shard-tglb: NOTRUN -> [SKIP][110] ([fdo#109280] / [fdo#111825]) +37 similar issues [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt.html * igt@kms_hdr@bpc-switch-suspend@bpc-switch-suspend-dp-1-pipe-a: - shard-kbl: [PASS][111] -> [FAIL][112] ([i915#1188]) [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6411/shard-kbl3/igt@kms_hdr@bpc-switch-suspend@bpc-switch-suspend-dp-1-pipe-a.html [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl1/igt@kms_hdr@bpc-switch-suspend@bpc-switch-suspend-dp-1-pipe-a.html * igt@kms_hdr@static-toggle-suspend: - shard-tglb: NOTRUN -> [SKIP][113] ([i915#3555]) +1 similar issue [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb2/igt@kms_hdr@static-toggle-suspend.html * igt@kms_multipipe_modeset@basic-max-pipe-crc-check: - shard-tglb: NOTRUN -> [SKIP][114] ([i915#1839]) +2 similar issues [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb1/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-d-frame-sequence: - shard-apl: NOTRUN -> [SKIP][115] ([fdo#109271] / [i915#533]) +1 similar issue [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl6/igt@kms_pipe_crc_basic@nonblocking-crc-pipe-d-frame-sequence.html - shard-glk: NOTRUN -> [SKIP][116] ([fdo#109271] / [i915#533]) [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk2/igt@kms_pipe_crc_basic@nonblocking-crc-pipe-d-frame-sequence.html * igt@kms_plane_alpha_blend@pipe-a-alpha-7efc: - shard-kbl: NOTRUN -> [FAIL][117] ([fdo#108145] / [i915#265]) +1 similar issue [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl1/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc: - shard-apl: NOTRUN -> [FAIL][118] ([fdo#108145] / [i915#265]) [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl8/igt@kms_plane_alpha_blend@pipe-b-alpha-7efc.html * igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb: - shard-apl: NOTRUN -> [FAIL][119] ([i915#265]) [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-apl7/igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb.html * igt@kms_plane_alpha_blend@pipe-d-alpha-opaque-fb: - shard-glk: NOTRUN -> [SKIP][120] ([fdo#109271]) +77 similar issues [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-glk6/igt@kms_plane_alpha_blend@pipe-d-alpha-opaque-fb.html * igt@kms_plane_lowres@pipe-a-tiling-y: - shard-iclb: NOTRUN -> [SKIP][121] ([i915#3536]) +1 similar issue [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb1/igt@kms_plane_lowres@pipe-a-tiling-y.html * igt@kms_plane_lowres@pipe-d-tiling-4: - shard-tglb: NOTRUN -> [SKIP][122] ([i915#5288]) +1 similar issue [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb1/igt@kms_plane_lowres@pipe-d-tiling-4.html * igt@kms_plane_lowres@pipe-d-tiling-y: - shard-tglb: NOTRUN -> [SKIP][123] ([i915#3536]) +3 similar issues [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb7/igt@kms_plane_lowres@pipe-d-tiling-y.html * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-a-edp-1-downscale-with-rotation: - shard-iclb: NOTRUN -> [SKIP][124] ([i915#5176]) +11 similar issues [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb8/igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-a-edp-1-downscale-with-rotation.html * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-a-dp-1-downscale-with-rotation: - shard-kbl: NOTRUN -> [SKIP][125] ([fdo#109271]) +193 similar issues [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-kbl4/igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-a-dp-1-downscale-with-rotation.html * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-b-edp-1-downscale-with-rotation: - shard-tglb: NOTRUN -> [SKIP][126] ([i915#5176]) +7 similar issues [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-tglb3/igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-b-edp-1-downscale-with-rotation.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-a-edp-1-planes-upscale-downscale: - shard-iclb: NOTRUN -> [SKIP][127] ([i915#5235]) +2 similar issues [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/shard-iclb1/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-a-edp-1-planes-upscale-downscale.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1-planes-upscale-downscale: - s == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6877/index.html [-- Attachment #2: Type: text/html, Size: 33940 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] lib: Add DRRS helpers 2022-04-05 19:12 [igt-dev] [PATCH i-g-t 1/2] lib: Add DRRS helpers José Roberto de Souza ` (3 preceding siblings ...) 2022-04-06 2:03 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork @ 2022-04-13 19:59 ` Ville Syrjälä 2022-04-13 21:05 ` Souza, Jose 4 siblings, 1 reply; 10+ messages in thread From: Ville Syrjälä @ 2022-04-13 19:59 UTC (permalink / raw) To: José Roberto de Souza; +Cc: igt-dev On Tue, Apr 05, 2022 at 12:12:14PM -0700, José Roberto de Souza wrote: > Due to recent refactors in i915, it completely changed > i915_drrs_status breaking all DRRS tests in kms_frontbuffer_tracking > so here adding DRRS helpers to a separate file so it can be used by > kms_frontbuffer_tracking and any future tests. > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > --- > lib/igt_drrs.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++ > lib/igt_drrs.h | 31 ++++++++++ > lib/meson.build | 1 + > 3 files changed, 183 insertions(+) > create mode 100644 lib/igt_drrs.c > create mode 100644 lib/igt_drrs.h > > diff --git a/lib/igt_drrs.c b/lib/igt_drrs.c > new file mode 100644 > index 0000000000..8c424c32e3 > --- /dev/null > +++ b/lib/igt_drrs.c > @@ -0,0 +1,151 @@ > +/* > + * Copyright © 2022 Intel Corporation > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice (including the next > + * paragraph) shall be included in all copies or substantial portions of the > + * Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS > + * IN THE SOFTWARE. > + */ > + > +#include "drmtest.h" > +#include "igt_drrs.h" > + > +#define DRRS_ENABLE_STR "DRRS Enabled: " > +#define DRRS_ACTIVE_STR "DRRS Active: " > +#define DRRS_REFRESH_RATE_STR "DRRS refresh rate: " > + > +struct drrs_status { > + bool enabled; > + bool active; > + bool low_refresh_rate; > +}; > + > +static bool is_yes_or_no(char *ch) > +{ > + return strncmp(ch, "yes", 3) == 0; > +} > + > +static const char *yes_or_no(bool r) > +{ > + return r ? "yes" : "no"; > +} > + > +static bool parse(int debugfs_fd, enum pipe pipe, struct drrs_status *status) > +{ > + char buf[1024], search[16], *ch; > + int ret; > + > + ret = igt_debugfs_simple_read(debugfs_fd, "i915_drrs_status", buf, > + sizeof(buf)); > + if (ret < 0) { > + igt_info("Could not read i915_drrs_status: %s\n", > + strerror(-ret)); > + return false; > + } > + > + snprintf(search, sizeof(search), ":pipe %s]:", kmstest_pipe_name(pipe)); We should probably just move DRRS over to per-crtc/connector debugfs files. Would avoid nasty stuff like this. > + ch = strstr(buf, search); > + if (!ch) > + return false; > + > + ch = strstr(buf, DRRS_ENABLE_STR); > + if (!ch) > + return false; > + ch += sizeof(DRRS_ENABLE_STR); > + status->enabled = is_yes_or_no(ch); > + > + ch = strstr(buf, DRRS_ACTIVE_STR); > + if (!ch) > + return false; > + ch += sizeof(DRRS_ACTIVE_STR); > + status->active = is_yes_or_no(ch); > + > + ch = strstr(buf, DRRS_REFRESH_RATE_STR); > + if (!ch) > + return false; > + ch += sizeof(DRRS_REFRESH_RATE_STR); > + status->low_refresh_rate = strncmp(ch, "low", 3) == 0; > + > + return true; > +} > + > +bool drrs_is_enabled(int debugfs_fd, enum pipe pipe) > +{ > + struct drrs_status status; > + bool ret; > + > + ret = parse(debugfs_fd, pipe, &status); > + if (!ret) > + return false; > + > + return status.enabled; > +} > + > +bool drrs_is_active(int debugfs_fd, enum pipe pipe) > +{ > + struct drrs_status status; > + bool ret; > + > + ret = parse(debugfs_fd, pipe, &status); > + if (!ret) > + return false; > + > + return status.active; > +} > + > +bool drrs_is_low_refresh_rate(int debugfs_fd, enum pipe pipe) > +{ > + struct drrs_status status; > + bool ret; > + > + ret = parse(debugfs_fd, pipe, &status); > + if (!ret) > + return false; > + > + return status.low_refresh_rate; > +} > + > +bool drrs_write_status(int debugfs_fd, enum pipe pipe, char *buf, int len) > +{ > + struct drrs_status status; > + int ret, used = 0; > + > + ret = parse(debugfs_fd, pipe, &status); > + if (!ret) > + return false; > + > + ret = snprintf(buf, len - used, DRRS_ENABLE_STR "%s\n", > + yes_or_no(status.enabled)); > + if (ret < 0 || ret >= (len - used)) > + return false; > + used += ret; > + buf += ret; > + > + ret = snprintf(buf, len - used, DRRS_ACTIVE_STR "%s\n", > + yes_or_no(status.active)); > + if (ret < 0 || ret >= (len - used)) > + return false; > + used += ret; > + buf += ret; > + > + ret = snprintf(buf, len - used, DRRS_REFRESH_RATE_STR "%s\n", > + status.low_refresh_rate ? "low" : "high"); > + if (ret < 0 || ret >= (len - used)) > + return false; > + > + return true; > +} > \ No newline at end of file > diff --git a/lib/igt_drrs.h b/lib/igt_drrs.h > new file mode 100644 > index 0000000000..ff79fb20fb > --- /dev/null > +++ b/lib/igt_drrs.h > @@ -0,0 +1,31 @@ > +/* > + * Copyright © 2022 Intel Corporation > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice (including the next > + * paragraph) shall be included in all copies or substantial portions of the > + * Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS > + * IN THE SOFTWARE. > + */ > + > +#pragma once > + > +#include "igt_kms.h" > + > +bool drrs_is_enabled(int debugfs_fd, enum pipe pipe); > +bool drrs_is_active(int debugfs_fd, enum pipe pipe); > +bool drrs_is_low_refresh_rate(int debugfs_fd, enum pipe pipe); > +bool drrs_write_status(int debugfs_fd, enum pipe pipe, char *buf, int len); > diff --git a/lib/meson.build b/lib/meson.build > index ccee7a5965..3176b27813 100644 > --- a/lib/meson.build > +++ b/lib/meson.build > @@ -77,6 +77,7 @@ lib_sources = [ > 'igt_dummyload.c', > 'igt_store.c', > 'uwildmat/uwildmat.c', > + 'igt_drrs.c', > 'igt_kmod.c', > 'igt_panfrost.c', > 'igt_v3d.c', > -- > 2.35.1 -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] lib: Add DRRS helpers 2022-04-13 19:59 ` [igt-dev] [PATCH i-g-t 1/2] " Ville Syrjälä @ 2022-04-13 21:05 ` Souza, Jose 0 siblings, 0 replies; 10+ messages in thread From: Souza, Jose @ 2022-04-13 21:05 UTC (permalink / raw) To: ville.syrjala@linux.intel.com; +Cc: igt-dev@lists.freedesktop.org On Wed, 2022-04-13 at 22:59 +0300, Ville Syrjälä wrote: > On Tue, Apr 05, 2022 at 12:12:14PM -0700, José Roberto de Souza wrote: > > Due to recent refactors in i915, it completely changed > > i915_drrs_status breaking all DRRS tests in kms_frontbuffer_tracking > > so here adding DRRS helpers to a separate file so it can be used by > > kms_frontbuffer_tracking and any future tests. > > > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > --- > > lib/igt_drrs.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++ > > lib/igt_drrs.h | 31 ++++++++++ > > lib/meson.build | 1 + > > 3 files changed, 183 insertions(+) > > create mode 100644 lib/igt_drrs.c > > create mode 100644 lib/igt_drrs.h > > > > diff --git a/lib/igt_drrs.c b/lib/igt_drrs.c > > new file mode 100644 > > index 0000000000..8c424c32e3 > > --- /dev/null > > +++ b/lib/igt_drrs.c > > @@ -0,0 +1,151 @@ > > +/* > > + * Copyright © 2022 Intel Corporation > > + * > > + * Permission is hereby granted, free of charge, to any person obtaining a > > + * copy of this software and associated documentation files (the "Software"), > > + * to deal in the Software without restriction, including without limitation > > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > > + * and/or sell copies of the Software, and to permit persons to whom the > > + * Software is furnished to do so, subject to the following conditions: > > + * > > + * The above copyright notice and this permission notice (including the next > > + * paragraph) shall be included in all copies or substantial portions of the > > + * Software. > > + * > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS > > + * IN THE SOFTWARE. > > + */ > > + > > +#include "drmtest.h" > > +#include "igt_drrs.h" > > + > > +#define DRRS_ENABLE_STR "DRRS Enabled: " > > +#define DRRS_ACTIVE_STR "DRRS Active: " > > +#define DRRS_REFRESH_RATE_STR "DRRS refresh rate: " > > + > > +struct drrs_status { > > + bool enabled; > > + bool active; > > + bool low_refresh_rate; > > +}; > > + > > +static bool is_yes_or_no(char *ch) > > +{ > > + return strncmp(ch, "yes", 3) == 0; > > +} > > + > > +static const char *yes_or_no(bool r) > > +{ > > + return r ? "yes" : "no"; > > +} > > + > > +static bool parse(int debugfs_fd, enum pipe pipe, struct drrs_status *status) > > +{ > > + char buf[1024], search[16], *ch; > > + int ret; > > + > > + ret = igt_debugfs_simple_read(debugfs_fd, "i915_drrs_status", buf, > > + sizeof(buf)); > > + if (ret < 0) { > > + igt_info("Could not read i915_drrs_status: %s\n", > > + strerror(-ret)); > > + return false; > > + } > > + > > + snprintf(search, sizeof(search), ":pipe %s]:", kmstest_pipe_name(pipe)); > > We should probably just move DRRS over to per-crtc/connector > debugfs files. Would avoid nasty stuff like this. yep, will do this then. > > > + ch = strstr(buf, search); > > + if (!ch) > > + return false; > > + > > + ch = strstr(buf, DRRS_ENABLE_STR); > > + if (!ch) > > + return false; > > + ch += sizeof(DRRS_ENABLE_STR); > > + status->enabled = is_yes_or_no(ch); > > + > > + ch = strstr(buf, DRRS_ACTIVE_STR); > > + if (!ch) > > + return false; > > + ch += sizeof(DRRS_ACTIVE_STR); > > + status->active = is_yes_or_no(ch); > > + > > + ch = strstr(buf, DRRS_REFRESH_RATE_STR); > > + if (!ch) > > + return false; > > + ch += sizeof(DRRS_REFRESH_RATE_STR); > > + status->low_refresh_rate = strncmp(ch, "low", 3) == 0; > > + > > + return true; > > +} > > + > > +bool drrs_is_enabled(int debugfs_fd, enum pipe pipe) > > +{ > > + struct drrs_status status; > > + bool ret; > > + > > + ret = parse(debugfs_fd, pipe, &status); > > + if (!ret) > > + return false; > > + > > + return status.enabled; > > +} > > + > > +bool drrs_is_active(int debugfs_fd, enum pipe pipe) > > +{ > > + struct drrs_status status; > > + bool ret; > > + > > + ret = parse(debugfs_fd, pipe, &status); > > + if (!ret) > > + return false; > > + > > + return status.active; > > +} > > + > > +bool drrs_is_low_refresh_rate(int debugfs_fd, enum pipe pipe) > > +{ > > + struct drrs_status status; > > + bool ret; > > + > > + ret = parse(debugfs_fd, pipe, &status); > > + if (!ret) > > + return false; > > + > > + return status.low_refresh_rate; > > +} > > + > > +bool drrs_write_status(int debugfs_fd, enum pipe pipe, char *buf, int len) > > +{ > > + struct drrs_status status; > > + int ret, used = 0; > > + > > + ret = parse(debugfs_fd, pipe, &status); > > + if (!ret) > > + return false; > > + > > + ret = snprintf(buf, len - used, DRRS_ENABLE_STR "%s\n", > > + yes_or_no(status.enabled)); > > + if (ret < 0 || ret >= (len - used)) > > + return false; > > + used += ret; > > + buf += ret; > > + > > + ret = snprintf(buf, len - used, DRRS_ACTIVE_STR "%s\n", > > + yes_or_no(status.active)); > > + if (ret < 0 || ret >= (len - used)) > > + return false; > > + used += ret; > > + buf += ret; > > + > > + ret = snprintf(buf, len - used, DRRS_REFRESH_RATE_STR "%s\n", > > + status.low_refresh_rate ? "low" : "high"); > > + if (ret < 0 || ret >= (len - used)) > > + return false; > > + > > + return true; > > +} > > \ No newline at end of file > > diff --git a/lib/igt_drrs.h b/lib/igt_drrs.h > > new file mode 100644 > > index 0000000000..ff79fb20fb > > --- /dev/null > > +++ b/lib/igt_drrs.h > > @@ -0,0 +1,31 @@ > > +/* > > + * Copyright © 2022 Intel Corporation > > + * > > + * Permission is hereby granted, free of charge, to any person obtaining a > > + * copy of this software and associated documentation files (the "Software"), > > + * to deal in the Software without restriction, including without limitation > > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > > + * and/or sell copies of the Software, and to permit persons to whom the > > + * Software is furnished to do so, subject to the following conditions: > > + * > > + * The above copyright notice and this permission notice (including the next > > + * paragraph) shall be included in all copies or substantial portions of the > > + * Software. > > + * > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS > > + * IN THE SOFTWARE. > > + */ > > + > > +#pragma once > > + > > +#include "igt_kms.h" > > + > > +bool drrs_is_enabled(int debugfs_fd, enum pipe pipe); > > +bool drrs_is_active(int debugfs_fd, enum pipe pipe); > > +bool drrs_is_low_refresh_rate(int debugfs_fd, enum pipe pipe); > > +bool drrs_write_status(int debugfs_fd, enum pipe pipe, char *buf, int len); > > diff --git a/lib/meson.build b/lib/meson.build > > index ccee7a5965..3176b27813 100644 > > --- a/lib/meson.build > > +++ b/lib/meson.build > > @@ -77,6 +77,7 @@ lib_sources = [ > > 'igt_dummyload.c', > > 'igt_store.c', > > 'uwildmat/uwildmat.c', > > + 'igt_drrs.c', > > 'igt_kmod.c', > > 'igt_panfrost.c', > > 'igt_v3d.c', > > -- > > 2.35.1 > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-04-14 9:42 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-04-05 19:12 [igt-dev] [PATCH i-g-t 1/2] lib: Add DRRS helpers José Roberto de Souza 2022-04-05 19:12 ` [igt-dev] [PATCH i-g-t 2/2] test: kms_frontbuffer_tracking: Fix DRRS subtests José Roberto de Souza 2022-04-06 7:33 ` Petri Latvala 2022-04-13 19:46 ` Souza, Jose 2022-04-14 9:42 ` Petri Latvala 2022-04-05 20:17 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/2] lib: Add DRRS helpers Patchwork 2022-04-05 20:42 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork 2022-04-06 2:03 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2022-04-13 19:59 ` [igt-dev] [PATCH i-g-t 1/2] " Ville Syrjälä 2022-04-13 21:05 ` Souza, Jose
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.