* [PATCH i-g-t 0/2] RFC: Add preferred FB modifier helper
@ 2026-04-13 16:50 Jeevan B
2026-04-13 16:50 ` [PATCH i-g-t 1/2] lib/igt_fb: Add IGT_FORMAT_MOD_PREFERRED helper modifier Jeevan B
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Jeevan B @ 2026-04-13 16:50 UTC (permalink / raw)
To: igt-dev; +Cc: ville.syrjala, dev, ramanaidu.naladala, Jeevan B
Add an IGT‑internal modifier, IGT_FORMAT_MOD_PREFERRED, allowing
tests to request the preferred tiling format without hardcoding
driver‑specific modifiers.
A follow‑up HAX patch updates kms_cursor_legacy to use this modifier
for cursor framebuffer creation to exercise the new code paths.
Jeevan B (2):
lib/igt_fb: Add IGT_FORMAT_MOD_PREFERRED helper modifier
HAX: kms_cursor_legacy: Use IGT_FORMAT_MOD_PREFERRED for cursor FBs
lib/igt_fb.c | 27 ++++++++++++++++++++++++++-
lib/igt_fb.h | 21 +++++++++++++++++++++
tests/kms_cursor_legacy.c | 31 ++++++++++++++++---------------
3 files changed, 63 insertions(+), 16 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH i-g-t 1/2] lib/igt_fb: Add IGT_FORMAT_MOD_PREFERRED helper modifier
2026-04-13 16:50 [PATCH i-g-t 0/2] RFC: Add preferred FB modifier helper Jeevan B
@ 2026-04-13 16:50 ` Jeevan B
2026-04-13 18:06 ` Ville Syrjälä
2026-04-13 16:50 ` [PATCH i-g-t 2/2] HAX: kms_cursor_legacy: Use IGT_FORMAT_MOD_PREFERRED for cursor FBs Jeevan B
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Jeevan B @ 2026-04-13 16:50 UTC (permalink / raw)
To: igt-dev; +Cc: ville.syrjala, dev, ramanaidu.naladala, Jeevan B
Add a new IGT‑internal framebuffer modifier,
IGT_FORMAT_MOD_PREFERRED, allowing tests to request the preferred
non‑linear tiling for a platform without hardcoding
driver‑specific modifiers.
The modifier is resolved in igt_fb_resolve_modifier() using simple
platform rules (Intel, VC4, fallback to linear) and is never passed to
the kernel. It is defined outside the valid DRM modifier range and used
only as an internal sentinel.
This provides a driver‑agnostic way for tests to pick an optimal
modifier, avoiding per‑test hacks.
Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
lib/igt_fb.c | 27 ++++++++++++++++++++++++++-
lib/igt_fb.h | 21 +++++++++++++++++++++
2 files changed, 47 insertions(+), 1 deletion(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index fa9220953..9c3d0338b 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -790,6 +790,29 @@ static int fb_num_planes(const struct igt_fb *fb)
return num_planes;
}
+static uint64_t igt_fb_resolve_modifier(int fd, uint64_t modifier)
+{
+ if (modifier != IGT_FORMAT_MOD_PREFERRED)
+ return modifier;
+
+ if (is_xe_device(fd)) {
+ return I915_FORMAT_MOD_4_TILED;
+ } else if (is_i915_device(fd)) {
+ int ver = intel_display_ver(intel_get_drm_devid(fd));
+
+ if (ver >= 13)
+ return I915_FORMAT_MOD_4_TILED;
+ else if (ver >= 9)
+ return I915_FORMAT_MOD_Y_TILED;
+ else
+ return I915_FORMAT_MOD_X_TILED;
+ } else if (is_vc4_device(fd))
+ return DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED;
+
+ /* For AMD, nouveau, and any other driver, fall back to linear. */
+ return DRM_FORMAT_MOD_LINEAR;
+}
+
void igt_init_fb(struct igt_fb *fb, int fd, int width, int height,
uint32_t drm_format, uint64_t modifier,
enum igt_color_encoding color_encoding,
@@ -803,7 +826,7 @@ void igt_init_fb(struct igt_fb *fb, int fd, int width, int height,
fb->width = width;
fb->height = height;
- fb->modifier = modifier;
+ fb->modifier = igt_fb_resolve_modifier(fd, modifier);
fb->drm_format = drm_format;
fb->fd = fd;
fb->num_planes = fb_num_planes(fb);
@@ -5266,6 +5289,8 @@ void igt_format_array_fill(uint32_t **formats_array, unsigned int *count,
const char *igt_fb_modifier_name(uint64_t modifier)
{
switch (modifier) {
+ case IGT_FORMAT_MOD_PREFERRED:
+ return "preferred";
case DRM_FORMAT_MOD_LINEAR:
return "linear";
case I915_FORMAT_MOD_X_TILED:
diff --git a/lib/igt_fb.h b/lib/igt_fb.h
index 8e5907dab..5380b3dfa 100644
--- a/lib/igt_fb.h
+++ b/lib/igt_fb.h
@@ -50,6 +50,27 @@ typedef struct _igt_crc igt_crc_t;
*/
#define IGT_FORMAT_FLOAT fourcc_code('I', 'G', 'F', 'x')
+/**
+ * IGT_FORMAT_MOD_PREFERRED:
+ *
+ * Modifier used by tests to request the best tiling format for the
+ * current device. The actual modifier is selected inside igt_init_fb(),
+ * so tests don’t need to handle driver-specific details.
+ *
+ * Selection rules:
+ * - Intel Xe: 4_TILED
+ * - Intel i915 (gen ≥13): 4_TILED
+ * - Intel i915 (gen 9–12): Y_TILED
+ * - Intel i915 (gen <9): X_TILED
+ * - Broadcom VC4: T_TILED
+ * - Others: LINEAR (fallback)
+ *
+ * Note: This is a special placeholder value and must never be sent to
+ * the kernel.
+ */
+#define IGT_FORMAT_MOD_PREFERRED UINT64_C(0xfffffffffffffffe)
+
+
#define IGT_FORMAT_FMT "%c%c%c%c(0x%08x)"
#define IGT_FORMAT_ARGS(f) ((f) >> 0) & 0xff, ((f) >> 8) & 0xff, \
((f) >> 16) & 0xff, ((f) >> 24) & 0xff, (f)
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH i-g-t 2/2] HAX: kms_cursor_legacy: Use IGT_FORMAT_MOD_PREFERRED for cursor FBs
2026-04-13 16:50 [PATCH i-g-t 0/2] RFC: Add preferred FB modifier helper Jeevan B
2026-04-13 16:50 ` [PATCH i-g-t 1/2] lib/igt_fb: Add IGT_FORMAT_MOD_PREFERRED helper modifier Jeevan B
@ 2026-04-13 16:50 ` Jeevan B
2026-04-14 0:48 ` ✗ i915.CI.BAT: failure for RFC: Add preferred FB modifier helper Patchwork
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Jeevan B @ 2026-04-13 16:50 UTC (permalink / raw)
To: igt-dev; +Cc: ville.syrjala, dev, ramanaidu.naladala, Jeevan B
Switch all cursor-related framebuffer creations in
kms_cursor_legacy to use IGT_FORMAT_MOD_PREFERRED instead of
DRM_FORMAT_MOD_LINEAR.
Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
tests/kms_cursor_legacy.c | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
index 5399ef481..e32d2ac7e 100644
--- a/tests/kms_cursor_legacy.c
+++ b/tests/kms_cursor_legacy.c
@@ -373,7 +373,7 @@ static void set_fb_on_crtc(igt_display_t *display, igt_crtc_t *crtc,
igt_create_pattern_fb(display->drm_fd,
mode->hdisplay, mode->vdisplay,
- DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, fb_info);
+ DRM_FORMAT_XRGB8888, IGT_FORMAT_MOD_PREFERRED, fb_info);
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
igt_plane_set_fb(primary, fb_info);
@@ -579,7 +579,7 @@ static void prepare_flip_test(igt_display_t *display,
igt_skip_on(width <= 64 && height <= 64);
igt_create_color_fb(display->drm_fd, width, height,
- DRM_FORMAT_ARGB8888, DRM_FORMAT_MOD_LINEAR, 1., 0., .7, cursor_fb2);
+ DRM_FORMAT_ARGB8888, IGT_FORMAT_MOD_PREFERRED, 1., 0., .7, cursor_fb2);
arg[0].flags = arg[1].flags = DRM_MODE_CURSOR_BO;
arg[1].handle = cursor_fb2->gem_handle;
@@ -605,7 +605,7 @@ static void prepare_flip_test(igt_display_t *display,
crtc->planes[1].type != DRM_PLANE_TYPE_CURSOR);
igt_create_color_pattern_fb(display->drm_fd, prim_fb->width, prim_fb->height,
- DRM_FORMAT_ARGB8888, DRM_FORMAT_MOD_LINEAR, .1, .1, .1, argb_fb);
+ DRM_FORMAT_ARGB8888, IGT_FORMAT_MOD_PREFERRED, .1, .1, .1, argb_fb);
}
}
@@ -652,10 +652,10 @@ static void flip(igt_display_t *display,
}
igt_create_color_fb(display->drm_fd, fb_info.width, fb_info.height,
- DRM_FORMAT_ARGB8888, DRM_FORMAT_MOD_LINEAR, .5, .5, .5, &cursor_fb);
+ DRM_FORMAT_ARGB8888, IGT_FORMAT_MOD_PREFERRED, .5, .5, .5, &cursor_fb);
igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
- DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
+ IGT_FORMAT_MOD_PREFERRED, 1., 1., 1., &cursor_fb);
cursor = set_cursor_on_crtc(display, cursor_crtc, &cursor_fb);
populate_cursor_args(display, cursor_crtc, arg, &cursor_fb);
@@ -769,7 +769,7 @@ static void basic_flip_cursor(igt_display_t *display,
set_fb_on_crtc(display, crtc, output, &fb_info);
igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
- DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
+ IGT_FORMAT_MOD_PREFERRED, 1., 1., 1., &cursor_fb);
cursor = set_cursor_on_crtc(display, crtc, &cursor_fb);
populate_cursor_args(display, crtc, arg, &cursor_fb);
@@ -948,7 +948,7 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
set_fb_on_crtc(display, crtc, output, &fb_info);
igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
- DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
+ IGT_FORMAT_MOD_PREFERRED, 1., 1., 1., &cursor_fb);
cursor = set_cursor_on_crtc(display, crtc, &cursor_fb);
populate_cursor_args(display, crtc, arg, &cursor_fb);
@@ -1089,7 +1089,7 @@ static void nonblocking_modeset_vs_cursor(igt_display_t *display, int loops)
set_fb_on_crtc(display, crtc, output, &fb_info);
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
- DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
+ IGT_FORMAT_MOD_PREFERRED, 1., 1., 1., &cursor_fb);
cursor = set_cursor_on_crtc(display, crtc, &cursor_fb);
populate_cursor_args(display, crtc, arg, &cursor_fb);
arg[0].flags |= DRM_MODE_CURSOR_BO;
@@ -1216,7 +1216,7 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
}
igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
- DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
+ IGT_FORMAT_MOD_PREFERRED, 1., 1., 1., &cursor_fb);
cursor = set_cursor_on_crtc(display, crtc, &cursor_fb);
populate_cursor_args(display, crtc, arg1, &cursor_fb);
@@ -1395,7 +1395,7 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo
vrefresh = igt_output_get_mode(output)->vrefresh;
igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
- DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
+ IGT_FORMAT_MOD_PREFERRED, 1., 1., 1., &cursor_fb);
cursor = set_cursor_on_crtc(display, crtc, &cursor_fb);
populate_cursor_args(display, crtc, arg, &cursor_fb);
@@ -1513,7 +1513,7 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool
}
igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
- DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
+ IGT_FORMAT_MOD_PREFERRED, 1., 1., 1., &cursor_fb);
cursors[0] = set_cursor_on_crtc(display, crtc[0], &cursor_fb);
populate_cursor_args(display, crtc[0], arg[0], &cursor_fb);
@@ -1628,7 +1628,7 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic)
set_fb_on_crtc(display, crtc, output, &fb_info);
igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
- DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
+ IGT_FORMAT_MOD_PREFERRED, 1., 1., 1., &cursor_fb);
populate_cursor_args(display, crtc, arg, &cursor_fb);
igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
@@ -1709,10 +1709,11 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic)
set_fb_on_crtc(display, crtc, output, &fb_info[0]);
plane_primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
igt_create_color_pattern_fb(display->drm_fd, fb_info[0].width, fb_info[0].height,
- DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, .1, .1, .1, &fb_info[1]);
+ DRM_FORMAT_XRGB8888, IGT_FORMAT_MOD_PREFERRED, .1, .1, .1,
+ &fb_info[1]);
igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
- DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
+ IGT_FORMAT_MOD_PREFERRED, 1., 1., 1., &cursor_fb);
populate_cursor_args(display, crtc, arg, &cursor_fb);
igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
@@ -1816,7 +1817,7 @@ static void modeset_atomic_cursor_hotspot(igt_display_t *display)
cursor_width = cursor_height = 64;
igt_create_color_fb(display->drm_fd, cursor_width, cursor_height, DRM_FORMAT_ARGB8888,
- DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
+ IGT_FORMAT_MOD_PREFERRED, 1., 1., 1., &cursor_fb);
igt_display_commit2(display, COMMIT_ATOMIC);
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH i-g-t 1/2] lib/igt_fb: Add IGT_FORMAT_MOD_PREFERRED helper modifier
2026-04-13 16:50 ` [PATCH i-g-t 1/2] lib/igt_fb: Add IGT_FORMAT_MOD_PREFERRED helper modifier Jeevan B
@ 2026-04-13 18:06 ` Ville Syrjälä
2026-04-16 13:37 ` Maarten Lankhorst
0 siblings, 1 reply; 9+ messages in thread
From: Ville Syrjälä @ 2026-04-13 18:06 UTC (permalink / raw)
To: Jeevan B; +Cc: igt-dev, dev, ramanaidu.naladala
On Mon, Apr 13, 2026 at 10:20:05PM +0530, Jeevan B wrote:
> Add a new IGT‑internal framebuffer modifier,
> IGT_FORMAT_MOD_PREFERRED, allowing tests to request the preferred
> non‑linear tiling for a platform without hardcoding
> driver‑specific modifiers.
>
> The modifier is resolved in igt_fb_resolve_modifier() using simple
> platform rules (Intel, VC4, fallback to linear) and is never passed to
> the kernel. It is defined outside the valid DRM modifier range and used
> only as an internal sentinel.
>
> This provides a driver‑agnostic way for tests to pick an optimal
> modifier, avoiding per‑test hacks.
>
> Signed-off-by: Jeevan B <jeevan.b@intel.com>
> ---
> lib/igt_fb.c | 27 ++++++++++++++++++++++++++-
> lib/igt_fb.h | 21 +++++++++++++++++++++
> 2 files changed, 47 insertions(+), 1 deletion(-)
>
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index fa9220953..9c3d0338b 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -790,6 +790,29 @@ static int fb_num_planes(const struct igt_fb *fb)
> return num_planes;
> }
>
> +static uint64_t igt_fb_resolve_modifier(int fd, uint64_t modifier)
> +{
> + if (modifier != IGT_FORMAT_MOD_PREFERRED)
> + return modifier;
> +
> + if (is_xe_device(fd)) {
> + return I915_FORMAT_MOD_4_TILED;
> + } else if (is_i915_device(fd)) {
That is wrong for tgl/adl. I think i915 and xe need to use
the same logic here.
> + int ver = intel_display_ver(intel_get_drm_devid(fd));
> +
> + if (ver >= 13)
> + return I915_FORMAT_MOD_4_TILED;
Still borked for adl.
> + else if (ver >= 9)
> + return I915_FORMAT_MOD_Y_TILED;
I don't think we want Y tile, at least on skl class hardware.
It has much higher watermark requirements and could therefore
prevent some tests from working.
> + else
> + return I915_FORMAT_MOD_X_TILED;
I'm thinking we may want to prefer X tile on all the hardware
that still has it. Though I suppose anything that has tile4 also
has pretty large DDBs, so tile4 might be fine. Shrug.
Anyways, this should perhaps just be something simple like
if (display_has_format_mod(XRGB8888, X_TILE))
return X_TILE;
if (display_has_format_mod(XRGB8888, 4_TILE))
return 4_TILE;
return LINEAR;
Doesn't even need any driver checks.
Hmm. We might still prefer fenced GGTT access for X tile, so
it might actually end up slowing down some things. We may
need to change the policy to prefer a different method for
tiled<->linear conversion even for X tile. It would be good
get actual numbers on the overall execution time for whatever
we choose here vs. LINEAR...
> + } else if (is_vc4_device(fd))
> + return DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED;
> +
> + /* For AMD, nouveau, and any other driver, fall back to linear. */
> + return DRM_FORMAT_MOD_LINEAR;
> +}
> +
> void igt_init_fb(struct igt_fb *fb, int fd, int width, int height,
> uint32_t drm_format, uint64_t modifier,
> enum igt_color_encoding color_encoding,
> @@ -803,7 +826,7 @@ void igt_init_fb(struct igt_fb *fb, int fd, int width, int height,
>
> fb->width = width;
> fb->height = height;
> - fb->modifier = modifier;
> + fb->modifier = igt_fb_resolve_modifier(fd, modifier);
I think it should have been resolved long before that.
AFAICS you could just add a display->preferred_modifier, figure out
what that is during display init, and then switch tests to use that.
No need for this magic IGT_FORMAT_MOD_PREFERRED at all then I think.
And I'm thinking we might also want to print it out in the debug logs.
And for some extra fun we could add a debug knob (maybe env variable,
or a standard igt command line parameter) to force a specific modifier.
This would allow running the test with a specific modifier, even if
the test doesn't have explicit support for it.
The downside of using !LINEAR is that we will now depend even
more on all the magic stuff to convert between linear and tiled
for software rendering. So we may end up running more code under
the hood in most tests. I suppose we just have to hope that code
doesn't have too many bugs.
> fb->drm_format = drm_format;
> fb->fd = fd;
> fb->num_planes = fb_num_planes(fb);
> @@ -5266,6 +5289,8 @@ void igt_format_array_fill(uint32_t **formats_array, unsigned int *count,
> const char *igt_fb_modifier_name(uint64_t modifier)
> {
> switch (modifier) {
> + case IGT_FORMAT_MOD_PREFERRED:
> + return "preferred";
> case DRM_FORMAT_MOD_LINEAR:
> return "linear";
> case I915_FORMAT_MOD_X_TILED:
> diff --git a/lib/igt_fb.h b/lib/igt_fb.h
> index 8e5907dab..5380b3dfa 100644
> --- a/lib/igt_fb.h
> +++ b/lib/igt_fb.h
> @@ -50,6 +50,27 @@ typedef struct _igt_crc igt_crc_t;
> */
> #define IGT_FORMAT_FLOAT fourcc_code('I', 'G', 'F', 'x')
>
> +/**
> + * IGT_FORMAT_MOD_PREFERRED:
> + *
> + * Modifier used by tests to request the best tiling format for the
> + * current device. The actual modifier is selected inside igt_init_fb(),
> + * so tests don’t need to handle driver-specific details.
> + *
> + * Selection rules:
> + * - Intel Xe: 4_TILED
> + * - Intel i915 (gen ≥13): 4_TILED
> + * - Intel i915 (gen 9–12): Y_TILED
> + * - Intel i915 (gen <9): X_TILED
> + * - Broadcom VC4: T_TILED
> + * - Others: LINEAR (fallback)
> + *
> + * Note: This is a special placeholder value and must never be sent to
> + * the kernel.
> + */
> +#define IGT_FORMAT_MOD_PREFERRED UINT64_C(0xfffffffffffffffe)
> +
> +
> #define IGT_FORMAT_FMT "%c%c%c%c(0x%08x)"
> #define IGT_FORMAT_ARGS(f) ((f) >> 0) & 0xff, ((f) >> 8) & 0xff, \
> ((f) >> 16) & 0xff, ((f) >> 24) & 0xff, (f)
> --
> 2.43.0
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 9+ messages in thread
* ✗ i915.CI.BAT: failure for RFC: Add preferred FB modifier helper
2026-04-13 16:50 [PATCH i-g-t 0/2] RFC: Add preferred FB modifier helper Jeevan B
2026-04-13 16:50 ` [PATCH i-g-t 1/2] lib/igt_fb: Add IGT_FORMAT_MOD_PREFERRED helper modifier Jeevan B
2026-04-13 16:50 ` [PATCH i-g-t 2/2] HAX: kms_cursor_legacy: Use IGT_FORMAT_MOD_PREFERRED for cursor FBs Jeevan B
@ 2026-04-14 0:48 ` Patchwork
2026-04-14 1:24 ` ✗ Xe.CI.BAT: " Patchwork
2026-04-14 3:51 ` ✗ Xe.CI.FULL: " Patchwork
4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2026-04-14 0:48 UTC (permalink / raw)
To: Jeevan B; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 15069 bytes --]
== Series Details ==
Series: RFC: Add preferred FB modifier helper
URL : https://patchwork.freedesktop.org/series/164817/
State : failure
== Summary ==
CI Bug Log - changes from IGT_8854 -> IGTPW_14972
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_14972 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_14972, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/index.html
Participating hosts (42 -> 39)
------------------------------
Missing (3): bat-dg2-13 fi-glk-j4005 fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_14972:
### IGT changes ###
#### Possible regressions ####
* igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
- bat-mtlp-9: [PASS][1] -> [FAIL][2] +5 other tests fail
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-mtlp-9/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-mtlp-9/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- fi-hsw-4770: [PASS][3] -> [FAIL][4] +7 other tests fail
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-hsw-4770/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-hsw-4770/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-mtlp-8: [PASS][5] -> [FAIL][6] +5 other tests fail
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-mtlp-8/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-mtlp-8/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-adls-6: [PASS][7] -> [FAIL][8] +5 other tests fail
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-adls-6/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-adls-6/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-arlh-3: [PASS][9] -> [FAIL][10] +5 other tests fail
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-arlh-3/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-arlh-3/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-dg1-7: [PASS][11] -> [FAIL][12] +5 other tests fail
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-dg1-7/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-dg1-7/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-rpls-4: [PASS][13] -> [FAIL][14] +5 other tests fail
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-rpls-4/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-rpls-4/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-twl-1: [PASS][15] -> [FAIL][16] +5 other tests fail
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-twl-1/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-twl-1/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-jsl-5: [PASS][17] -> [FAIL][18] +5 other tests fail
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-jsl-5/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-jsl-5/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-apl-1: [PASS][19] -> [FAIL][20] +5 other tests fail
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-apl-1/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-apl-1/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-rplp-1: [PASS][21] -> [FAIL][22] +5 other tests fail
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-rplp-1/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-rplp-1/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-dg2-9: [PASS][23] -> [FAIL][24] +5 other tests fail
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-dg2-9/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-dg2-9/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- bat-adlp-6: [PASS][25] -> [FAIL][26] +5 other tests fail
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-adlp-6/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-adlp-6/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
- fi-skl-6600u: [PASS][27] -> [FAIL][28] +5 other tests fail
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-skl-6600u/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-skl-6600u/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size:
- bat-arls-6: [PASS][29] -> [FAIL][30] +5 other tests fail
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-arls-6/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-arls-6/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
- fi-pnv-d510: [PASS][31] -> [FAIL][32] +4 other tests fail
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-pnv-d510/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-pnv-d510/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
- fi-kbl-7567u: [PASS][33] -> [DMESG-FAIL][34] +5 other tests dmesg-fail
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-kbl-7567u/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-kbl-7567u/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
- fi-cfl-guc: [PASS][35] -> [FAIL][36] +5 other tests fail
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-cfl-guc/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-cfl-guc/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
* igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
- fi-cfl-8700k: [PASS][37] -> [FAIL][38] +5 other tests fail
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-cfl-8700k/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-cfl-8700k/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@basic-flip-before-cursor-legacy:
- bat-twl-2: [PASS][39] -> [FAIL][40] +5 other tests fail
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-twl-2/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-twl-2/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
- fi-ivb-3770: [PASS][41] -> [FAIL][42] +7 other tests fail
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-ivb-3770/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-ivb-3770/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
- bat-dg2-14: [PASS][43] -> [FAIL][44] +5 other tests fail
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-dg2-14/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-dg2-14/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
- fi-elk-e7500: [PASS][45] -> [FAIL][46] +7 other tests fail
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-elk-e7500/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-elk-e7500/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
- bat-dg2-8: [PASS][47] -> [FAIL][48] +5 other tests fail
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-dg2-8/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-dg2-8/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
- fi-bsw-n3050: [PASS][49] -> [FAIL][50] +7 other tests fail
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-bsw-n3050/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-bsw-n3050/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
- bat-arls-5: [PASS][51] -> [FAIL][52] +5 other tests fail
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-arls-5/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-arls-5/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
- fi-cfl-8109u: [PASS][53] -> [FAIL][54] +5 other tests fail
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-cfl-8109u/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-cfl-8109u/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
* igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
- fi-ilk-650: [PASS][55] -> [FAIL][56] +7 other tests fail
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-ilk-650/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-ilk-650/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
- fi-tgl-1115g4: [PASS][57] -> [FAIL][58] +5 other tests fail
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-tgl-1115g4/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-tgl-1115g4/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
#### Warnings ####
* igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
- bat-adlp-9: [DMESG-WARN][59] ([i915#15673]) -> [FAIL][60] +5 other tests fail
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-adlp-9/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-adlp-9/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
Known issues
------------
Here are the changes found in IGTPW_14972 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live:
- bat-mtlp-8: [PASS][61] -> [DMESG-FAIL][62] ([i915#12061]) +1 other test dmesg-fail
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-mtlp-8/igt@i915_selftest@live.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-mtlp-8/igt@i915_selftest@live.html
- bat-dg2-8: [PASS][63] -> [DMESG-FAIL][64] ([i915#12061]) +1 other test dmesg-fail
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-dg2-8/igt@i915_selftest@live.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-dg2-8/igt@i915_selftest@live.html
* igt@i915_selftest@live@sanitycheck:
- fi-kbl-7567u: [PASS][65] -> [DMESG-WARN][66] ([i915#13735]) +79 other tests dmesg-warn
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
* igt@i915_selftest@live@workarounds:
- bat-arls-5: [PASS][67] -> [DMESG-FAIL][68] ([i915#12061]) +1 other test dmesg-fail
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-arls-5/igt@i915_selftest@live@workarounds.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-arls-5/igt@i915_selftest@live@workarounds.html
- bat-arlh-2: [PASS][69] -> [DMESG-FAIL][70] ([i915#12061]) +1 other test dmesg-fail
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-arlh-2/igt@i915_selftest@live@workarounds.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-arlh-2/igt@i915_selftest@live@workarounds.html
* igt@kms_pm_rpm@basic-pci-d3-state:
- fi-kbl-7567u: [PASS][71] -> [DMESG-WARN][72] ([i915#13735] / [i915#180]) +47 other tests dmesg-warn
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
#### Possible fixes ####
* igt@i915_selftest@live@workarounds:
- bat-arls-6: [DMESG-FAIL][73] ([i915#12061]) -> [PASS][74] +1 other test pass
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8854/bat-arls-6/igt@i915_selftest@live@workarounds.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/bat-arls-6/igt@i915_selftest@live@workarounds.html
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#13735]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13735
[i915#15673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15673
[i915#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_8854 -> IGTPW_14972
* Linux: CI_DRM_18313 -> CI_DRM_18326
CI-20190529: 20190529
CI_DRM_18313: 3751e2e5a19aba3949a3f12aa5b917eb8bbb1eb5 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_18326: c8bad7becc008716c8475847328c549e178c813c @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_14972: 174a5975f340be712e859c6bfb20a63f0687899e @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8854: 93abaf0170728f69bc27577e5b405f7a2a01b6fd @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14972/index.html
[-- Attachment #2: Type: text/html, Size: 16472 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* ✗ Xe.CI.BAT: failure for RFC: Add preferred FB modifier helper
2026-04-13 16:50 [PATCH i-g-t 0/2] RFC: Add preferred FB modifier helper Jeevan B
` (2 preceding siblings ...)
2026-04-14 0:48 ` ✗ i915.CI.BAT: failure for RFC: Add preferred FB modifier helper Patchwork
@ 2026-04-14 1:24 ` Patchwork
2026-04-14 3:51 ` ✗ Xe.CI.FULL: " Patchwork
4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2026-04-14 1:24 UTC (permalink / raw)
To: Jeevan B; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 3488 bytes --]
== Series Details ==
Series: RFC: Add preferred FB modifier helper
URL : https://patchwork.freedesktop.org/series/164817/
State : failure
== Summary ==
CI Bug Log - changes from XEIGT_8854_BAT -> XEIGTPW_14972_BAT
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with XEIGTPW_14972_BAT absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in XEIGTPW_14972_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (14 -> 11)
------------------------------
Missing (3): bat-dg2-oem2 bat-adlp-vm bat-ptl-vm
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in XEIGTPW_14972_BAT:
### IGT changes ###
#### Possible regressions ####
* igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
- bat-ptl-2: [PASS][1] -> [FAIL][2] +5 other tests fail
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/bat-ptl-2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/bat-ptl-2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
- bat-wcl-1: [PASS][3] -> [FAIL][4] +5 other tests fail
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/bat-wcl-1/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/bat-wcl-1/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- bat-adlp-7: [PASS][5] -> [FAIL][6] +5 other tests fail
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/bat-adlp-7/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/bat-adlp-7/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
- bat-bmg-1: [PASS][7] -> [FAIL][8] +5 other tests fail
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/bat-bmg-1/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/bat-bmg-1/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size:
- bat-lnl-1: [PASS][9] -> [FAIL][10] +5 other tests fail
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/bat-lnl-1/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/bat-lnl-1/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
Build changes
-------------
* IGT: IGT_8854 -> IGTPW_14972
* Linux: xe-4884-3751e2e5a19aba3949a3f12aa5b917eb8bbb1eb5 -> xe-4897-c8bad7becc008716c8475847328c549e178c813c
IGTPW_14972: 174a5975f340be712e859c6bfb20a63f0687899e @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8854: 93abaf0170728f69bc27577e5b405f7a2a01b6fd @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4884-3751e2e5a19aba3949a3f12aa5b917eb8bbb1eb5: 3751e2e5a19aba3949a3f12aa5b917eb8bbb1eb5
xe-4897-c8bad7becc008716c8475847328c549e178c813c: c8bad7becc008716c8475847328c549e178c813c
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/index.html
[-- Attachment #2: Type: text/html, Size: 4171 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* ✗ Xe.CI.FULL: failure for RFC: Add preferred FB modifier helper
2026-04-13 16:50 [PATCH i-g-t 0/2] RFC: Add preferred FB modifier helper Jeevan B
` (3 preceding siblings ...)
2026-04-14 1:24 ` ✗ Xe.CI.BAT: " Patchwork
@ 2026-04-14 3:51 ` Patchwork
4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2026-04-14 3:51 UTC (permalink / raw)
To: Jeevan B; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 29997 bytes --]
== Series Details ==
Series: RFC: Add preferred FB modifier helper
URL : https://patchwork.freedesktop.org/series/164817/
State : failure
== Summary ==
CI Bug Log - changes from XEIGT_8854_FULL -> XEIGTPW_14972_FULL
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with XEIGTPW_14972_FULL absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in XEIGTPW_14972_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in XEIGTPW_14972_FULL:
### IGT changes ###
#### Possible regressions ####
* igt@kms_cursor_legacy@cursora-vs-flipb-toggle:
- shard-bmg: NOTRUN -> [FAIL][1] +1 other test fail
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-10/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
* igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic:
- shard-bmg: [PASS][2] -> [FAIL][3] +45 other tests fail
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-2/igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic.html
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-5/igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor-crc-legacy:
- shard-lnl: NOTRUN -> [FAIL][4]
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-7/igt@kms_cursor_legacy@flip-vs-cursor-crc-legacy.html
* igt@kms_cursor_legacy@flip-vs-cursor-legacy:
- shard-lnl: [PASS][5] -> [FAIL][6] +34 other tests fail
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-lnl-3/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-2/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
#### Warnings ####
* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-bmg: [FAIL][7] ([Intel XE#7571]) -> [FAIL][8] +1 other test fail
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-7/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-10/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
New tests
---------
New tests have been introduced between XEIGT_8854_FULL and XEIGTPW_14972_FULL:
### New IGT tests (3) ###
* igt@kms_pm_rpm@universal-planes-dpms@plane-95:
- Statuses : 1 pass(s)
- Exec time: [7.92] s
* igt@kms_pm_rpm@universal-planes@plane-65:
- Statuses : 2 pass(s)
- Exec time: [2.53, 8.16] s
* igt@kms_pm_rpm@universal-planes@plane-95:
- Statuses : 2 pass(s)
- Exec time: [2.53, 7.87] s
Known issues
------------
Here are the changes found in XEIGTPW_14972_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#3658] / [Intel XE#7360])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-8/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#1124])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-10/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#7679])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-9/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs:
- shard-lnl: NOTRUN -> [SKIP][12] ([Intel XE#3432])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-3/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#2887]) +1 other test skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-5/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs.html
* igt@kms_chamelium_color@ctm-green-to-red:
- shard-lnl: NOTRUN -> [SKIP][14] ([Intel XE#306] / [Intel XE#7358])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-7/igt@kms_chamelium_color@ctm-green-to-red.html
* igt@kms_chamelium_hpd@dp-hpd-after-suspend:
- shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#2252])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-5/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html
* igt@kms_cursor_crc@cursor-offscreen-256x85:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#2320]) +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-5/igt@kms_cursor_crc@cursor-offscreen-256x85.html
* igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#309] / [Intel XE#7343])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-6/igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
- shard-lnl: NOTRUN -> [SKIP][18] ([Intel XE#1508])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-5/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
* igt@kms_flip@2x-blocking-absolute-wf_vblank:
- shard-lnl: NOTRUN -> [SKIP][19] ([Intel XE#1421]) +1 other test skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-2/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: [PASS][20] -> [FAIL][21] ([Intel XE#301]) +1 other test fail
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#7179])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-9/igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x.html
* igt@kms_frontbuffer_tracking@drrs-1p-offscreen-pri-shrfb-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][23] ([Intel XE#6312])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-6/igt@kms_frontbuffer_tracking@drrs-1p-offscreen-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-fullscreen:
- shard-bmg: NOTRUN -> [SKIP][24] ([Intel XE#2311])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-plflip-blt:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#2313]) +3 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
- shard-lnl: NOTRUN -> [SKIP][26] ([Intel XE#656]) +3 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@psr-argb161616f-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#7061] / [Intel XE#7356])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-argb161616f-draw-mmap-wc.html
* igt@kms_joiner@basic-ultra-joiner:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#6911] / [Intel XE#7378])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-8/igt@kms_joiner@basic-ultra-joiner.html
* igt@kms_joiner@invalid-modeset-ultra-joiner:
- shard-lnl: NOTRUN -> [SKIP][29] ([Intel XE#6900] / [Intel XE#7362])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-2/igt@kms_joiner@invalid-modeset-ultra-joiner.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-lnl: NOTRUN -> [SKIP][30] ([Intel XE#7591])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-2/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier:
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#7283])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-1/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier.html
* igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#7283])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-3/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier.html
* igt@kms_pm_dc@dc5-psr:
- shard-lnl: [PASS][33] -> [FAIL][34] ([Intel XE#7340])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-lnl-7/igt@kms_pm_dc@dc5-psr.html
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-4/igt@kms_pm_dc@dc5-psr.html
* igt@kms_psr@fbc-psr-sprite-render:
- shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#2234] / [Intel XE#2850])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-9/igt@kms_psr@fbc-psr-sprite-render.html
* igt@kms_psr@pr-sprite-render:
- shard-lnl: NOTRUN -> [SKIP][36] ([Intel XE#1406])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-5/igt@kms_psr@pr-sprite-render.html
* igt@kms_rotation_crc@bad-tiling:
- shard-lnl: NOTRUN -> [SKIP][37] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-6/igt@kms_rotation_crc@bad-tiling.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-lnl: NOTRUN -> [SKIP][38] ([Intel XE#1127] / [Intel XE#5813])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_sharpness_filter@filter-scaler-upscale:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#6503])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-7/igt@kms_sharpness_filter@filter-scaler-upscale.html
* igt@kms_vrr@cmrr@pipe-a-edp-1:
- shard-lnl: [PASS][40] -> [FAIL][41] ([Intel XE#4459]) +1 other test fail
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-lnl-4/igt@kms_vrr@cmrr@pipe-a-edp-1.html
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-8/igt@kms_vrr@cmrr@pipe-a-edp-1.html
* igt@xe_compute@ccs-mode-basic:
- shard-lnl: NOTRUN -> [SKIP][42] ([Intel XE#1447] / [Intel XE#7471])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-5/igt@xe_compute@ccs-mode-basic.html
* igt@xe_eudebug_online@writes-caching-sram-bb-vram-target-sram:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#7636])
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-5/igt@xe_eudebug_online@writes-caching-sram-bb-vram-target-sram.html
* igt@xe_evict@evict-beng-cm-threads-small:
- shard-lnl: NOTRUN -> [SKIP][44] ([Intel XE#6540] / [Intel XE#688]) +2 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-6/igt@xe_evict@evict-beng-cm-threads-small.html
* igt@xe_exec_balancer@many-execqueues-cm-parallel-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][45] ([Intel XE#7482]) +1 other test skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-6/igt@xe_exec_balancer@many-execqueues-cm-parallel-userptr-rebind.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-mmap:
- shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-10/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-mmap.html
* igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr:
- shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#1392])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-4/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-imm:
- shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#7136]) +2 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-10/igt@xe_exec_fault_mode@many-execqueues-multi-queue-imm.html
* igt@xe_exec_multi_queue@one-queue-preempt-mode-fault-basic:
- shard-lnl: NOTRUN -> [SKIP][49] ([Intel XE#6874]) +3 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-5/igt@xe_exec_multi_queue@one-queue-preempt-mode-fault-basic.html
* igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#7138]) +1 other test skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-9/igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-userptr-invalidate.html
* igt@xe_exec_threads@threads-multi-queue-fd-userptr-invalidate:
- shard-lnl: NOTRUN -> [SKIP][51] ([Intel XE#7138]) +1 other test skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-1/igt@xe_exec_threads@threads-multi-queue-fd-userptr-invalidate.html
* igt@xe_module_load@many-reload:
- shard-bmg: [PASS][52] -> [DMESG-WARN][53] ([Intel XE#7725]) +1 other test dmesg-warn
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-9/igt@xe_module_load@many-reload.html
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-6/igt@xe_module_load@many-reload.html
* igt@xe_query@multigpu-query-topology-l3-bank-mask:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#944]) +1 other test skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-6/igt@xe_query@multigpu-query-topology-l3-bank-mask.html
* igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs:
- shard-lnl: NOTRUN -> [SKIP][55] ([Intel XE#4130] / [Intel XE#7366])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-5/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs.html
#### Possible fixes ####
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][56] ([Intel XE#1503]) -> [PASS][57]
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-2/igt@kms_hdr@invalid-hdr.html
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-3/igt@kms_hdr@invalid-hdr.html
* igt@kms_vrr@max-min@pipe-a-edp-1:
- shard-lnl: [FAIL][58] ([Intel XE#4227]) -> [PASS][59] +1 other test pass
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-lnl-1/igt@kms_vrr@max-min@pipe-a-edp-1.html
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-6/igt@kms_vrr@max-min@pipe-a-edp-1.html
* igt@xe_configfs@engines-allowed:
- shard-bmg: [DMESG-WARN][60] ([Intel XE#7725]) -> [PASS][61] +3 other tests pass
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-6/igt@xe_configfs@engines-allowed.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-3/igt@xe_configfs@engines-allowed.html
* igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma:
- shard-lnl: [FAIL][62] ([Intel XE#5625]) -> [PASS][63]
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-lnl-1/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-lnl-6/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html
* igt@xe_sriov_flr@flr-twice:
- shard-bmg: [FAIL][64] ([Intel XE#6569]) -> [PASS][65]
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-8/igt@xe_sriov_flr@flr-twice.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-9/igt@xe_sriov_flr@flr-twice.html
#### Warnings ####
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move:
- shard-bmg: [SKIP][66] ([Intel XE#2312]) -> [SKIP][67] ([Intel XE#2313])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move.html
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-10/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][68] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][69] ([Intel XE#1729] / [Intel XE#7424])
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-10/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][70] ([Intel XE#2426] / [Intel XE#5848]) -> [SKIP][71] ([Intel XE#2509] / [Intel XE#7437])
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@xe_module_load@load:
- shard-bmg: ([PASS][72], [PASS][73], [PASS][74], [PASS][75], [PASS][76], [PASS][77], [PASS][78], [PASS][79], [PASS][80], [PASS][81], [PASS][82], [PASS][83], [PASS][84], [PASS][85], [PASS][86], [PASS][87], [PASS][88], [PASS][89], [PASS][90], [PASS][91], [PASS][92], [SKIP][93], [PASS][94], [PASS][95], [PASS][96], [PASS][97]) ([Intel XE#2457] / [Intel XE#7405]) -> ([PASS][98], [DMESG-WARN][99], [PASS][100], [PASS][101], [PASS][102], [PASS][103], [DMESG-WARN][104], [PASS][105], [PASS][106], [PASS][107], [PASS][108], [PASS][109], [PASS][110], [PASS][111], [PASS][112], [PASS][113], [PASS][114], [PASS][115], [PASS][116], [PASS][117], [PASS][118], [PASS][119], [DMESG-WARN][120], [DMESG-WARN][121]) ([Intel XE#7725])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-8/igt@xe_module_load@load.html
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-6/igt@xe_module_load@load.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-8/igt@xe_module_load@load.html
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-6/igt@xe_module_load@load.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-9/igt@xe_module_load@load.html
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-2/igt@xe_module_load@load.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-2/igt@xe_module_load@load.html
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-2/igt@xe_module_load@load.html
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-10/igt@xe_module_load@load.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-10/igt@xe_module_load@load.html
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-7/igt@xe_module_load@load.html
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-3/igt@xe_module_load@load.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-8/igt@xe_module_load@load.html
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-5/igt@xe_module_load@load.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-1/igt@xe_module_load@load.html
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-9/igt@xe_module_load@load.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-6/igt@xe_module_load@load.html
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-5/igt@xe_module_load@load.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-5/igt@xe_module_load@load.html
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-7/igt@xe_module_load@load.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-7/igt@xe_module_load@load.html
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-5/igt@xe_module_load@load.html
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-3/igt@xe_module_load@load.html
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-1/igt@xe_module_load@load.html
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-1/igt@xe_module_load@load.html
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8854/shard-bmg-9/igt@xe_module_load@load.html
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-6/igt@xe_module_load@load.html
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-6/igt@xe_module_load@load.html
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-2/igt@xe_module_load@load.html
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-9/igt@xe_module_load@load.html
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-9/igt@xe_module_load@load.html
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-2/igt@xe_module_load@load.html
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-6/igt@xe_module_load@load.html
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-5/igt@xe_module_load@load.html
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-5/igt@xe_module_load@load.html
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-5/igt@xe_module_load@load.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-3/igt@xe_module_load@load.html
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-3/igt@xe_module_load@load.html
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-8/igt@xe_module_load@load.html
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-8/igt@xe_module_load@load.html
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-1/igt@xe_module_load@load.html
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-1/igt@xe_module_load@load.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-10/igt@xe_module_load@load.html
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-9/igt@xe_module_load@load.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-7/igt@xe_module_load@load.html
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-7/igt@xe_module_load@load.html
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-10/igt@xe_module_load@load.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-10/igt@xe_module_load@load.html
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-6/igt@xe_module_load@load.html
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/shard-bmg-6/igt@xe_module_load@load.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1447
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3658
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
[Intel XE#4227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4227
[Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
[Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625
[Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
[Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#6900]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6900
[Intel XE#6911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6911
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
[Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
[Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7340
[Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
[Intel XE#7360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7360
[Intel XE#7362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7362
[Intel XE#7366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7366
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7378
[Intel XE#7405]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7405
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
[Intel XE#7471]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7471
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7571
[Intel XE#7591]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7591
[Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7725]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7725
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* IGT: IGT_8854 -> IGTPW_14972
* Linux: xe-4884-3751e2e5a19aba3949a3f12aa5b917eb8bbb1eb5 -> xe-4897-c8bad7becc008716c8475847328c549e178c813c
IGTPW_14972: 174a5975f340be712e859c6bfb20a63f0687899e @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8854: 93abaf0170728f69bc27577e5b405f7a2a01b6fd @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4884-3751e2e5a19aba3949a3f12aa5b917eb8bbb1eb5: 3751e2e5a19aba3949a3f12aa5b917eb8bbb1eb5
xe-4897-c8bad7becc008716c8475847328c549e178c813c: c8bad7becc008716c8475847328c549e178c813c
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14972/index.html
[-- Attachment #2: Type: text/html, Size: 32685 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH i-g-t 1/2] lib/igt_fb: Add IGT_FORMAT_MOD_PREFERRED helper modifier
2026-04-13 18:06 ` Ville Syrjälä
@ 2026-04-16 13:37 ` Maarten Lankhorst
2026-04-16 13:54 ` Ville Syrjälä
0 siblings, 1 reply; 9+ messages in thread
From: Maarten Lankhorst @ 2026-04-16 13:37 UTC (permalink / raw)
To: Ville Syrjälä, Jeevan B; +Cc: igt-dev, ramanaidu.naladala
Hey,
Den 2026-04-13 kl. 20:06, skrev Ville Syrjälä:
> On Mon, Apr 13, 2026 at 10:20:05PM +0530, Jeevan B wrote:
>> Add a new IGT‑internal framebuffer modifier,
>> IGT_FORMAT_MOD_PREFERRED, allowing tests to request the preferred
>> non‑linear tiling for a platform without hardcoding
>> driver‑specific modifiers.
>>
>> The modifier is resolved in igt_fb_resolve_modifier() using simple
>> platform rules (Intel, VC4, fallback to linear) and is never passed to
>> the kernel. It is defined outside the valid DRM modifier range and used
>> only as an internal sentinel.
>>
>> This provides a driver‑agnostic way for tests to pick an optimal
>> modifier, avoiding per‑test hacks.
>>
>> Signed-off-by: Jeevan B <jeevan.b@intel.com>
>> ---
>> lib/igt_fb.c | 27 ++++++++++++++++++++++++++-
>> lib/igt_fb.h | 21 +++++++++++++++++++++
>> 2 files changed, 47 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
>> index fa9220953..9c3d0338b 100644
>> --- a/lib/igt_fb.c
>> +++ b/lib/igt_fb.c
>> @@ -790,6 +790,29 @@ static int fb_num_planes(const struct igt_fb *fb)
>> return num_planes;
>> }
>>
>> +static uint64_t igt_fb_resolve_modifier(int fd, uint64_t modifier)
>> +{
>> + if (modifier != IGT_FORMAT_MOD_PREFERRED)
>> + return modifier;
>> +
>> + if (is_xe_device(fd)) {
>> + return I915_FORMAT_MOD_4_TILED;
>> + } else if (is_i915_device(fd)) {
>
> That is wrong for tgl/adl. I think i915 and xe need to use
> the same logic here.
>
>> + int ver = intel_display_ver(intel_get_drm_devid(fd));
>> +
>> + if (ver >= 13)
>> + return I915_FORMAT_MOD_4_TILED;
>
> Still borked for adl.
>
>> + else if (ver >= 9)
>> + return I915_FORMAT_MOD_Y_TILED;
>
> I don't think we want Y tile, at least on skl class hardware.
> It has much higher watermark requirements and could therefore
> prevent some tests from working.
>
>> + else
>> + return I915_FORMAT_MOD_X_TILED;
>
> I'm thinking we may want to prefer X tile on all the hardware
> that still has it. Though I suppose anything that has tile4 also
> has pretty large DDBs, so tile4 might be fine. Shrug.
>
>
> Anyways, this should perhaps just be something simple like
>
> if (display_has_format_mod(XRGB8888, X_TILE))
> return X_TILE;
> if (display_has_format_mod(XRGB8888, 4_TILE))
> return 4_TILE;
> return LINEAR;
>
> Doesn't even need any driver checks.
>
>
> Hmm. We might still prefer fenced GGTT access for X tile, so
> it might actually end up slowing down some things. We may
> need to change the policy to prefer a different method for
> tiled<->linear conversion even for X tile. It would be good
> get actual numbers on the overall execution time for whatever
> we choose here vs. LINEAR...
>
>> + } else if (is_vc4_device(fd))
>> + return DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED;
>> +
>> + /* For AMD, nouveau, and any other driver, fall back to linear. */
>> + return DRM_FORMAT_MOD_LINEAR;
>> +}
>> +
>> void igt_init_fb(struct igt_fb *fb, int fd, int width, int height,
>> uint32_t drm_format, uint64_t modifier,
>> enum igt_color_encoding color_encoding,
>> @@ -803,7 +826,7 @@ void igt_init_fb(struct igt_fb *fb, int fd, int width, int height,
>>
>> fb->width = width;
>> fb->height = height;
>> - fb->modifier = modifier;
>> + fb->modifier = igt_fb_resolve_modifier(fd, modifier);
>
> I think it should have been resolved long before that.
>
> AFAICS you could just add a display->preferred_modifier, figure out
> what that is during display init, and then switch tests to use that.
> No need for this magic IGT_FORMAT_MOD_PREFERRED at all then I think.
>
> And I'm thinking we might also want to print it out in the debug logs.
>
> And for some extra fun we could add a debug knob (maybe env variable,
> or a standard igt command line parameter) to force a specific modifier.
> This would allow running the test with a specific modifier, even if
> the test doesn't have explicit support for it.
>
> The downside of using !LINEAR is that we will now depend even
> more on all the magic stuff to convert between linear and tiled
> for software rendering. So we may end up running more code under
> the hood in most tests. I suppose we just have to hope that code
> doesn't have too many bugs.
The reason I chose IGT_FORMAT_MOD_PREFERRED is that is's a simple change
showing intention in the test, you don't care what the modifier is, just
that it's reasonably fast
On some drivers like nouveau, and maybe AMD the preferred modifier may
change depending on width/height/format, so there's no such thing as a
single display->preferred_modifier.
See #DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D.
The only place to resolve it, is during FB creation, hence the extra parameter.
>> fb->drm_format = drm_format;
>> fb->fd = fd;
>> fb->num_planes = fb_num_planes(fb);
>> @@ -5266,6 +5289,8 @@ void igt_format_array_fill(uint32_t **formats_array, unsigned int *count,
>> const char *igt_fb_modifier_name(uint64_t modifier)
>> {
>> switch (modifier) {
>> + case IGT_FORMAT_MOD_PREFERRED:
>> + return "preferred";
>> case DRM_FORMAT_MOD_LINEAR:
>> return "linear";
>> case I915_FORMAT_MOD_X_TILED:
>> diff --git a/lib/igt_fb.h b/lib/igt_fb.h
>> index 8e5907dab..5380b3dfa 100644
>> --- a/lib/igt_fb.h
>> +++ b/lib/igt_fb.h
>> @@ -50,6 +50,27 @@ typedef struct _igt_crc igt_crc_t;
>> */
>> #define IGT_FORMAT_FLOAT fourcc_code('I', 'G', 'F', 'x')
>>
>> +/**
>> + * IGT_FORMAT_MOD_PREFERRED:
>> + *
>> + * Modifier used by tests to request the best tiling format for the
>> + * current device. The actual modifier is selected inside igt_init_fb(),
>> + * so tests don’t need to handle driver-specific details.
>> + *
>> + * Selection rules:
>> + * - Intel Xe: 4_TILED
>> + * - Intel i915 (gen ≥13): 4_TILED
>> + * - Intel i915 (gen 9–12): Y_TILED
>> + * - Intel i915 (gen <9): X_TILED
>> + * - Broadcom VC4: T_TILED
>> + * - Others: LINEAR (fallback)
>> + *
>> + * Note: This is a special placeholder value and must never be sent to
>> + * the kernel.
>> + */
>> +#define IGT_FORMAT_MOD_PREFERRED UINT64_C(0xfffffffffffffffe)
>> +
>> +
>> #define IGT_FORMAT_FMT "%c%c%c%c(0x%08x)"
>> #define IGT_FORMAT_ARGS(f) ((f) >> 0) & 0xff, ((f) >> 8) & 0xff, \
>> ((f) >> 16) & 0xff, ((f) >> 24) & 0xff, (f)
>> --
>> 2.43.0
>
Kind regards,
~Maarten Lankhorst
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH i-g-t 1/2] lib/igt_fb: Add IGT_FORMAT_MOD_PREFERRED helper modifier
2026-04-16 13:37 ` Maarten Lankhorst
@ 2026-04-16 13:54 ` Ville Syrjälä
0 siblings, 0 replies; 9+ messages in thread
From: Ville Syrjälä @ 2026-04-16 13:54 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: Jeevan B, igt-dev, ramanaidu.naladala
On Thu, Apr 16, 2026 at 03:37:20PM +0200, Maarten Lankhorst wrote:
> Hey,
>
> Den 2026-04-13 kl. 20:06, skrev Ville Syrjälä:
> > On Mon, Apr 13, 2026 at 10:20:05PM +0530, Jeevan B wrote:
> >> Add a new IGT‑internal framebuffer modifier,
> >> IGT_FORMAT_MOD_PREFERRED, allowing tests to request the preferred
> >> non‑linear tiling for a platform without hardcoding
> >> driver‑specific modifiers.
> >>
> >> The modifier is resolved in igt_fb_resolve_modifier() using simple
> >> platform rules (Intel, VC4, fallback to linear) and is never passed to
> >> the kernel. It is defined outside the valid DRM modifier range and used
> >> only as an internal sentinel.
> >>
> >> This provides a driver‑agnostic way for tests to pick an optimal
> >> modifier, avoiding per‑test hacks.
> >>
> >> Signed-off-by: Jeevan B <jeevan.b@intel.com>
> >> ---
> >> lib/igt_fb.c | 27 ++++++++++++++++++++++++++-
> >> lib/igt_fb.h | 21 +++++++++++++++++++++
> >> 2 files changed, 47 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> >> index fa9220953..9c3d0338b 100644
> >> --- a/lib/igt_fb.c
> >> +++ b/lib/igt_fb.c
> >> @@ -790,6 +790,29 @@ static int fb_num_planes(const struct igt_fb *fb)
> >> return num_planes;
> >> }
> >>
> >> +static uint64_t igt_fb_resolve_modifier(int fd, uint64_t modifier)
> >> +{
> >> + if (modifier != IGT_FORMAT_MOD_PREFERRED)
> >> + return modifier;
> >> +
> >> + if (is_xe_device(fd)) {
> >> + return I915_FORMAT_MOD_4_TILED;
> >> + } else if (is_i915_device(fd)) {
> >
> > That is wrong for tgl/adl. I think i915 and xe need to use
> > the same logic here.
> >
> >> + int ver = intel_display_ver(intel_get_drm_devid(fd));
> >> +
> >> + if (ver >= 13)
> >> + return I915_FORMAT_MOD_4_TILED;
> >
> > Still borked for adl.
> >
> >> + else if (ver >= 9)
> >> + return I915_FORMAT_MOD_Y_TILED;
> >
> > I don't think we want Y tile, at least on skl class hardware.
> > It has much higher watermark requirements and could therefore
> > prevent some tests from working.
> >
> >> + else
> >> + return I915_FORMAT_MOD_X_TILED;
> >
> > I'm thinking we may want to prefer X tile on all the hardware
> > that still has it. Though I suppose anything that has tile4 also
> > has pretty large DDBs, so tile4 might be fine. Shrug.
> >
> >
> > Anyways, this should perhaps just be something simple like
> >
> > if (display_has_format_mod(XRGB8888, X_TILE))
> > return X_TILE;
> > if (display_has_format_mod(XRGB8888, 4_TILE))
> > return 4_TILE;
> > return LINEAR;
> >
> > Doesn't even need any driver checks.
> >
> >
> > Hmm. We might still prefer fenced GGTT access for X tile, so
> > it might actually end up slowing down some things. We may
> > need to change the policy to prefer a different method for
> > tiled<->linear conversion even for X tile. It would be good
> > get actual numbers on the overall execution time for whatever
> > we choose here vs. LINEAR...
> >
> >> + } else if (is_vc4_device(fd))
> >> + return DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED;
> >> +
> >> + /* For AMD, nouveau, and any other driver, fall back to linear. */
> >> + return DRM_FORMAT_MOD_LINEAR;
> >> +}
> >> +
> >> void igt_init_fb(struct igt_fb *fb, int fd, int width, int height,
> >> uint32_t drm_format, uint64_t modifier,
> >> enum igt_color_encoding color_encoding,
> >> @@ -803,7 +826,7 @@ void igt_init_fb(struct igt_fb *fb, int fd, int width, int height,
> >>
> >> fb->width = width;
> >> fb->height = height;
> >> - fb->modifier = modifier;
> >> + fb->modifier = igt_fb_resolve_modifier(fd, modifier);
> >
> > I think it should have been resolved long before that.
> >
> > AFAICS you could just add a display->preferred_modifier, figure out
> > what that is during display init, and then switch tests to use that.
> > No need for this magic IGT_FORMAT_MOD_PREFERRED at all then I think.
> >
> > And I'm thinking we might also want to print it out in the debug logs.
> >
> > And for some extra fun we could add a debug knob (maybe env variable,
> > or a standard igt command line parameter) to force a specific modifier.
> > This would allow running the test with a specific modifier, even if
> > the test doesn't have explicit support for it.
> >
> > The downside of using !LINEAR is that we will now depend even
> > more on all the magic stuff to convert between linear and tiled
> > for software rendering. So we may end up running more code under
> > the hood in most tests. I suppose we just have to hope that code
> > doesn't have too many bugs.
>
> The reason I chose IGT_FORMAT_MOD_PREFERRED is that is's a simple change
> showing intention in the test, you don't care what the modifier is, just
> that it's reasonably fast
>
> On some drivers like nouveau, and maybe AMD the preferred modifier may
> change depending on width/height/format, so there's no such thing as a
> single display->preferred_modifier.
>
> See #DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D.
>
> The only place to resolve it, is during FB creation, hence the extra parameter.
display->preferred_modifier wouldn't prevent that approach.
>
> >> fb->drm_format = drm_format;
> >> fb->fd = fd;
> >> fb->num_planes = fb_num_planes(fb);
> >> @@ -5266,6 +5289,8 @@ void igt_format_array_fill(uint32_t **formats_array, unsigned int *count,
> >> const char *igt_fb_modifier_name(uint64_t modifier)
> >> {
> >> switch (modifier) {
> >> + case IGT_FORMAT_MOD_PREFERRED:
> >> + return "preferred";
> >> case DRM_FORMAT_MOD_LINEAR:
> >> return "linear";
> >> case I915_FORMAT_MOD_X_TILED:
> >> diff --git a/lib/igt_fb.h b/lib/igt_fb.h
> >> index 8e5907dab..5380b3dfa 100644
> >> --- a/lib/igt_fb.h
> >> +++ b/lib/igt_fb.h
> >> @@ -50,6 +50,27 @@ typedef struct _igt_crc igt_crc_t;
> >> */
> >> #define IGT_FORMAT_FLOAT fourcc_code('I', 'G', 'F', 'x')
> >>
> >> +/**
> >> + * IGT_FORMAT_MOD_PREFERRED:
> >> + *
> >> + * Modifier used by tests to request the best tiling format for the
> >> + * current device. The actual modifier is selected inside igt_init_fb(),
> >> + * so tests don’t need to handle driver-specific details.
> >> + *
> >> + * Selection rules:
> >> + * - Intel Xe: 4_TILED
> >> + * - Intel i915 (gen ≥13): 4_TILED
> >> + * - Intel i915 (gen 9–12): Y_TILED
> >> + * - Intel i915 (gen <9): X_TILED
> >> + * - Broadcom VC4: T_TILED
> >> + * - Others: LINEAR (fallback)
> >> + *
> >> + * Note: This is a special placeholder value and must never be sent to
> >> + * the kernel.
> >> + */
> >> +#define IGT_FORMAT_MOD_PREFERRED UINT64_C(0xfffffffffffffffe)
> >> +
> >> +
> >> #define IGT_FORMAT_FMT "%c%c%c%c(0x%08x)"
> >> #define IGT_FORMAT_ARGS(f) ((f) >> 0) & 0xff, ((f) >> 8) & 0xff, \
> >> ((f) >> 16) & 0xff, ((f) >> 24) & 0xff, (f)
> >> --
> >> 2.43.0
> >
>
> Kind regards,
> ~Maarten Lankhorst
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-04-16 13:54 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-13 16:50 [PATCH i-g-t 0/2] RFC: Add preferred FB modifier helper Jeevan B
2026-04-13 16:50 ` [PATCH i-g-t 1/2] lib/igt_fb: Add IGT_FORMAT_MOD_PREFERRED helper modifier Jeevan B
2026-04-13 18:06 ` Ville Syrjälä
2026-04-16 13:37 ` Maarten Lankhorst
2026-04-16 13:54 ` Ville Syrjälä
2026-04-13 16:50 ` [PATCH i-g-t 2/2] HAX: kms_cursor_legacy: Use IGT_FORMAT_MOD_PREFERRED for cursor FBs Jeevan B
2026-04-14 0:48 ` ✗ i915.CI.BAT: failure for RFC: Add preferred FB modifier helper Patchwork
2026-04-14 1:24 ` ✗ Xe.CI.BAT: " Patchwork
2026-04-14 3:51 ` ✗ Xe.CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox