* [PATCH i-g-t 0/3] Add vmwgfx prime tests
@ 2024-05-09 19:15 Zack Rusin
2024-05-09 19:15 ` [PATCH i-g-t 1/3] tests/vmwgfx: Removing incorrect assert in mob_repeated_unref Zack Rusin
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Zack Rusin @ 2024-05-09 19:15 UTC (permalink / raw)
To: igt-dev; +Cc: ian.forbes, martin.krastev, maaz.mombasawala, Zack Rusin
The following series makes some adjustments for testing prime/dma-buf
on vmwgfx, adds a vmwgfx dedicated test for it and fixes some minor
issues.
Nothing too serioues and everything is contained within the vmwgfx
testing code.
Maaz Mombasawala (1):
tests/vmwgfx: Removing incorrect assert in mob_repeated_unref
Zack Rusin (2):
lib/vmwgfx: Allow using any buffer handle as a surface backing
tests/vmwgfx: Add a prime test
lib/igt_vmwgfx.c | 33 ++-
lib/igt_vmwgfx.h | 12 +-
tests/vmwgfx/meson.build | 3 +-
tests/vmwgfx/vmw_mob_stress.c | 5 +-
tests/vmwgfx/vmw_prime.c | 355 ++++++++++++++++++++++++++++++++
tests/vmwgfx/vmw_ref_count.c | 12 +-
tests/vmwgfx/vmw_surface_copy.c | 8 +-
tests/vmwgfx/vmw_tri.c | 12 +-
8 files changed, 402 insertions(+), 38 deletions(-)
create mode 100644 tests/vmwgfx/vmw_prime.c
--
2.40.1
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH i-g-t 1/3] tests/vmwgfx: Removing incorrect assert in mob_repeated_unref 2024-05-09 19:15 [PATCH i-g-t 0/3] Add vmwgfx prime tests Zack Rusin @ 2024-05-09 19:15 ` Zack Rusin 2024-05-13 14:01 ` Kamil Konieczny 2024-05-09 19:15 ` [PATCH i-g-t 2/3] lib/vmwgfx: Allow using any buffer handle as a surface backing Zack Rusin ` (4 subsequent siblings) 5 siblings, 1 reply; 9+ messages in thread From: Zack Rusin @ 2024-05-09 19:15 UTC (permalink / raw) To: igt-dev Cc: ian.forbes, martin.krastev, maaz.mombasawala, Maaz Mombasawala, Martin Krastev, Ian Forbes, Zack Rusin From: Maaz Mombasawala <mombasawalam@vmware.com> Remove an incorrect assert in test mob_repeated_unref that checked if return value from multiple unrefs of a mob was 0. This was a bug in the vmwgfx driver, since after the first unref it should return -EINVAL. This bug was fixed with buffer rework in the vmwgfx driver and now the unref ioctl behaves the correct way. Signed-off-by: Maaz Mombasawala <mombasawalam@vmware.com> Reviewed-by: Martin Krastev <krastevm@vmware.com> Reviewed-by: Ian Forbes <iforbes@vmware.com> Signed-off-by: Zack Rusin <zack.rusin@broadcom.com> --- tests/vmwgfx/vmw_ref_count.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/vmwgfx/vmw_ref_count.c b/tests/vmwgfx/vmw_ref_count.c index da4b41f89..92d49dbd0 100644 --- a/tests/vmwgfx/vmw_ref_count.c +++ b/tests/vmwgfx/vmw_ref_count.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 OR MIT /********************************************************** - * Copyright 2021-2022 VMware, Inc. + * Copyright 2021-2023 VMware, Inc. * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation @@ -256,13 +256,11 @@ igt_main /* Shouldn't crash on multiple invocations */ for (i = 0; i < 3; i++) { - int ret; struct drm_vmw_handle_close_arg arg = { .handle = mob->handle }; - ret = drmCommandWrite(fd1, DRM_VMW_HANDLE_CLOSE, &arg, + drmCommandWrite(fd1, DRM_VMW_HANDLE_CLOSE, &arg, sizeof(arg)); - igt_assert_eq(ret, 0); } free(mob); } -- 2.40.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH i-g-t 1/3] tests/vmwgfx: Removing incorrect assert in mob_repeated_unref 2024-05-09 19:15 ` [PATCH i-g-t 1/3] tests/vmwgfx: Removing incorrect assert in mob_repeated_unref Zack Rusin @ 2024-05-13 14:01 ` Kamil Konieczny 0 siblings, 0 replies; 9+ messages in thread From: Kamil Konieczny @ 2024-05-13 14:01 UTC (permalink / raw) To: igt-dev Cc: Zack Rusin, ian.forbes, martin.krastev, maaz.mombasawala, Maaz Mombasawala, Martin Krastev, Ian Forbes Hi Zack, On 2024-05-09 at 15:15:27 -0400, Zack Rusin wrote: > From: Maaz Mombasawala <mombasawalam@vmware.com> > > Remove an incorrect assert in test mob_repeated_unref that checked if return > value from multiple unrefs of a mob was 0. This was a bug in the vmwgfx driver, > since after the first unref it should return -EINVAL. > This bug was fixed with buffer rework in the vmwgfx driver and now the unref > ioctl behaves the correct way. > > Signed-off-by: Maaz Mombasawala <mombasawalam@vmware.com> > Reviewed-by: Martin Krastev <krastevm@vmware.com> > Reviewed-by: Ian Forbes <iforbes@vmware.com> > Signed-off-by: Zack Rusin <zack.rusin@broadcom.com> > --- > tests/vmwgfx/vmw_ref_count.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/tests/vmwgfx/vmw_ref_count.c b/tests/vmwgfx/vmw_ref_count.c > index da4b41f89..92d49dbd0 100644 > --- a/tests/vmwgfx/vmw_ref_count.c > +++ b/tests/vmwgfx/vmw_ref_count.c > @@ -1,6 +1,6 @@ > // SPDX-License-Identifier: GPL-2.0 OR MIT > /********************************************************** > - * Copyright 2021-2022 VMware, Inc. > + * Copyright 2021-2023 VMware, Inc. -------------------- ^^^^ This should be 2024. Regards, Kamil > * > * Permission is hereby granted, free of charge, to any person > * obtaining a copy of this software and associated documentation > @@ -256,13 +256,11 @@ igt_main > > /* Shouldn't crash on multiple invocations */ > for (i = 0; i < 3; i++) { > - int ret; > struct drm_vmw_handle_close_arg arg = { > .handle = mob->handle > }; > - ret = drmCommandWrite(fd1, DRM_VMW_HANDLE_CLOSE, &arg, > + drmCommandWrite(fd1, DRM_VMW_HANDLE_CLOSE, &arg, > sizeof(arg)); > - igt_assert_eq(ret, 0); > } > free(mob); > } > -- > 2.40.1 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH i-g-t 2/3] lib/vmwgfx: Allow using any buffer handle as a surface backing 2024-05-09 19:15 [PATCH i-g-t 0/3] Add vmwgfx prime tests Zack Rusin 2024-05-09 19:15 ` [PATCH i-g-t 1/3] tests/vmwgfx: Removing incorrect assert in mob_repeated_unref Zack Rusin @ 2024-05-09 19:15 ` Zack Rusin 2024-05-09 19:15 ` [PATCH i-g-t 3/3] tests/vmwgfx: Add a prime test Zack Rusin ` (3 subsequent siblings) 5 siblings, 0 replies; 9+ messages in thread From: Zack Rusin @ 2024-05-09 19:15 UTC (permalink / raw) To: igt-dev; +Cc: ian.forbes, martin.krastev, maaz.mombasawala, Zack Rusin Allow using any buffer handle as a surface backing to allow testing prime/dma-buf imports. This will allow addition of vmwgfx specific drm prime tests. The code always expected a mob structure created via the explicit alloc dmabuf ioctl which made using buffers created via dumb_buffer drm interface impossible. Signed-off-by: Zack Rusin <zack.rusin@broadcom.com> --- lib/igt_vmwgfx.c | 33 ++++++++++++++++----------------- lib/igt_vmwgfx.h | 12 ++++++++---- tests/vmwgfx/vmw_mob_stress.c | 5 ++++- tests/vmwgfx/vmw_ref_count.c | 6 +++--- tests/vmwgfx/vmw_surface_copy.c | 8 ++++---- tests/vmwgfx/vmw_tri.c | 12 ++++++++---- 6 files changed, 43 insertions(+), 33 deletions(-) diff --git a/lib/igt_vmwgfx.c b/lib/igt_vmwgfx.c index 12b07b4a8..d2f699575 100644 --- a/lib/igt_vmwgfx.c +++ b/lib/igt_vmwgfx.c @@ -427,7 +427,7 @@ struct vmw_surface *vmw_ioctl_buffer_create(int fd, SVGA3dSurfaceAllFlags flags, SVGA3dSize surface_size = { .width = size, .height = 1, .depth = 1 }; return vmw_create_surface_simple(fd, flags, SVGA3D_BUFFER, surface_size, - mob); + mob->handle); } /** @@ -454,7 +454,7 @@ struct vmw_surface *vmw_ioctl_create_surface_full( uint32 multisample_count, SVGA3dMSPattern multisample_pattern, SVGA3dMSQualityLevel quality_level, SVGA3dTextureFilter autogen_filter, uint32 num_mip_levels, uint32 array_size, SVGA3dSize size, - struct vmw_mob *mob, enum drm_vmw_surface_flags surface_flags) + uint32 buffer_handle, enum drm_vmw_surface_flags surface_flags) { struct vmw_surface *surface; int32 ret; @@ -470,10 +470,8 @@ struct vmw_surface *vmw_ioctl_create_surface_full( arg.req.base.array_size = array_size; arg.req.base.autogen_filter = autogen_filter; arg.req.base.drm_surface_flags |= surface_flags; - if (mob) { - arg.req.base.buffer_handle = mob->handle; - } else { - arg.req.base.buffer_handle = SVGA3D_INVALID_ID; + arg.req.base.buffer_handle = buffer_handle; + if (buffer_handle != SVGA3D_INVALID_ID) { arg.req.base.drm_surface_flags |= drm_vmw_surface_flag_create_buffer; } @@ -499,7 +497,6 @@ struct vmw_surface *vmw_ioctl_create_surface_full( } surface->base = arg.rep; - surface->mob = mob; return surface; out_err1: @@ -511,7 +508,7 @@ struct vmw_surface *vmw_create_surface_simple(int fd, SVGA3dSurfaceAllFlags flags, SVGA3dSurfaceFormat format, SVGA3dSize size, - struct vmw_mob *mob) + uint32 buffer_handle) { /* * TODO: @@ -531,7 +528,7 @@ struct vmw_surface *vmw_create_surface_simple(int fd, multisample_count, multisample_pattern, quality_level, SVGA3D_TEX_FILTER_NONE, 1, - array_size, size, mob, 0); + array_size, size, buffer_handle, 0); } /** @@ -921,14 +918,14 @@ void vmw_create_default_objects(struct vmw_svga_device *device, device->drm_fd, SVGA3D_SURFACE_HINT_TEXTURE | SVGA3D_SURFACE_HINT_RENDERTARGET | SVGA3D_SURFACE_BIND_RENDER_TARGET, - SVGA3D_R8G8B8A8_UNORM, *rt_size, NULL); + SVGA3D_R8G8B8A8_UNORM, *rt_size, SVGA3D_INVALID_ID); objects->depth_rt = vmw_create_surface_simple( device->drm_fd, SVGA3D_SURFACE_HINT_DEPTHSTENCIL | SVGA3D_SURFACE_HINT_RENDERTARGET | SVGA3D_SURFACE_BIND_DEPTH_STENCIL, - SVGA3D_R24G8_TYPELESS, *rt_size, NULL); + SVGA3D_R24G8_TYPELESS, *rt_size, SVGA3D_INVALID_ID); rtv_desc.tex.arraySize = 1; rtv_desc.tex.firstArraySlice = 0; @@ -1225,7 +1222,8 @@ void vmw_cmd_surface_copy(struct vmw_execbuf *cmd_buf, SVGA3dSurfaceImageId src, } uint8 *vmw_triangle_draw(struct vmw_svga_device *device, int32 cid, - struct vmw_default_objects *objects, bool do_sync) + struct vmw_default_objects *objects, + uint32_t draw_flags) { struct vmw_execbuf *cmd_buf; struct drm_vmw_fence_rep cmd_fence; @@ -1234,7 +1232,7 @@ uint8 *vmw_triangle_draw(struct vmw_svga_device *device, int32 cid, SVGA3dVertexBuffer vb_binding; SVGA3dRGBAFloat clear_color; void *vertex_data; - uint8 *rendered_img; + uint8 *rendered_img = NULL; struct vmw_vertex vertices[3] = { { 0.0, 0.75, 0.5, 1.0, 0.0, 1.0, 0.0, 1.0 }, { 0.75, -0.75, 0.5, 1.0, 1.0, 0.0, 0.0, 1.0 }, @@ -1281,19 +1279,20 @@ uint8 *vmw_triangle_draw(struct vmw_svga_device *device, int32 cid, /* Draw */ vmw_cmd_draw(cmd_buf, 3, 0); - vmw_cmd_draw(cmd_buf, 3, 0); /* Readback */ - vmw_cmd_readback_gb_surface(cmd_buf, objects->color_rt->base.handle); + if (draw_flags & vmw_triangle_draw_flags_readback) + vmw_cmd_readback_gb_surface(cmd_buf, objects->color_rt->base.handle); /* Submit commands */ vmw_execbuf_submit(cmd_buf, &cmd_fence); - if (do_sync) + if (draw_flags & vmw_triangle_draw_flags_sync) vmw_ioctl_fence_finish(device->drm_fd, &cmd_fence); vmw_execbuf_destroy(cmd_buf); /* Read framebuffer into system mem and save */ - rendered_img = vmw_readback_surface(device->drm_fd, objects->color_rt); + if (draw_flags & vmw_triangle_draw_flags_readback) + rendered_img = vmw_readback_surface(device->drm_fd, objects->color_rt); vmw_ioctl_surface_unref(device->drm_fd, vertex_buffer); vmw_ioctl_mob_close_handle(device->drm_fd, vertex_mob); diff --git a/lib/igt_vmwgfx.h b/lib/igt_vmwgfx.h index c8ed43bac..961aac389 100644 --- a/lib/igt_vmwgfx.h +++ b/lib/igt_vmwgfx.h @@ -115,7 +115,6 @@ struct vmw_mob { struct vmw_surface { struct drm_vmw_gb_surface_create_rep base; struct drm_vmw_gb_surface_create_ext_req params; - struct vmw_mob *mob; }; struct vmw_vertex { @@ -194,13 +193,13 @@ struct vmw_surface *vmw_ioctl_create_surface_full( uint32 multisample_count, SVGA3dMSPattern multisample_pattern, SVGA3dMSQualityLevel quality_level, SVGA3dTextureFilter autogen_filter, uint32 num_mip_levels, uint32 array_size, SVGA3dSize size, - struct vmw_mob *mob, enum drm_vmw_surface_flags surface_flags); + uint32 buffer_handle, enum drm_vmw_surface_flags surface_flags); struct vmw_surface *vmw_create_surface_simple(int fd, SVGA3dSurfaceAllFlags flags, SVGA3dSurfaceFormat format, SVGA3dSize size, - struct vmw_mob *mob); + uint32 buffer_handle); struct vmw_execbuf *vmw_execbuf_create(int drm_fd, int32_t cid); void vmw_execbuf_set_cid(struct vmw_execbuf *execbuf, int32_t cid); @@ -261,8 +260,13 @@ void vmw_cmd_surface_copy(struct vmw_execbuf *cmd_buf, SVGA3dSurfaceImageId src, SVGA3dSurfaceImageId dest, const SVGA3dCopyBox *boxes, uint32 num_boxes); +enum vmw_triangle_draw_flags { + vmw_triangle_draw_flags_none = 0, + vmw_triangle_draw_flags_sync = 1 << 0, + vmw_triangle_draw_flags_readback = 1 << 1, +}; uint8 *vmw_triangle_draw(struct vmw_svga_device *device, int32 cid, - struct vmw_default_objects *objects, bool do_sync); + struct vmw_default_objects *objects, uint32_t draw_flags); void vmw_triangle_assert_values(uint8 *rendered_img, struct vmw_surface *color_rt); diff --git a/tests/vmwgfx/vmw_mob_stress.c b/tests/vmwgfx/vmw_mob_stress.c index 4af23d6f7..2e6a9422c 100644 --- a/tests/vmwgfx/vmw_mob_stress.c +++ b/tests/vmwgfx/vmw_mob_stress.c @@ -35,7 +35,10 @@ static void test_triangle_render(struct vmw_svga_device *device, int32 cid) vmw_create_default_objects(device, cid, &objects, &vmw_default_rect_size); - rendered_tri = vmw_triangle_draw(device, cid, &objects, true); + rendered_tri = + vmw_triangle_draw(device, cid, &objects, + vmw_triangle_draw_flags_sync | + vmw_triangle_draw_flags_readback); vmw_triangle_assert_values(rendered_tri, objects.color_rt); free(rendered_tri); diff --git a/tests/vmwgfx/vmw_ref_count.c b/tests/vmwgfx/vmw_ref_count.c index 92d49dbd0..c765f2e70 100644 --- a/tests/vmwgfx/vmw_ref_count.c +++ b/tests/vmwgfx/vmw_ref_count.c @@ -72,7 +72,7 @@ create_and_write_shareable_surface(int32 fd, SVGA3dSize surface_size) surface = vmw_ioctl_create_surface_full( fd, SVGA3D_SURFACE_HINT_RENDERTARGET, SVGA3D_BUFFER, 0, SVGA3D_MS_PATTERN_NONE, SVGA3D_MS_QUALITY_NONE, - SVGA3D_TEX_FILTER_NONE, 1, 1, surface_size, NULL, + SVGA3D_TEX_FILTER_NONE, 1, 1, surface_size, SVGA3D_INVALID_ID, drm_vmw_surface_flag_shareable); mob.handle = surface->base.buffer_handle; @@ -125,7 +125,7 @@ igt_main surface = vmw_ioctl_create_surface_full( fd1, SVGA3D_SURFACE_HINT_RENDERTARGET, SVGA3D_BUFFER, 0, SVGA3D_MS_PATTERN_NONE, SVGA3D_MS_QUALITY_NONE, - SVGA3D_TEX_FILTER_NONE, 1, 1, surface_size, mob, + SVGA3D_TEX_FILTER_NONE, 1, 1, surface_size, mob->handle, drm_vmw_surface_flag_shareable); write_to_mob(fd1, mob); @@ -274,7 +274,7 @@ igt_main surface = vmw_ioctl_create_surface_full( fd1, SVGA3D_SURFACE_HINT_RENDERTARGET, SVGA3D_BUFFER, 0, SVGA3D_MS_PATTERN_NONE, SVGA3D_MS_QUALITY_NONE, - SVGA3D_TEX_FILTER_NONE, 1, 1, surface_size, NULL, + SVGA3D_TEX_FILTER_NONE, 1, 1, surface_size, SVGA3D_INVALID_ID, drm_vmw_surface_flag_shareable); /* Shouldn't crash on multiple invocations */ diff --git a/tests/vmwgfx/vmw_surface_copy.c b/tests/vmwgfx/vmw_surface_copy.c index 57e90334f..471de54aa 100644 --- a/tests/vmwgfx/vmw_surface_copy.c +++ b/tests/vmwgfx/vmw_surface_copy.c @@ -120,9 +120,9 @@ static void test_invalid_copies(int fd, int32 cid) vmw_is_format_supported(fd, SVGA3D_DEVCAP_SURFACEFMT_A8R8G8B8)); s1 = vmw_create_surface_simple(fd, 0, SVGA3D_A8R8G8B8, surface_size, - NULL); + SVGA3D_INVALID_ID); s2 = vmw_create_surface_simple(fd, 0, SVGA3D_A8R8G8B8, surface_size, - NULL); + SVGA3D_INVALID_ID); cmd_buf = vmw_execbuf_create(fd, cid); box.x = 0; @@ -271,8 +271,8 @@ static void test_invalid_copies_3d(int fd, int32 cid) igt_require(vmw_is_format_supported(fd, SVGA3D_DEVCAP_DXFMT_Z_D32)); s1 = vmw_create_surface_simple(fd, 0, SVGA3D_A8R8G8B8, surface_size, - NULL); - s2 = vmw_create_surface_simple(fd, 0, SVGA3D_Z_D32, surface_size, NULL); + SVGA3D_INVALID_ID); + s2 = vmw_create_surface_simple(fd, 0, SVGA3D_Z_D32, surface_size, SVGA3D_INVALID_ID); cmd_buf = vmw_execbuf_create(fd, cid); box.x = 0; diff --git a/tests/vmwgfx/vmw_tri.c b/tests/vmwgfx/vmw_tri.c index f5a59229c..61c4d5df8 100644 --- a/tests/vmwgfx/vmw_tri.c +++ b/tests/vmwgfx/vmw_tri.c @@ -36,7 +36,10 @@ static void draw_triangle(struct vmw_svga_device *device, int32 cid) vmw_create_default_objects(device, cid, &objects, &vmw_default_rect_size); - rendered_img = vmw_triangle_draw(device, cid, &objects, true); + rendered_img = + vmw_triangle_draw(device, cid, &objects, + vmw_triangle_draw_flags_sync | + vmw_triangle_draw_flags_readback); save_status = vmw_save_data_as_png(objects.color_rt, rendered_img, "vmw_tri.png"); @@ -65,7 +68,7 @@ static void replace_with_coherent_rt(struct vmw_svga_device *device, SVGA3D_SURFACE_BIND_RENDER_TARGET, SVGA3D_R8G8B8A8_UNORM, 0, SVGA3D_MS_PATTERN_NONE, SVGA3D_MS_QUALITY_NONE, SVGA3D_TEX_FILTER_NONE, 1, 1, *rt_size, - NULL, drm_vmw_surface_flag_coherent); + SVGA3D_INVALID_ID, drm_vmw_surface_flag_coherent); objects->depth_rt = vmw_ioctl_create_surface_full( device->drm_fd, @@ -74,7 +77,7 @@ static void replace_with_coherent_rt(struct vmw_svga_device *device, SVGA3D_SURFACE_BIND_DEPTH_STENCIL, SVGA3D_R24G8_TYPELESS, 0, SVGA3D_MS_PATTERN_NONE, SVGA3D_MS_QUALITY_NONE, SVGA3D_TEX_FILTER_NONE, 1, 1, *rt_size, - NULL, drm_vmw_surface_flag_coherent); + SVGA3D_INVALID_ID, drm_vmw_surface_flag_coherent); cmd_buf = vmw_execbuf_create(device->drm_fd, context_id); @@ -160,7 +163,8 @@ static void draw_triangle_on_coherent_rt(struct vmw_svga_device *device, default_ds_view_id = objects.ds_view_id; replace_with_coherent_rt(device, cid, &objects, &vmw_default_rect_size); - rendered_img = vmw_triangle_draw(device, cid, &objects, false); + rendered_img = vmw_triangle_draw(device, cid, &objects, + vmw_triangle_draw_flags_readback); vmw_triangle_assert_values(rendered_img, objects.color_rt); -- 2.40.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH i-g-t 3/3] tests/vmwgfx: Add a prime test 2024-05-09 19:15 [PATCH i-g-t 0/3] Add vmwgfx prime tests Zack Rusin 2024-05-09 19:15 ` [PATCH i-g-t 1/3] tests/vmwgfx: Removing incorrect assert in mob_repeated_unref Zack Rusin 2024-05-09 19:15 ` [PATCH i-g-t 2/3] lib/vmwgfx: Allow using any buffer handle as a surface backing Zack Rusin @ 2024-05-09 19:15 ` Zack Rusin 2024-05-10 12:29 ` Kamil Konieczny 2024-05-09 20:36 ` ✗ Fi.CI.BAT: failure for Add vmwgfx prime tests Patchwork ` (2 subsequent siblings) 5 siblings, 1 reply; 9+ messages in thread From: Zack Rusin @ 2024-05-09 19:15 UTC (permalink / raw) To: igt-dev; +Cc: ian.forbes, martin.krastev, maaz.mombasawala, Zack Rusin Add a test that check for various dma-buf/prime related issues that might show up on vmwgfx. Signed-off-by: Zack Rusin <zack.rusin@broadcom.com> --- tests/vmwgfx/meson.build | 3 +- tests/vmwgfx/vmw_prime.c | 355 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 357 insertions(+), 1 deletion(-) create mode 100644 tests/vmwgfx/vmw_prime.c diff --git a/tests/vmwgfx/meson.build b/tests/vmwgfx/meson.build index 073905f0a..716024381 100644 --- a/tests/vmwgfx/meson.build +++ b/tests/vmwgfx/meson.build @@ -4,7 +4,8 @@ vmwgfx_progs = [ 'vmw_execution_buffer', 'vmw_surface_copy', 'vmw_mob_stress', - 'vmw_ref_count' + 'vmw_ref_count', + 'vmw_prime' ] vmwgfx_deps = test_deps diff --git a/tests/vmwgfx/vmw_prime.c b/tests/vmwgfx/vmw_prime.c new file mode 100644 index 000000000..b9294517b --- /dev/null +++ b/tests/vmwgfx/vmw_prime.c @@ -0,0 +1,355 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/********************************************************** + * Copyright (c) 2024 Broadcom. All Rights Reserved. The term + * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. + * + * 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 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 "igt_vmwgfx.h" + +#include "igt_kms.h" + +IGT_TEST_DESCRIPTION( + "Check whether basic DRM prime and dma-buf work correctly."); + +static void replace_with_prime_rt(struct vmw_svga_device *device, + int32 context_id, uint32 buffer_handle, + struct vmw_default_objects *objects, + const SVGA3dSize *rt_size) +{ + struct vmw_execbuf *cmd_buf; + SVGA3dRenderTargetViewDesc rtv_desc = { 0 }; + SVGA3dCmdDXDefineRenderTargetView rt_view_define_cmd = { 0 }; + SVGA3dCmdDXDestroyRenderTargetView rt_view_cmd = { + .renderTargetViewId = objects->color_rt_id + }; + + vmw_ioctl_surface_unref(device->drm_fd, objects->color_rt); + objects->color_rt = vmw_ioctl_create_surface_full( + device->drm_fd, + SVGA3D_SURFACE_HINT_TEXTURE | SVGA3D_SURFACE_HINT_RENDERTARGET | + SVGA3D_SURFACE_BIND_RENDER_TARGET, + SVGA3D_R8G8B8A8_UNORM, 0, SVGA3D_MS_PATTERN_NONE, + SVGA3D_MS_QUALITY_NONE, SVGA3D_TEX_FILTER_NONE, 1, 1, *rt_size, + buffer_handle, drm_vmw_surface_flag_shareable); + + cmd_buf = vmw_execbuf_create(device->drm_fd, context_id); + + rtv_desc.tex.arraySize = 1; + rtv_desc.tex.firstArraySlice = 0; + rtv_desc.tex.mipSlice = 0; + vmw_bitvector_find_next_bit(device->rt_view_bv, + &rt_view_define_cmd.renderTargetViewId); + rt_view_define_cmd.sid = objects->color_rt->base.handle; + rt_view_define_cmd.format = SVGA3D_R8G8B8A8_UNORM; + rt_view_define_cmd.resourceDimension = SVGA3D_RESOURCE_TEXTURE2D; + rt_view_define_cmd.desc = rtv_desc; + vmw_execbuf_append(cmd_buf, SVGA_3D_CMD_DX_DESTROY_RENDERTARGET_VIEW, + &rt_view_cmd, sizeof(rt_view_cmd), NULL, 0); + vmw_execbuf_append(cmd_buf, SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW, + &rt_view_define_cmd, sizeof(rt_view_define_cmd), + NULL, 0); + vmw_execbuf_submit(cmd_buf, NULL); + vmw_execbuf_destroy(cmd_buf); + + vmw_bitvector_free_bit(device->rt_view_bv, objects->color_rt_id); + objects->color_rt_id = rt_view_define_cmd.renderTargetViewId; +} + +static void draw_triangle_map_gem(struct vmw_svga_device *mdevice, + struct vmw_svga_device *device, int32 cid) +{ + struct vmw_default_objects objects; + void *ptr; + bool save_status; + int fd, imported_handle, gem_handle; + uint64_t gem_size; + + gem_handle = kmstest_dumb_create(mdevice->drm_fd, + vmw_default_rect_size.width, + vmw_default_rect_size.height, 32, NULL, + &gem_size); + fd = prime_handle_to_fd(mdevice->drm_fd, gem_handle); + imported_handle = prime_fd_to_handle(device->drm_fd, fd); + + vmw_create_default_objects(device, cid, &objects, + &vmw_default_rect_size); + replace_with_prime_rt(device, cid, imported_handle, &objects, + &vmw_default_rect_size); + vmw_triangle_draw(device, cid, &objects, + vmw_triangle_draw_flags_sync | + vmw_triangle_draw_flags_readback); + + ptr = kmstest_dumb_map_buffer(mdevice->drm_fd, gem_handle, gem_size, + PROT_READ); + + save_status = vmw_save_data_as_png(objects.color_rt, ptr, + "vmw_prime_tri1.png"); + igt_assert(save_status); + vmw_triangle_assert_values(ptr, objects.color_rt); + + munmap(ptr, gem_size); + + vmw_destroy_default_objects(device, &objects); + kmstest_dumb_destroy(mdevice->drm_fd, gem_handle); +} + +static void draw_triangle_map_dmabuf(struct vmw_svga_device *mdevice, + struct vmw_svga_device *device, int32 cid) +{ + struct vmw_default_objects objects; + void *ptr; + bool save_status; + int fd, imported_handle, gem_handle; + uint64_t gem_size; + + gem_handle = kmstest_dumb_create(mdevice->drm_fd, + vmw_default_rect_size.width, + vmw_default_rect_size.height, 32, NULL, + &gem_size); + fd = prime_handle_to_fd_for_mmap(mdevice->drm_fd, gem_handle); + kmstest_dumb_destroy(mdevice->drm_fd, gem_handle); + imported_handle = prime_fd_to_handle(device->drm_fd, fd); + + vmw_create_default_objects(device, cid, &objects, + &vmw_default_rect_size); + replace_with_prime_rt(device, cid, imported_handle, &objects, + &vmw_default_rect_size); + vmw_triangle_draw(device, cid, &objects, + vmw_triangle_draw_flags_sync | + vmw_triangle_draw_flags_readback); + + ptr = mmap(NULL, gem_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); + + save_status = vmw_save_data_as_png(objects.color_rt, ptr, + "vmw_prime_tri2.png"); + igt_assert(save_status); + vmw_triangle_assert_values(ptr, objects.color_rt); + + munmap(ptr, gem_size); + close(fd); + + vmw_destroy_default_objects(device, &objects); +} + +typedef struct { + struct vmw_svga_device mdevice; + struct vmw_svga_device rdevice; + int32 cid; + igt_display_t display; + struct igt_fb fb; + igt_output_t *output; + igt_plane_t *primary; + enum pipe pipe; + igt_crc_t reference_tri_crc; +} gpu_process_t; + +static void cleanup_crtc(gpu_process_t *gpu) +{ + igt_display_t *display = &gpu->display; + igt_output_t *output = gpu->output; + + igt_plane_set_fb(gpu->primary, NULL); + + igt_output_set_pipe(output, PIPE_ANY); + igt_display_commit(display); + + igt_remove_fb(gpu->mdevice.drm_fd, &gpu->fb); +} + +static void prepare_crtc(gpu_process_t *gpu) +{ + igt_display_t *display = &gpu->display; + igt_output_t *output = gpu->output; + drmModeModeInfo *mode; + int ret; + + /* select the pipe we want to use */ + igt_output_set_pipe(output, gpu->pipe); + + mode = igt_output_get_mode(output); + + /* create a white fb and flip to it */ + igt_create_color_fb(gpu->mdevice.drm_fd, mode->hdisplay, mode->vdisplay, + DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, 1.0, + 1.0, 1.0, &gpu->fb); + + gpu->primary = + igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); + + igt_plane_set_fb(gpu->primary, &gpu->fb); + ret = igt_display_commit(display); + igt_assert(ret == 0); +} + +static void run_renderer(struct vmw_svga_device *device, int prime_fd, int cid, + int fb_size, int width, int height, + uint32_t draw_flags) +{ + struct vmw_default_objects objects; + int imported_handle; + SVGA3dSize rt_size = { 0 }; + + rt_size.width = width; + rt_size.height = height; + rt_size.depth = 1; + + imported_handle = prime_fd_to_handle(device->drm_fd, prime_fd); + + vmw_create_default_objects(device, cid, &objects, &rt_size); + replace_with_prime_rt(device, cid, imported_handle, &objects, &rt_size); + vmw_triangle_draw(device, cid, &objects, draw_flags); + + vmw_destroy_default_objects(device, &objects); +} + +static void draw_triangle_3d(gpu_process_t *gpu, uint32_t draw_flags) +{ + igt_display_t *display = &gpu->display; + igt_output_t *output; + enum pipe pipe; + igt_pipe_crc_t *pipe_crc; + igt_crc_t blank_crc, tri_crc; + char *blank_crc_str, *tri_crc_str; + bool crc_equal; + + for_each_pipe_with_valid_output(display, pipe, output) { + int prime_fd; + + gpu->output = output; + gpu->pipe = pipe; + + prepare_crtc(gpu); + pipe_crc = igt_pipe_crc_new(gpu->mdevice.drm_fd, pipe, + IGT_PIPE_CRC_SOURCE_AUTO); + igt_pipe_crc_collect_crc(pipe_crc, &blank_crc); + + prime_fd = prime_handle_to_fd_for_mmap(gpu->mdevice.drm_fd, + gpu->fb.gem_handle); + igt_skip_on(prime_fd == -1 && errno == EINVAL); + + igt_fork(renderer_no, 1) + { + run_renderer(&gpu->rdevice, prime_fd, gpu->cid, + gpu->fb.size, gpu->fb.width, + gpu->fb.height, draw_flags); + } + igt_waitchildren(); + + igt_plane_set_fb(gpu->primary, &gpu->fb); + igt_display_commit(display); + igt_pipe_crc_collect_crc(pipe_crc, &tri_crc); + blank_crc_str = igt_crc_to_string(&blank_crc); + tri_crc_str = igt_crc_to_string(&tri_crc); + + igt_debug("Blank crc = '%s', tri = '%s\n'", blank_crc_str, + tri_crc_str); + crc_equal = igt_check_crc_equal(&blank_crc, &tri_crc); + igt_assert_f( + !crc_equal, + "Blank and rendered triangle CRCs should be different.\n"); + if (draw_flags == (vmw_triangle_draw_flags_sync | + vmw_triangle_draw_flags_readback)) { + memcpy(&gpu->reference_tri_crc, &tri_crc, + sizeof(gpu->reference_tri_crc)); + } else if (gpu->reference_tri_crc.has_valid_frame) { + igt_assert_crc_equal(&gpu->reference_tri_crc, &tri_crc); + } + + igt_debug_wait_for_keypress("paint"); + + close(prime_fd); + igt_pipe_crc_free(pipe_crc); + cleanup_crtc(gpu); + free(blank_crc_str); + free(tri_crc_str); + /* once is enough */ + return; + } + + igt_skip("no valid crtc/connector combinations found\n"); +} + +igt_main +{ + gpu_process_t gpu = { 0 }; + + igt_fixture + { + vmw_svga_device_init(&gpu.mdevice, vmw_svga_device_node_master); + vmw_svga_device_init(&gpu.rdevice, vmw_svga_device_node_render); + igt_require(gpu.mdevice.drm_fd != -1); + igt_require(gpu.rdevice.drm_fd != -1); + + gpu.cid = vmw_ioctl_context_create(gpu.rdevice.drm_fd); + igt_require(gpu.cid != SVGA3D_INVALID_ID); + + kmstest_set_vt_graphics_mode(); + + igt_require_pipe_crc(gpu.mdevice.drm_fd); + + igt_display_require(&gpu.display, gpu.mdevice.drm_fd); + } + + igt_describe("Tests prime rendering triangle with gem mmap."); + igt_subtest("tri-map-gem") + { + draw_triangle_map_gem(&gpu.mdevice, &gpu.rdevice, gpu.cid); + } + + igt_describe("Tests prime rendering triangle with dmabuf mmap."); + igt_subtest("tri-map-dmabuf") + { + draw_triangle_map_dmabuf(&gpu.mdevice, &gpu.rdevice, gpu.cid); + } + + igt_describe( + "Tests synchronous/readback prime rendering triangle while buffer bound to fb"); + igt_subtest("buffer-surface-fb-sharing-sync-readback") + { + draw_triangle_3d(&gpu, + vmw_triangle_draw_flags_sync | + vmw_triangle_draw_flags_readback); + } + + igt_describe( + "Tests synchronous prime rendering triangle while buffer bound to fb"); + igt_subtest("buffer-surface-fb-sharing-sync") + { + draw_triangle_3d(&gpu, vmw_triangle_draw_flags_sync); + } + + igt_describe("Tests prime rendering triangle while buffer bound to fb"); + igt_subtest("buffer-surface-fb-sharing") + { + draw_triangle_3d(&gpu, vmw_triangle_draw_flags_none); + } + + igt_fixture + { + vmw_ioctl_context_destroy(gpu.rdevice.drm_fd, gpu.cid); + igt_display_fini(&gpu.display); + vmw_svga_device_fini(&gpu.rdevice); + vmw_svga_device_fini(&gpu.mdevice); + } +} -- 2.40.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH i-g-t 3/3] tests/vmwgfx: Add a prime test 2024-05-09 19:15 ` [PATCH i-g-t 3/3] tests/vmwgfx: Add a prime test Zack Rusin @ 2024-05-10 12:29 ` Kamil Konieczny 0 siblings, 0 replies; 9+ messages in thread From: Kamil Konieczny @ 2024-05-10 12:29 UTC (permalink / raw) To: igt-dev; +Cc: Zack Rusin, ian.forbes, martin.krastev, maaz.mombasawala Hi Zack, On 2024-05-09 at 15:15:29 -0400, Zack Rusin wrote: > Add a test that check for various dma-buf/prime related issues that might > show up on vmwgfx. > > Signed-off-by: Zack Rusin <zack.rusin@broadcom.com> > --- > tests/vmwgfx/meson.build | 3 +- > tests/vmwgfx/vmw_prime.c | 355 +++++++++++++++++++++++++++++++++++++++ > 2 files changed, 357 insertions(+), 1 deletion(-) > create mode 100644 tests/vmwgfx/vmw_prime.c > > diff --git a/tests/vmwgfx/meson.build b/tests/vmwgfx/meson.build > index 073905f0a..716024381 100644 > --- a/tests/vmwgfx/meson.build > +++ b/tests/vmwgfx/meson.build > @@ -4,7 +4,8 @@ vmwgfx_progs = [ > 'vmw_execution_buffer', > 'vmw_surface_copy', > 'vmw_mob_stress', > - 'vmw_ref_count' > + 'vmw_ref_count', > + 'vmw_prime' 'prime' should be before 'ref_count' Btw rest of vmw tests should also be sorted... > ] > vmwgfx_deps = test_deps > > diff --git a/tests/vmwgfx/vmw_prime.c b/tests/vmwgfx/vmw_prime.c > new file mode 100644 > index 000000000..b9294517b > --- /dev/null > +++ b/tests/vmwgfx/vmw_prime.c > @@ -0,0 +1,355 @@ > +// SPDX-License-Identifier: GPL-2.0 OR MIT Could it be MIT? > +/********************************************************** > + * Copyright (c) 2024 Broadcom. All Rights Reserved. The term Delete this, SPDX replaced it. > + * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. > + * > + * 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 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 "igt_vmwgfx.h" > + Delete this empty line. > +#include "igt_kms.h" 'kms.h' should be before 'vmwgfxh'. Regards, Kamil > + > +IGT_TEST_DESCRIPTION( > + "Check whether basic DRM prime and dma-buf work correctly."); > + > +static void replace_with_prime_rt(struct vmw_svga_device *device, > + int32 context_id, uint32 buffer_handle, > + struct vmw_default_objects *objects, > + const SVGA3dSize *rt_size) > +{ > + struct vmw_execbuf *cmd_buf; > + SVGA3dRenderTargetViewDesc rtv_desc = { 0 }; > + SVGA3dCmdDXDefineRenderTargetView rt_view_define_cmd = { 0 }; > + SVGA3dCmdDXDestroyRenderTargetView rt_view_cmd = { > + .renderTargetViewId = objects->color_rt_id > + }; > + > + vmw_ioctl_surface_unref(device->drm_fd, objects->color_rt); > + objects->color_rt = vmw_ioctl_create_surface_full( > + device->drm_fd, > + SVGA3D_SURFACE_HINT_TEXTURE | SVGA3D_SURFACE_HINT_RENDERTARGET | > + SVGA3D_SURFACE_BIND_RENDER_TARGET, > + SVGA3D_R8G8B8A8_UNORM, 0, SVGA3D_MS_PATTERN_NONE, > + SVGA3D_MS_QUALITY_NONE, SVGA3D_TEX_FILTER_NONE, 1, 1, *rt_size, > + buffer_handle, drm_vmw_surface_flag_shareable); > + > + cmd_buf = vmw_execbuf_create(device->drm_fd, context_id); > + > + rtv_desc.tex.arraySize = 1; > + rtv_desc.tex.firstArraySlice = 0; > + rtv_desc.tex.mipSlice = 0; > + vmw_bitvector_find_next_bit(device->rt_view_bv, > + &rt_view_define_cmd.renderTargetViewId); > + rt_view_define_cmd.sid = objects->color_rt->base.handle; > + rt_view_define_cmd.format = SVGA3D_R8G8B8A8_UNORM; > + rt_view_define_cmd.resourceDimension = SVGA3D_RESOURCE_TEXTURE2D; > + rt_view_define_cmd.desc = rtv_desc; > + vmw_execbuf_append(cmd_buf, SVGA_3D_CMD_DX_DESTROY_RENDERTARGET_VIEW, > + &rt_view_cmd, sizeof(rt_view_cmd), NULL, 0); > + vmw_execbuf_append(cmd_buf, SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW, > + &rt_view_define_cmd, sizeof(rt_view_define_cmd), > + NULL, 0); > + vmw_execbuf_submit(cmd_buf, NULL); > + vmw_execbuf_destroy(cmd_buf); > + > + vmw_bitvector_free_bit(device->rt_view_bv, objects->color_rt_id); > + objects->color_rt_id = rt_view_define_cmd.renderTargetViewId; > +} > + > +static void draw_triangle_map_gem(struct vmw_svga_device *mdevice, > + struct vmw_svga_device *device, int32 cid) > +{ > + struct vmw_default_objects objects; > + void *ptr; > + bool save_status; > + int fd, imported_handle, gem_handle; > + uint64_t gem_size; > + > + gem_handle = kmstest_dumb_create(mdevice->drm_fd, > + vmw_default_rect_size.width, > + vmw_default_rect_size.height, 32, NULL, > + &gem_size); > + fd = prime_handle_to_fd(mdevice->drm_fd, gem_handle); > + imported_handle = prime_fd_to_handle(device->drm_fd, fd); > + > + vmw_create_default_objects(device, cid, &objects, > + &vmw_default_rect_size); > + replace_with_prime_rt(device, cid, imported_handle, &objects, > + &vmw_default_rect_size); > + vmw_triangle_draw(device, cid, &objects, > + vmw_triangle_draw_flags_sync | > + vmw_triangle_draw_flags_readback); > + > + ptr = kmstest_dumb_map_buffer(mdevice->drm_fd, gem_handle, gem_size, > + PROT_READ); > + > + save_status = vmw_save_data_as_png(objects.color_rt, ptr, > + "vmw_prime_tri1.png"); > + igt_assert(save_status); > + vmw_triangle_assert_values(ptr, objects.color_rt); > + > + munmap(ptr, gem_size); > + > + vmw_destroy_default_objects(device, &objects); > + kmstest_dumb_destroy(mdevice->drm_fd, gem_handle); > +} > + > +static void draw_triangle_map_dmabuf(struct vmw_svga_device *mdevice, > + struct vmw_svga_device *device, int32 cid) > +{ > + struct vmw_default_objects objects; > + void *ptr; > + bool save_status; > + int fd, imported_handle, gem_handle; > + uint64_t gem_size; > + > + gem_handle = kmstest_dumb_create(mdevice->drm_fd, > + vmw_default_rect_size.width, > + vmw_default_rect_size.height, 32, NULL, > + &gem_size); > + fd = prime_handle_to_fd_for_mmap(mdevice->drm_fd, gem_handle); > + kmstest_dumb_destroy(mdevice->drm_fd, gem_handle); > + imported_handle = prime_fd_to_handle(device->drm_fd, fd); > + > + vmw_create_default_objects(device, cid, &objects, > + &vmw_default_rect_size); > + replace_with_prime_rt(device, cid, imported_handle, &objects, > + &vmw_default_rect_size); > + vmw_triangle_draw(device, cid, &objects, > + vmw_triangle_draw_flags_sync | > + vmw_triangle_draw_flags_readback); > + > + ptr = mmap(NULL, gem_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); > + > + save_status = vmw_save_data_as_png(objects.color_rt, ptr, > + "vmw_prime_tri2.png"); > + igt_assert(save_status); > + vmw_triangle_assert_values(ptr, objects.color_rt); > + > + munmap(ptr, gem_size); > + close(fd); > + > + vmw_destroy_default_objects(device, &objects); > +} > + > +typedef struct { > + struct vmw_svga_device mdevice; > + struct vmw_svga_device rdevice; > + int32 cid; > + igt_display_t display; > + struct igt_fb fb; > + igt_output_t *output; > + igt_plane_t *primary; > + enum pipe pipe; > + igt_crc_t reference_tri_crc; > +} gpu_process_t; > + > +static void cleanup_crtc(gpu_process_t *gpu) > +{ > + igt_display_t *display = &gpu->display; > + igt_output_t *output = gpu->output; > + > + igt_plane_set_fb(gpu->primary, NULL); > + > + igt_output_set_pipe(output, PIPE_ANY); > + igt_display_commit(display); > + > + igt_remove_fb(gpu->mdevice.drm_fd, &gpu->fb); > +} > + > +static void prepare_crtc(gpu_process_t *gpu) > +{ > + igt_display_t *display = &gpu->display; > + igt_output_t *output = gpu->output; > + drmModeModeInfo *mode; > + int ret; > + > + /* select the pipe we want to use */ > + igt_output_set_pipe(output, gpu->pipe); > + > + mode = igt_output_get_mode(output); > + > + /* create a white fb and flip to it */ > + igt_create_color_fb(gpu->mdevice.drm_fd, mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, 1.0, > + 1.0, 1.0, &gpu->fb); > + > + gpu->primary = > + igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); > + > + igt_plane_set_fb(gpu->primary, &gpu->fb); > + ret = igt_display_commit(display); > + igt_assert(ret == 0); > +} > + > +static void run_renderer(struct vmw_svga_device *device, int prime_fd, int cid, > + int fb_size, int width, int height, > + uint32_t draw_flags) > +{ > + struct vmw_default_objects objects; > + int imported_handle; > + SVGA3dSize rt_size = { 0 }; > + > + rt_size.width = width; > + rt_size.height = height; > + rt_size.depth = 1; > + > + imported_handle = prime_fd_to_handle(device->drm_fd, prime_fd); > + > + vmw_create_default_objects(device, cid, &objects, &rt_size); > + replace_with_prime_rt(device, cid, imported_handle, &objects, &rt_size); > + vmw_triangle_draw(device, cid, &objects, draw_flags); > + > + vmw_destroy_default_objects(device, &objects); > +} > + > +static void draw_triangle_3d(gpu_process_t *gpu, uint32_t draw_flags) > +{ > + igt_display_t *display = &gpu->display; > + igt_output_t *output; > + enum pipe pipe; > + igt_pipe_crc_t *pipe_crc; > + igt_crc_t blank_crc, tri_crc; > + char *blank_crc_str, *tri_crc_str; > + bool crc_equal; > + > + for_each_pipe_with_valid_output(display, pipe, output) { > + int prime_fd; > + > + gpu->output = output; > + gpu->pipe = pipe; > + > + prepare_crtc(gpu); > + pipe_crc = igt_pipe_crc_new(gpu->mdevice.drm_fd, pipe, > + IGT_PIPE_CRC_SOURCE_AUTO); > + igt_pipe_crc_collect_crc(pipe_crc, &blank_crc); > + > + prime_fd = prime_handle_to_fd_for_mmap(gpu->mdevice.drm_fd, > + gpu->fb.gem_handle); > + igt_skip_on(prime_fd == -1 && errno == EINVAL); > + > + igt_fork(renderer_no, 1) > + { > + run_renderer(&gpu->rdevice, prime_fd, gpu->cid, > + gpu->fb.size, gpu->fb.width, > + gpu->fb.height, draw_flags); > + } > + igt_waitchildren(); > + > + igt_plane_set_fb(gpu->primary, &gpu->fb); > + igt_display_commit(display); > + igt_pipe_crc_collect_crc(pipe_crc, &tri_crc); > + blank_crc_str = igt_crc_to_string(&blank_crc); > + tri_crc_str = igt_crc_to_string(&tri_crc); > + > + igt_debug("Blank crc = '%s', tri = '%s\n'", blank_crc_str, > + tri_crc_str); > + crc_equal = igt_check_crc_equal(&blank_crc, &tri_crc); > + igt_assert_f( > + !crc_equal, > + "Blank and rendered triangle CRCs should be different.\n"); > + if (draw_flags == (vmw_triangle_draw_flags_sync | > + vmw_triangle_draw_flags_readback)) { > + memcpy(&gpu->reference_tri_crc, &tri_crc, > + sizeof(gpu->reference_tri_crc)); > + } else if (gpu->reference_tri_crc.has_valid_frame) { > + igt_assert_crc_equal(&gpu->reference_tri_crc, &tri_crc); > + } > + > + igt_debug_wait_for_keypress("paint"); > + > + close(prime_fd); > + igt_pipe_crc_free(pipe_crc); > + cleanup_crtc(gpu); > + free(blank_crc_str); > + free(tri_crc_str); > + /* once is enough */ > + return; > + } > + > + igt_skip("no valid crtc/connector combinations found\n"); > +} > + > +igt_main > +{ > + gpu_process_t gpu = { 0 }; > + > + igt_fixture > + { > + vmw_svga_device_init(&gpu.mdevice, vmw_svga_device_node_master); > + vmw_svga_device_init(&gpu.rdevice, vmw_svga_device_node_render); > + igt_require(gpu.mdevice.drm_fd != -1); > + igt_require(gpu.rdevice.drm_fd != -1); > + > + gpu.cid = vmw_ioctl_context_create(gpu.rdevice.drm_fd); > + igt_require(gpu.cid != SVGA3D_INVALID_ID); > + > + kmstest_set_vt_graphics_mode(); > + > + igt_require_pipe_crc(gpu.mdevice.drm_fd); > + > + igt_display_require(&gpu.display, gpu.mdevice.drm_fd); > + } > + > + igt_describe("Tests prime rendering triangle with gem mmap."); > + igt_subtest("tri-map-gem") > + { > + draw_triangle_map_gem(&gpu.mdevice, &gpu.rdevice, gpu.cid); > + } > + > + igt_describe("Tests prime rendering triangle with dmabuf mmap."); > + igt_subtest("tri-map-dmabuf") > + { > + draw_triangle_map_dmabuf(&gpu.mdevice, &gpu.rdevice, gpu.cid); > + } > + > + igt_describe( > + "Tests synchronous/readback prime rendering triangle while buffer bound to fb"); > + igt_subtest("buffer-surface-fb-sharing-sync-readback") > + { > + draw_triangle_3d(&gpu, > + vmw_triangle_draw_flags_sync | > + vmw_triangle_draw_flags_readback); > + } > + > + igt_describe( > + "Tests synchronous prime rendering triangle while buffer bound to fb"); > + igt_subtest("buffer-surface-fb-sharing-sync") > + { > + draw_triangle_3d(&gpu, vmw_triangle_draw_flags_sync); > + } > + > + igt_describe("Tests prime rendering triangle while buffer bound to fb"); > + igt_subtest("buffer-surface-fb-sharing") > + { > + draw_triangle_3d(&gpu, vmw_triangle_draw_flags_none); > + } > + > + igt_fixture > + { > + vmw_ioctl_context_destroy(gpu.rdevice.drm_fd, gpu.cid); > + igt_display_fini(&gpu.display); > + vmw_svga_device_fini(&gpu.rdevice); > + vmw_svga_device_fini(&gpu.mdevice); > + } > +} > -- > 2.40.1 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* ✗ Fi.CI.BAT: failure for Add vmwgfx prime tests 2024-05-09 19:15 [PATCH i-g-t 0/3] Add vmwgfx prime tests Zack Rusin ` (2 preceding siblings ...) 2024-05-09 19:15 ` [PATCH i-g-t 3/3] tests/vmwgfx: Add a prime test Zack Rusin @ 2024-05-09 20:36 ` Patchwork 2024-05-09 20:48 ` ✓ CI.xeBAT: success " Patchwork 2024-05-10 1:26 ` ✗ CI.xeFULL: failure " Patchwork 5 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2024-05-09 20:36 UTC (permalink / raw) To: Zack Rusin; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 2189 bytes --] == Series Details == Series: Add vmwgfx prime tests URL : https://patchwork.freedesktop.org/series/133402/ State : failure == Summary == CI Bug Log - changes from CI_DRM_14740 -> IGTPW_11121 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_11121 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_11121, 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_11121/index.html Participating hosts (38 -> 37) ------------------------------ Missing (1): fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_11121: ### IGT changes ### #### Possible regressions #### * igt@i915_module_load@reload: - bat-atsm-1: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14740/bat-atsm-1/igt@i915_module_load@reload.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11121/bat-atsm-1/igt@i915_module_load@reload.html Known issues ------------ Here are the changes found in IGTPW_11121 that come from known issues: ### IGT changes ### {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#10911]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10911 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7846 -> IGTPW_11121 CI-20190529: 20190529 CI_DRM_14740: fa0763ee56bac0fea0c399b9f41f19439b07b616 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_11121: dede7eb874dc4abbb3449a6c02fc42e852e62485 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_7846: 4a5fd4e7cb2798636f6464e2bd61399f3242b322 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11121/index.html [-- Attachment #2: Type: text/html, Size: 2723 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* ✓ CI.xeBAT: success for Add vmwgfx prime tests 2024-05-09 19:15 [PATCH i-g-t 0/3] Add vmwgfx prime tests Zack Rusin ` (3 preceding siblings ...) 2024-05-09 20:36 ` ✗ Fi.CI.BAT: failure for Add vmwgfx prime tests Patchwork @ 2024-05-09 20:48 ` Patchwork 2024-05-10 1:26 ` ✗ CI.xeFULL: failure " Patchwork 5 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2024-05-09 20:48 UTC (permalink / raw) To: Zack Rusin; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 1136 bytes --] == Series Details == Series: Add vmwgfx prime tests URL : https://patchwork.freedesktop.org/series/133402/ State : success == Summary == CI Bug Log - changes from XEIGT_7846_BAT -> XEIGTPW_11121_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (5 -> 5) ------------------------------ No changes in participating hosts Changes ------- No changes found Build changes ------------- * IGT: IGT_7846 -> IGTPW_11121 * Linux: xe-1263-92f877dd46245e4a44b6d24b5e303b8c03c40c75 -> xe-1265-2756f0412a64d4a3bedfb79b868fbd8c313ed027 IGTPW_11121: dede7eb874dc4abbb3449a6c02fc42e852e62485 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_7846: 4a5fd4e7cb2798636f6464e2bd61399f3242b322 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-1263-92f877dd46245e4a44b6d24b5e303b8c03c40c75: 92f877dd46245e4a44b6d24b5e303b8c03c40c75 xe-1265-2756f0412a64d4a3bedfb79b868fbd8c313ed027: 2756f0412a64d4a3bedfb79b868fbd8c313ed027 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/index.html [-- Attachment #2: Type: text/html, Size: 1695 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* ✗ CI.xeFULL: failure for Add vmwgfx prime tests 2024-05-09 19:15 [PATCH i-g-t 0/3] Add vmwgfx prime tests Zack Rusin ` (4 preceding siblings ...) 2024-05-09 20:48 ` ✓ CI.xeBAT: success " Patchwork @ 2024-05-10 1:26 ` Patchwork 5 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2024-05-10 1:26 UTC (permalink / raw) To: Zack Rusin; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 31859 bytes --] == Series Details == Series: Add vmwgfx prime tests URL : https://patchwork.freedesktop.org/series/133402/ State : failure == Summary == CI Bug Log - changes from XEIGT_7846_full -> XEIGTPW_11121_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with XEIGTPW_11121_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in XEIGTPW_11121_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 (3 -> 1) ------------------------------ ERROR: It appears as if the changes made in XEIGTPW_11121_full prevented too many machines from booting. Missing (2): shard-adlp shard-lnl Known issues ------------ Here are the changes found in XEIGTPW_11121_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_atomic_interruptible@legacy-setmode: - shard-dg2-set2: [PASS][1] -> [SKIP][2] ([Intel XE#1201] / [Intel XE#1234]) [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@kms_atomic_interruptible@legacy-setmode.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_atomic_interruptible@legacy-setmode.html * igt@kms_big_fb@4-tiled-64bpp-rotate-0: - shard-dg2-set2: [PASS][3] -> [SKIP][4] ([Intel XE#1201] / [Intel XE#829]) +2 other tests skip [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-434/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html * igt@kms_big_fb@yf-tiled-64bpp-rotate-0: - shard-dg2-set2: NOTRUN -> [SKIP][5] ([Intel XE#1124] / [Intel XE#1201]) [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_big_fb@yf-tiled-64bpp-rotate-0.html * igt@kms_bw@linear-tiling-4-displays-2160x1440p: - shard-dg2-set2: NOTRUN -> [SKIP][6] ([Intel XE#1201] / [Intel XE#367]) +1 other test skip [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-463/igt@kms_bw@linear-tiling-4-displays-2160x1440p.html * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-a-dp-4: - shard-dg2-set2: NOTRUN -> [SKIP][7] ([Intel XE#1201] / [Intel XE#787]) +71 other tests skip [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-a-dp-4.html * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-7: - shard-dg2-set2: NOTRUN -> [SKIP][8] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +21 other tests skip [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-7.html * igt@kms_ccs@random-ccs-data-4-tiled-xe2-ccs: - shard-dg2-set2: NOTRUN -> [SKIP][9] ([Intel XE#1201] / [Intel XE#1252]) [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-xe2-ccs.html * igt@kms_cdclk@mode-transition@pipe-b-hdmi-a-7: - shard-dg2-set2: NOTRUN -> [SKIP][10] ([Intel XE#1201] / [Intel XE#314]) +3 other tests skip [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_cdclk@mode-transition@pipe-b-hdmi-a-7.html * igt@kms_content_protection@atomic@pipe-a-dp-4: - shard-dg2-set2: NOTRUN -> [FAIL][11] ([Intel XE#1178]) [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-435/igt@kms_content_protection@atomic@pipe-a-dp-4.html * igt@kms_content_protection@uevent@pipe-a-dp-4: - shard-dg2-set2: NOTRUN -> [FAIL][12] ([Intel XE#1188]) [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@kms_content_protection@uevent@pipe-a-dp-4.html * igt@kms_cursor_crc@cursor-rapid-movement-512x170: - shard-dg2-set2: NOTRUN -> [SKIP][13] ([Intel XE#1201] / [Intel XE#308]) [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-433/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html * igt@kms_cursor_crc@cursor-sliding-128x42: - shard-dg2-set2: [PASS][14] -> [SKIP][15] ([Intel XE#1201]) +3 other tests skip [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-463/igt@kms_cursor_crc@cursor-sliding-128x42.html [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_cursor_crc@cursor-sliding-128x42.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic: - shard-dg2-set2: [PASS][16] -> [DMESG-WARN][17] ([Intel XE#1214] / [Intel XE#282] / [Intel XE#910]) [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-466/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-463/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html * igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions: - shard-dg2-set2: [PASS][18] -> [DMESG-WARN][19] ([Intel XE#1214] / [Intel XE#282]) +5 other tests dmesg-warn [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-466/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions.html [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions.html * igt@kms_cursor_legacy@forked-move@pipe-b: - shard-dg2-set2: NOTRUN -> [DMESG-WARN][20] ([Intel XE#1214] / [Intel XE#282]) +3 other tests dmesg-warn [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_cursor_legacy@forked-move@pipe-b.html * igt@kms_flip@basic-plain-flip: - shard-dg2-set2: NOTRUN -> [SKIP][21] ([Intel XE#1201]) [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_flip@basic-plain-flip.html * igt@kms_flip@flip-vs-suspend@a-hdmi-a7: - shard-dg2-set2: NOTRUN -> [DMESG-WARN][22] ([Intel XE#1162] / [Intel XE#1214]) +3 other tests dmesg-warn [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_flip@flip-vs-suspend@a-hdmi-a7.html * igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-7-4-rc-ccs-cc-to-4-mc-ccs: - shard-dg2-set2: NOTRUN -> [FAIL][23] ([Intel XE#650]) +51 other tests fail [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-7-4-rc-ccs-cc-to-4-mc-ccs.html * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-msflip-blt: - shard-dg2-set2: NOTRUN -> [SKIP][24] ([Intel XE#1201] / [Intel XE#651]) +4 other tests skip [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-msflip-blt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-msflip-blt: - shard-dg2-set2: NOTRUN -> [SKIP][25] ([Intel XE#1201] / [Intel XE#653]) +1 other test skip [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-463/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-msflip-blt.html * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a: - shard-dg2-set2: NOTRUN -> [FAIL][26] ([Intel XE#616]) [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-433/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a.html * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b: - shard-dg2-set2: NOTRUN -> [DMESG-FAIL][27] ([Intel XE#1162]) +1 other test dmesg-fail [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-433/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25: - shard-dg2-set2: NOTRUN -> [SKIP][28] ([Intel XE#1201] / [Intel XE#305] / [Intel XE#455]) [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-hdmi-a-6: - shard-dg2-set2: NOTRUN -> [SKIP][29] ([Intel XE#1201] / [Intel XE#305]) +2 other tests skip [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-hdmi-a-6.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d-hdmi-a-6: - shard-dg2-set2: NOTRUN -> [SKIP][30] ([Intel XE#1201] / [Intel XE#455]) +5 other tests skip [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d-hdmi-a-6.html * igt@kms_pm_rpm@modeset-lpsp: - shard-dg2-set2: [PASS][31] -> [SKIP][32] ([Intel XE#1201] / [Intel XE#1235]) [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-435/igt@kms_pm_rpm@modeset-lpsp.html [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_pm_rpm@modeset-lpsp.html * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area: - shard-dg2-set2: NOTRUN -> [SKIP][33] ([Intel XE#1201] / [Intel XE#929]) [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-435/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html * igt@xe_evict@evict-mixed-many-threads-small: - shard-dg2-set2: [PASS][34] -> [TIMEOUT][35] ([Intel XE#1473]) +1 other test timeout [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-433/igt@xe_evict@evict-mixed-many-threads-small.html [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-466/igt@xe_evict@evict-mixed-many-threads-small.html * igt@xe_exec_fault_mode@once-bindexecqueue-userptr-invalidate-imm: - shard-dg2-set2: NOTRUN -> [SKIP][36] ([Intel XE#1201] / [Intel XE#288]) [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-466/igt@xe_exec_fault_mode@once-bindexecqueue-userptr-invalidate-imm.html * igt@xe_pm@s3-basic-exec: - shard-dg2-set2: [PASS][37] -> [DMESG-WARN][38] ([Intel XE#1162] / [Intel XE#1214]) +7 other tests dmesg-warn [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@xe_pm@s3-basic-exec.html [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@xe_pm@s3-basic-exec.html * igt@xe_pm@s3-d3cold-basic-exec: - shard-dg2-set2: NOTRUN -> [SKIP][39] ([Intel XE#1201] / [Intel XE#366]) [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-435/igt@xe_pm@s3-d3cold-basic-exec.html * igt@xe_query@multigpu-query-cs-cycles: - shard-dg2-set2: NOTRUN -> [SKIP][40] ([Intel XE#1201] / [Intel XE#944]) [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-435/igt@xe_query@multigpu-query-cs-cycles.html #### Possible fixes #### * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions: - shard-dg2-set2: [DMESG-WARN][41] ([Intel XE#1214] / [Intel XE#282]) -> [PASS][42] +3 other tests pass [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html * igt@kms_hdmi_inject@inject-audio: - shard-dg2-set2: [SKIP][43] ([Intel XE#1201] / [Intel XE#417]) -> [PASS][44] [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-434/igt@kms_hdmi_inject@inject-audio.html [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@kms_hdmi_inject@inject-audio.html * igt@kms_hdr@invalid-hdr: - shard-dg2-set2: [SKIP][45] ([Intel XE#1201] / [Intel XE#455]) -> [PASS][46] [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@kms_hdr@invalid-hdr.html [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-463/igt@kms_hdr@invalid-hdr.html * igt@kms_pm_rpm@i2c: - shard-dg2-set2: [FAIL][47] ([Intel XE#1787]) -> [PASS][48] [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@kms_pm_rpm@i2c.html [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_pm_rpm@i2c.html * igt@kms_universal_plane@disable-primary-vs-flip: - shard-dg2-set2: [SKIP][49] ([Intel XE#1201] / [Intel XE#829]) -> [PASS][50] [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@kms_universal_plane@disable-primary-vs-flip.html [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-466/igt@kms_universal_plane@disable-primary-vs-flip.html * igt@xe_evict@evict-beng-cm-threads-large: - shard-dg2-set2: [INCOMPLETE][51] ([Intel XE#1195] / [Intel XE#1473] / [Intel XE#392]) -> [PASS][52] +1 other test pass [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-466/igt@xe_evict@evict-beng-cm-threads-large.html [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@xe_evict@evict-beng-cm-threads-large.html * igt@xe_evict@evict-beng-mixed-many-threads-small: - shard-dg2-set2: [TIMEOUT][53] ([Intel XE#1473] / [Intel XE#402]) -> [PASS][54] [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-466/igt@xe_evict@evict-beng-mixed-many-threads-small.html [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-466/igt@xe_evict@evict-beng-mixed-many-threads-small.html * igt@xe_evict@evict-beng-mixed-threads-large: - shard-dg2-set2: [DMESG-FAIL][55] ([Intel XE#482]) -> [PASS][56] [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-466/igt@xe_evict@evict-beng-mixed-threads-large.html [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@xe_evict@evict-beng-mixed-threads-large.html * igt@xe_live_ktest@xe_mocs: - shard-dg2-set2: [SKIP][57] ([Intel XE#1201]) -> [PASS][58] +3 other tests pass [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@xe_live_ktest@xe_mocs.html [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-463/igt@xe_live_ktest@xe_mocs.html * igt@xe_module_load@reload: - shard-dg2-set2: [DMESG-WARN][59] ([Intel XE#1162] / [Intel XE#1214]) -> [PASS][60] +4 other tests pass [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@xe_module_load@reload.html [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@xe_module_load@reload.html #### Warnings #### * igt@kms_big_fb@linear-16bpp-rotate-270: - shard-dg2-set2: [SKIP][61] ([Intel XE#1201] / [Intel XE#316]) -> [SKIP][62] ([Intel XE#1201] / [Intel XE#829]) +1 other test skip [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-433/igt@kms_big_fb@linear-16bpp-rotate-270.html [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_big_fb@linear-16bpp-rotate-270.html * igt@kms_big_fb@y-tiled-32bpp-rotate-270: - shard-dg2-set2: [SKIP][63] ([Intel XE#1124] / [Intel XE#1201]) -> [SKIP][64] ([Intel XE#1201] / [Intel XE#829]) [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-433/igt@kms_big_fb@y-tiled-32bpp-rotate-270.html [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_big_fb@y-tiled-32bpp-rotate-270.html * igt@kms_big_fb@yf-tiled-addfb-size-overflow: - shard-dg2-set2: [SKIP][65] ([Intel XE#1201] / [Intel XE#610]) -> [SKIP][66] ([Intel XE#1201] / [Intel XE#829]) [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-434/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html * igt@kms_bw@linear-tiling-3-displays-1920x1080p: - shard-dg2-set2: [SKIP][67] ([Intel XE#1201]) -> [SKIP][68] ([Intel XE#1201] / [Intel XE#367]) [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@kms_bw@linear-tiling-3-displays-1920x1080p.html [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_bw@linear-tiling-3-displays-1920x1080p.html * igt@kms_ccs@bad-aux-stride-y-tiled-ccs: - shard-dg2-set2: [SKIP][69] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) -> [SKIP][70] ([Intel XE#1201] / [Intel XE#829]) [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-466/igt@kms_ccs@bad-aux-stride-y-tiled-ccs.html [70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_ccs@bad-aux-stride-y-tiled-ccs.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-mc-ccs: - shard-dg2-set2: [SKIP][71] ([Intel XE#1201] / [Intel XE#829]) -> [FAIL][72] ([Intel XE#650]) [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-mc-ccs.html [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-435/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-mc-ccs.html * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs-cc: - shard-dg2-set2: [SKIP][73] ([Intel XE#1201] / [Intel XE#829]) -> [SKIP][74] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs-cc.html [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs-cc.html * igt@kms_chamelium_hpd@dp-hpd-after-suspend: - shard-dg2-set2: [SKIP][75] ([Intel XE#1201]) -> [SKIP][76] ([Intel XE#1201] / [Intel XE#373]) [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-463/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html * igt@kms_chamelium_hpd@hdmi-hpd-storm: - shard-dg2-set2: [SKIP][77] ([Intel XE#1201] / [Intel XE#373]) -> [SKIP][78] ([Intel XE#1201]) +1 other test skip [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@kms_chamelium_hpd@hdmi-hpd-storm.html [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_chamelium_hpd@hdmi-hpd-storm.html * igt@kms_content_protection@atomic: - shard-dg2-set2: [SKIP][79] ([Intel XE#1201] / [Intel XE#455]) -> [FAIL][80] ([Intel XE#1178]) [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@kms_content_protection@atomic.html [80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-435/igt@kms_content_protection@atomic.html * igt@kms_content_protection@dp-mst-type-0: - shard-dg2-set2: [SKIP][81] ([Intel XE#1201]) -> [SKIP][82] ([Intel XE#1201] / [Intel XE#307]) [81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@kms_content_protection@dp-mst-type-0.html [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@kms_content_protection@dp-mst-type-0.html * igt@kms_content_protection@legacy: - shard-dg2-set2: [FAIL][83] ([Intel XE#1178]) -> [SKIP][84] ([Intel XE#1201] / [Intel XE#455]) [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-466/igt@kms_content_protection@legacy.html [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_content_protection@legacy.html * igt@kms_content_protection@uevent: - shard-dg2-set2: [SKIP][85] ([Intel XE#1201] / [Intel XE#455]) -> [FAIL][86] ([Intel XE#1188]) [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@kms_content_protection@uevent.html [86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@kms_content_protection@uevent.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy: - shard-dg2-set2: [DMESG-WARN][87] ([Intel XE#1214] / [Intel XE#282]) -> [DMESG-WARN][88] ([Intel XE#1214] / [Intel XE#282] / [Intel XE#910]) [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-463/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size: - shard-dg2-set2: [DMESG-WARN][89] ([Intel XE#1214] / [Intel XE#282]) -> [SKIP][90] ([Intel XE#1201]) [89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-434/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html [90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html * igt@kms_cursor_legacy@single-move: - shard-dg2-set2: [DMESG-WARN][91] ([Intel XE#1214] / [Intel XE#282]) -> [DMESG-WARN][92] ([Intel XE#1214] / [Intel XE#282] / [Intel XE#877]) [91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-434/igt@kms_cursor_legacy@single-move.html [92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-466/igt@kms_cursor_legacy@single-move.html * igt@kms_cursor_legacy@single-move@pipe-a: - shard-dg2-set2: [DMESG-WARN][93] ([Intel XE#1214] / [Intel XE#282]) -> [DMESG-WARN][94] ([Intel XE#1214] / [Intel XE#877]) [93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-434/igt@kms_cursor_legacy@single-move@pipe-a.html [94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-466/igt@kms_cursor_legacy@single-move@pipe-a.html * igt@kms_frontbuffer_tracking@drrs-1p-pri-indfb-multidraw: - shard-dg2-set2: [SKIP][95] ([Intel XE#1201] / [Intel XE#651]) -> [SKIP][96] ([Intel XE#1201]) +2 other tests skip [95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-1p-pri-indfb-multidraw.html [96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_frontbuffer_tracking@drrs-1p-pri-indfb-multidraw.html * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-plflip-blt: - shard-dg2-set2: [SKIP][97] ([Intel XE#1201] / [Intel XE#651]) -> [SKIP][98] ([Intel XE#1201] / [Intel XE#1235]) [97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-463/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-plflip-blt.html [98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-plflip-blt.html * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-pgflip-blt: - shard-dg2-set2: [SKIP][99] ([Intel XE#1201]) -> [SKIP][100] ([Intel XE#1201] / [Intel XE#651]) +1 other test skip [99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-pgflip-blt.html [100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-onoff: - shard-dg2-set2: [SKIP][101] ([Intel XE#1201] / [Intel XE#653]) -> [SKIP][102] ([Intel XE#1201]) +2 other tests skip [101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-433/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-onoff.html [102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-onoff.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-blt: - shard-dg2-set2: [SKIP][103] ([Intel XE#1201]) -> [SKIP][104] ([Intel XE#1201] / [Intel XE#653]) +1 other test skip [103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-blt.html [104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-blt.html * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format: - shard-dg2-set2: [INCOMPLETE][105] ([Intel XE#1195] / [Intel XE#904] / [Intel XE#909]) -> [TIMEOUT][106] ([Intel XE#380] / [Intel XE#904] / [Intel XE#909]) [105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-435/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format.html [106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-463/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format.html * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format@pipe-a-hdmi-a-6: - shard-dg2-set2: [INCOMPLETE][107] ([Intel XE#1195] / [Intel XE#904] / [Intel XE#909]) -> [TIMEOUT][108] ([Intel XE#904] / [Intel XE#909]) [107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-435/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format@pipe-a-hdmi-a-6.html [108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-463/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format@pipe-a-hdmi-a-6.html * igt@kms_psr@fbc-psr2-cursor-plane-move: - shard-dg2-set2: [SKIP][109] ([Intel XE#1201]) -> [SKIP][110] ([Intel XE#1201] / [Intel XE#929]) +1 other test skip [109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@kms_psr@fbc-psr2-cursor-plane-move.html [110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@kms_psr@fbc-psr2-cursor-plane-move.html * igt@kms_psr@fbc-psr2-primary-blt: - shard-dg2-set2: [SKIP][111] ([Intel XE#1201] / [Intel XE#929]) -> [SKIP][112] ([Intel XE#1201]) +1 other test skip [111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-463/igt@kms_psr@fbc-psr2-primary-blt.html [112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_psr@fbc-psr2-primary-blt.html * igt@kms_vrr@flip-basic: - shard-dg2-set2: [SKIP][113] ([Intel XE#1201]) -> [SKIP][114] ([Intel XE#1201] / [Intel XE#455]) [113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@kms_vrr@flip-basic.html [114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-434/igt@kms_vrr@flip-basic.html * igt@xe_evict@evict-large-multi-vm-cm: - shard-dg2-set2: [FAIL][115] ([Intel XE#1600]) -> [FAIL][116] ([Intel XE#1041]) [115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-436/igt@xe_evict@evict-large-multi-vm-cm.html [116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-433/igt@xe_evict@evict-large-multi-vm-cm.html * igt@xe_evict@evict-mixed-many-threads-large: - shard-dg2-set2: [INCOMPLETE][117] ([Intel XE#1195] / [Intel XE#1473] / [Intel XE#392]) -> [TIMEOUT][118] ([Intel XE#1041] / [Intel XE#1473] / [Intel XE#392]) [117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-466/igt@xe_evict@evict-mixed-many-threads-large.html [118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-436/igt@xe_evict@evict-mixed-many-threads-large.html * igt@xe_evict@evict-threads-large: - shard-dg2-set2: [INCOMPLETE][119] ([Intel XE#1195] / [Intel XE#1473] / [Intel XE#392]) -> [TIMEOUT][120] ([Intel XE#1473] / [Intel XE#392]) [119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7846/shard-dg2-466/igt@xe_evict@evict-threads-large.html [120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11121/shard-dg2-464/igt@xe_evict@evict-threads-large.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [Intel XE#1041]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1041 [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124 [Intel XE#1162]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1162 [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178 [Intel XE#1188]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1188 [Intel XE#1195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1195 [Intel XE#1201]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1201 [Intel XE#1214]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1214 [Intel XE#1234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1234 [Intel XE#1235]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1235 [Intel XE#1252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1252 [Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473 [Intel XE#1600]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1600 [Intel XE#1787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1787 [Intel XE#1818]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1818 [Intel XE#282]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/282 [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288 [Intel XE#305]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/305 [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307 [Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308 [Intel XE#314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/314 [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316 [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366 [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367 [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373 [Intel XE#380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/380 [Intel XE#392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/392 [Intel XE#402]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/402 [Intel XE#417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/417 [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455 [Intel XE#482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/482 [Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610 [Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616 [Intel XE#650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/650 [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651 [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653 [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787 [Intel XE#829]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/829 [Intel XE#877]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/877 [Intel XE#904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/904 [Intel XE#909]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/909 [Intel XE#910]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/910 [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929 [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944 Build changes ------------- * IGT: IGT_7846 -> IGTPW_11121 * Linux: xe-1263-92f877dd46245e4a44b6d24b5e303b8c03c40c75 -> xe-1265-2756f0412a64d4a3bedfb79b868fbd8c313ed027 IGTPW_11121: dede7eb874dc4abbb3449a6c02fc42e852e62485 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_7846: 4a5fd4e7cb2798636f6464e2bd61399f3242b322 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-1263-92f877dd46245e4a44b6d24b5e303b8c03c40c75: 92f877dd46245e4a44b6d24b5e303b8c03c40c75 xe-1265-2756f0412a64d4a3bedfb79b868fbd8c313ed027: 2756f0412a64d4a3bedfb79b868fbd8c313ed027 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-133402v1/index.html [-- Attachment #2: Type: text/html, Size: 44159 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-05-13 14:02 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-05-09 19:15 [PATCH i-g-t 0/3] Add vmwgfx prime tests Zack Rusin 2024-05-09 19:15 ` [PATCH i-g-t 1/3] tests/vmwgfx: Removing incorrect assert in mob_repeated_unref Zack Rusin 2024-05-13 14:01 ` Kamil Konieczny 2024-05-09 19:15 ` [PATCH i-g-t 2/3] lib/vmwgfx: Allow using any buffer handle as a surface backing Zack Rusin 2024-05-09 19:15 ` [PATCH i-g-t 3/3] tests/vmwgfx: Add a prime test Zack Rusin 2024-05-10 12:29 ` Kamil Konieczny 2024-05-09 20:36 ` ✗ Fi.CI.BAT: failure for Add vmwgfx prime tests Patchwork 2024-05-09 20:48 ` ✓ CI.xeBAT: success " Patchwork 2024-05-10 1:26 ` ✗ CI.xeFULL: failure " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox