* [PATCH i-g-t 1/5] lib/igt_fb: Call dumb_destroy ioctl in case of dumb buffers
@ 2018-10-16 22:23 ` Deepak Rawat
0 siblings, 0 replies; 22+ messages in thread
From: Deepak Rawat @ 2018-10-16 22:23 UTC (permalink / raw)
To: igt-dev, intel-gfx, linux-graphics-maintainer; +Cc: Deepak Rawat
vmwgfx does not support GEM interface so calling gem_close on vmwgfx
results in error.
v2: Use drmIoctl with error when ioctl() failed.
v3: Seperate ioctl wrapper.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
---
lib/igt_fb.c | 5 ++++-
lib/igt_kms.c | 22 ++++++++++++++++++++++
lib/igt_kms.h | 1 +
3 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 35be2e88..335ece69 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -2121,7 +2121,10 @@ void igt_remove_fb(int fd, struct igt_fb *fb)
cairo_surface_destroy(fb->cairo_surface);
do_or_die(drmModeRmFB(fd, fb->fb_id));
- gem_close(fd, fb->gem_handle);
+ if (fb->is_dumb)
+ kmstest_dumb_destroy(fd, fb->gem_handle);
+ else
+ gem_close(fd, fb->gem_handle);
fb->fb_id = 0;
}
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index b2cbaa11..6e499f48 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -641,6 +641,28 @@ void *kmstest_dumb_map_buffer(int fd, uint32_t handle, uint64_t size,
return ptr;
}
+static int __kmstest_dumb_destroy(int fd, uint32_t handle)
+{
+ struct drm_mode_destroy_dumb arg = { handle };
+ int err = 0;
+
+ if (drmIoctl(fd, DRM_IOCTL_MODE_DESTROY_DUMB, &arg))
+ err = -errno;
+
+ errno = 0;
+ return err;
+}
+
+/**
+ * kmstest_dumb_destroy:
+ * @fd: Opened drm file descriptor
+ * @handle: Offset in the file referred to by fd
+ */
+void kmstest_dumb_destroy(int fd, uint32_t handle)
+{
+ igt_assert_eq(__kmstest_dumb_destroy(fd, handle), 0);
+}
+
/*
* Returns: the previous mode, or KD_GRAPHICS if no /dev/tty0 was
* found and nothing was done.
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 38fa944e..cbfcced9 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -222,6 +222,7 @@ uint32_t kmstest_dumb_create(int fd, int width, int height, int bpp,
void *kmstest_dumb_map_buffer(int fd, uint32_t handle, uint64_t size,
unsigned prot);
+void kmstest_dumb_destroy(int fd, uint32_t handle);
void kmstest_wait_for_pageflip(int fd);
unsigned int kmstest_get_vblank(int fd, int pipe, unsigned int flags);
void igt_assert_plane_visible(int fd, enum pipe pipe, bool visibility);
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t 1/5] lib/igt_fb: Call dumb_destroy ioctl in case of dumb buffers
@ 2018-10-16 22:23 ` Deepak Rawat
0 siblings, 0 replies; 22+ messages in thread
From: Deepak Rawat @ 2018-10-16 22:23 UTC (permalink / raw)
To: igt-dev, intel-gfx, linux-graphics-maintainer; +Cc: Deepak Rawat, petri.latvala
vmwgfx does not support GEM interface so calling gem_close on vmwgfx
results in error.
v2: Use drmIoctl with error when ioctl() failed.
v3: Seperate ioctl wrapper.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
---
lib/igt_fb.c | 5 ++++-
lib/igt_kms.c | 22 ++++++++++++++++++++++
lib/igt_kms.h | 1 +
3 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 35be2e88..335ece69 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -2121,7 +2121,10 @@ void igt_remove_fb(int fd, struct igt_fb *fb)
cairo_surface_destroy(fb->cairo_surface);
do_or_die(drmModeRmFB(fd, fb->fb_id));
- gem_close(fd, fb->gem_handle);
+ if (fb->is_dumb)
+ kmstest_dumb_destroy(fd, fb->gem_handle);
+ else
+ gem_close(fd, fb->gem_handle);
fb->fb_id = 0;
}
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index b2cbaa11..6e499f48 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -641,6 +641,28 @@ void *kmstest_dumb_map_buffer(int fd, uint32_t handle, uint64_t size,
return ptr;
}
+static int __kmstest_dumb_destroy(int fd, uint32_t handle)
+{
+ struct drm_mode_destroy_dumb arg = { handle };
+ int err = 0;
+
+ if (drmIoctl(fd, DRM_IOCTL_MODE_DESTROY_DUMB, &arg))
+ err = -errno;
+
+ errno = 0;
+ return err;
+}
+
+/**
+ * kmstest_dumb_destroy:
+ * @fd: Opened drm file descriptor
+ * @handle: Offset in the file referred to by fd
+ */
+void kmstest_dumb_destroy(int fd, uint32_t handle)
+{
+ igt_assert_eq(__kmstest_dumb_destroy(fd, handle), 0);
+}
+
/*
* Returns: the previous mode, or KD_GRAPHICS if no /dev/tty0 was
* found and nothing was done.
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 38fa944e..cbfcced9 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -222,6 +222,7 @@ uint32_t kmstest_dumb_create(int fd, int width, int height, int bpp,
void *kmstest_dumb_map_buffer(int fd, uint32_t handle, uint64_t size,
unsigned prot);
+void kmstest_dumb_destroy(int fd, uint32_t handle);
void kmstest_wait_for_pageflip(int fd);
unsigned int kmstest_get_vblank(int fd, int pipe, unsigned int flags);
void igt_assert_plane_visible(int fd, enum pipe pipe, bool visibility);
--
2.17.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH i-g-t 2/5] lib/igt_fb: Check for cairo surface success
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
@ 2018-10-16 22:23 ` Deepak Rawat
-1 siblings, 0 replies; 22+ messages in thread
From: Deepak Rawat @ 2018-10-16 22:23 UTC (permalink / raw)
To: igt-dev, intel-gfx, linux-graphics-maintainer; +Cc: Deepak Rawat
For vmwgfx cairo surface creation fails due to stride mismatch, add a
igt_require_f() for surface.
v2: Check for surface creation failure.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
---
lib/igt_fb.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 335ece69..1bb6d324 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -1433,6 +1433,10 @@ static void create_cairo_surface__gtt(int fd, struct igt_fb *fb)
cairo_image_surface_create_for_data(ptr,
drm_format_to_cairo(fb->drm_format),
fb->width, fb->height, fb->strides[0]);
+ igt_require_f(cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS,
+ "Unable to create a cairo surface: %s\n",
+ cairo_status_to_string(cairo_surface_status(fb->cairo_surface)));
+
fb->domain = I915_GEM_DOMAIN_GTT;
cairo_surface_set_user_data(fb->cairo_surface,
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH i-g-t 2/5] lib/igt_fb: Check for cairo surface success
@ 2018-10-16 22:23 ` Deepak Rawat
0 siblings, 0 replies; 22+ messages in thread
From: Deepak Rawat @ 2018-10-16 22:23 UTC (permalink / raw)
To: igt-dev, intel-gfx, linux-graphics-maintainer; +Cc: Deepak Rawat
For vmwgfx cairo surface creation fails due to stride mismatch, add a
igt_require_f() for surface.
v2: Check for surface creation failure.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
---
lib/igt_fb.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 335ece69..1bb6d324 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -1433,6 +1433,10 @@ static void create_cairo_surface__gtt(int fd, struct igt_fb *fb)
cairo_image_surface_create_for_data(ptr,
drm_format_to_cairo(fb->drm_format),
fb->width, fb->height, fb->strides[0]);
+ igt_require_f(cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS,
+ "Unable to create a cairo surface: %s\n",
+ cairo_status_to_string(cairo_surface_status(fb->cairo_surface)));
+
fb->domain = I915_GEM_DOMAIN_GTT;
cairo_surface_set_user_data(fb->cairo_surface,
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH i-g-t 3/5] lib: Don't call igt_require_fb_modifiers() when no modifier
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
@ 2018-10-16 22:23 ` Deepak Rawat
-1 siblings, 0 replies; 22+ messages in thread
From: Deepak Rawat @ 2018-10-16 22:23 UTC (permalink / raw)
To: igt-dev, intel-gfx, linux-graphics-maintainer; +Cc: Leo Li, Deepak Rawat
vmwgfx and amdgpu doesn't support fb modifiers, yet kms_addfb() requires
modifier support. Since many tests don't need this to run, the
requirement can be made less broad.
Therefore, tighten the requirement to cases where modifiers are actually
needed.
v2:
* In create_fb() calls to kms_addfb(), remove the modifier flag iff the
driver doesn't support modifiers and the modifer is 0
* Don't modify the flag in kms_addfb().
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Leo Li <sunpeng.li@amd.com>
---
lib/igt_fb.c | 7 +++++--
lib/ioctl_wrappers.c | 24 +++++++++++++++---------
lib/ioctl_wrappers.h | 1 +
3 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 1bb6d324..5dca1cfa 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -913,6 +913,7 @@ igt_create_fb_with_bo_size(int fd, int width, int height,
/* FIXME allow the caller to pass these in */
enum igt_color_encoding color_encoding = IGT_COLOR_YCBCR_BT709;
enum igt_color_range color_range = IGT_COLOR_YCBCR_LIMITED_RANGE;
+ uint32_t flags = 0;
fb_init(fb, fd, width, height, format, tiling,
color_encoding, color_range);
@@ -931,11 +932,13 @@ igt_create_fb_with_bo_size(int fd, int width, int height,
igt_debug("%s(handle=%d, pitch=%d)\n",
__func__, fb->gem_handle, fb->strides[0]);
+ if (fb->tiling || igt_has_fb_modifiers(fd))
+ flags = LOCAL_DRM_MODE_FB_MODIFIERS;
+
do_or_die(__kms_addfb(fb->fd, fb->gem_handle,
fb->width, fb->height,
fb->drm_format, fb->tiling,
- fb->strides, fb->offsets, fb->num_planes,
- LOCAL_DRM_MODE_FB_MODIFIERS,
+ fb->strides, fb->offsets, fb->num_planes, flags,
&fb->fb_id));
return fb->fb_id;
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 0929c43f..10d32bec 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -1646,13 +1646,7 @@ void prime_sync_end(int dma_buf_fd, bool write)
do_ioctl(dma_buf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_end);
}
-/**
- * igt_require_fb_modifiers:
- * @fd: Open DRM file descriptor.
- *
- * Requires presence of DRM_CAP_ADDFB2_MODIFIERS.
- */
-void igt_require_fb_modifiers(int fd)
+bool igt_has_fb_modifiers(int fd)
{
static bool has_modifiers, cap_modifiers_tested;
@@ -1666,7 +1660,18 @@ void igt_require_fb_modifiers(int fd)
cap_modifiers_tested = true;
}
- igt_require(has_modifiers);
+ return has_modifiers;
+}
+
+/**
+ * igt_require_fb_modifiers:
+ * @fd: Open DRM file descriptor.
+ *
+ * Requires presence of DRM_CAP_ADDFB2_MODIFIERS.
+ */
+void igt_require_fb_modifiers(int fd)
+{
+ igt_require(igt_has_fb_modifiers(fd));
}
int __kms_addfb(int fd, uint32_t handle,
@@ -1678,7 +1683,8 @@ int __kms_addfb(int fd, uint32_t handle,
struct drm_mode_fb_cmd2 f;
int ret, i;
- igt_require_fb_modifiers(fd);
+ if (flags & DRM_MODE_FB_MODIFIERS)
+ igt_require_fb_modifiers(fd);
memset(&f, 0, sizeof(f));
diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h
index c4e1956c..b22b36b0 100644
--- a/lib/ioctl_wrappers.h
+++ b/lib/ioctl_wrappers.h
@@ -227,6 +227,7 @@ struct local_drm_mode_fb_cmd2 {
#define LOCAL_DRM_CAP_ADDFB2_MODIFIERS 0x10
+bool igt_has_fb_modifiers(int fd);
void igt_require_fb_modifiers(int fd);
/**
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t 3/5] lib: Don't call igt_require_fb_modifiers() when no modifier
@ 2018-10-16 22:23 ` Deepak Rawat
0 siblings, 0 replies; 22+ messages in thread
From: Deepak Rawat @ 2018-10-16 22:23 UTC (permalink / raw)
To: igt-dev, intel-gfx, linux-graphics-maintainer; +Cc: Deepak Rawat, petri.latvala
vmwgfx and amdgpu doesn't support fb modifiers, yet kms_addfb() requires
modifier support. Since many tests don't need this to run, the
requirement can be made less broad.
Therefore, tighten the requirement to cases where modifiers are actually
needed.
v2:
* In create_fb() calls to kms_addfb(), remove the modifier flag iff the
driver doesn't support modifiers and the modifer is 0
* Don't modify the flag in kms_addfb().
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Leo Li <sunpeng.li@amd.com>
---
lib/igt_fb.c | 7 +++++--
lib/ioctl_wrappers.c | 24 +++++++++++++++---------
lib/ioctl_wrappers.h | 1 +
3 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 1bb6d324..5dca1cfa 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -913,6 +913,7 @@ igt_create_fb_with_bo_size(int fd, int width, int height,
/* FIXME allow the caller to pass these in */
enum igt_color_encoding color_encoding = IGT_COLOR_YCBCR_BT709;
enum igt_color_range color_range = IGT_COLOR_YCBCR_LIMITED_RANGE;
+ uint32_t flags = 0;
fb_init(fb, fd, width, height, format, tiling,
color_encoding, color_range);
@@ -931,11 +932,13 @@ igt_create_fb_with_bo_size(int fd, int width, int height,
igt_debug("%s(handle=%d, pitch=%d)\n",
__func__, fb->gem_handle, fb->strides[0]);
+ if (fb->tiling || igt_has_fb_modifiers(fd))
+ flags = LOCAL_DRM_MODE_FB_MODIFIERS;
+
do_or_die(__kms_addfb(fb->fd, fb->gem_handle,
fb->width, fb->height,
fb->drm_format, fb->tiling,
- fb->strides, fb->offsets, fb->num_planes,
- LOCAL_DRM_MODE_FB_MODIFIERS,
+ fb->strides, fb->offsets, fb->num_planes, flags,
&fb->fb_id));
return fb->fb_id;
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 0929c43f..10d32bec 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -1646,13 +1646,7 @@ void prime_sync_end(int dma_buf_fd, bool write)
do_ioctl(dma_buf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_end);
}
-/**
- * igt_require_fb_modifiers:
- * @fd: Open DRM file descriptor.
- *
- * Requires presence of DRM_CAP_ADDFB2_MODIFIERS.
- */
-void igt_require_fb_modifiers(int fd)
+bool igt_has_fb_modifiers(int fd)
{
static bool has_modifiers, cap_modifiers_tested;
@@ -1666,7 +1660,18 @@ void igt_require_fb_modifiers(int fd)
cap_modifiers_tested = true;
}
- igt_require(has_modifiers);
+ return has_modifiers;
+}
+
+/**
+ * igt_require_fb_modifiers:
+ * @fd: Open DRM file descriptor.
+ *
+ * Requires presence of DRM_CAP_ADDFB2_MODIFIERS.
+ */
+void igt_require_fb_modifiers(int fd)
+{
+ igt_require(igt_has_fb_modifiers(fd));
}
int __kms_addfb(int fd, uint32_t handle,
@@ -1678,7 +1683,8 @@ int __kms_addfb(int fd, uint32_t handle,
struct drm_mode_fb_cmd2 f;
int ret, i;
- igt_require_fb_modifiers(fd);
+ if (flags & DRM_MODE_FB_MODIFIERS)
+ igt_require_fb_modifiers(fd);
memset(&f, 0, sizeof(f));
diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h
index c4e1956c..b22b36b0 100644
--- a/lib/ioctl_wrappers.h
+++ b/lib/ioctl_wrappers.h
@@ -227,6 +227,7 @@ struct local_drm_mode_fb_cmd2 {
#define LOCAL_DRM_CAP_ADDFB2_MODIFIERS 0x10
+bool igt_has_fb_modifiers(int fd);
void igt_require_fb_modifiers(int fd);
/**
--
2.17.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH i-g-t 4/5] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
@ 2018-10-16 22:23 ` Deepak Rawat
-1 siblings, 0 replies; 22+ messages in thread
From: Deepak Rawat @ 2018-10-16 22:23 UTC (permalink / raw)
To: igt-dev, intel-gfx, linux-graphics-maintainer; +Cc: Deepak Rawat
Some simple test cases to use FB_DAMAGE_CLIPS plane property.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
---
lib/igt_kms.c | 1 +
lib/igt_kms.h | 1 +
tests/kms_atomic.c | 260 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 262 insertions(+)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 6e499f48..7a3ce2f6 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -177,6 +177,7 @@ const char * const igt_plane_prop_names[IGT_NUM_PLANE_PROPS] = {
[IGT_PLANE_COLOR_RANGE] = "COLOR_RANGE",
[IGT_PLANE_PIXEL_BLEND_MODE] = "pixel blend mode",
[IGT_PLANE_ALPHA] = "alpha",
+ [IGT_PLANE_FB_DAMAGE_CLIPS] = "FB_DAMAGE_CLIPS",
};
const char * const igt_crtc_prop_names[IGT_NUM_CRTC_PROPS] = {
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index cbfcced9..e1c9a6a5 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -269,6 +269,7 @@ enum igt_atomic_plane_properties {
IGT_PLANE_COLOR_RANGE,
IGT_PLANE_PIXEL_BLEND_MODE,
IGT_PLANE_ALPHA,
+ IGT_PLANE_FB_DAMAGE_CLIPS,
IGT_NUM_PLANE_PROPS
};
diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c
index 3aad2d9a..20dfc978 100644
--- a/tests/kms_atomic.c
+++ b/tests/kms_atomic.c
@@ -56,6 +56,24 @@
IGT_TEST_DESCRIPTION("Test atomic modesetting API");
+/* signed32 drm_mode_rect declared here for use with drm damage for page-flip */
+struct damage_rect {
+ int x1;
+ int y1;
+ int x2;
+ int y2;
+};
+
+static inline int damage_rect_width(struct damage_rect *r)
+{
+ return r->x2 - r->x1;
+}
+
+static inline int damage_rect_height(struct damage_rect *r)
+{
+ return r->y2 - r->y1;
+}
+
enum kms_atomic_check_relax {
ATOMIC_RELAX_NONE = 0,
CRTC_RELAX_MODE = (1 << 0),
@@ -835,6 +853,240 @@ static void atomic_invalid_params(igt_pipe_t *pipe,
do_ioctl_err(display->drm_fd, DRM_IOCTL_MODE_ATOMIC, &ioc, EFAULT);
}
+static void atomic_plane_damage(igt_pipe_t *pipe, igt_plane_t *plane, struct igt_fb *fb)
+{
+ struct damage_rect *damage;
+ struct igt_fb fb_1;
+ struct igt_fb fb_2;
+ cairo_t *cr_1;
+ cairo_t *cr_2;
+
+ damage = malloc(sizeof(*damage) * 2);
+ igt_assert(damage);
+
+ /* Color fb with white rect at center */
+ igt_create_color_fb(pipe->display->drm_fd, fb->width, fb->height,
+ fb->drm_format, I915_TILING_NONE, 0.2, 0.2, 0.2,
+ &fb_1);
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, fb->width/4, fb->height/4, fb->width/2,
+ fb->height/2, 1.0, 1.0, 1.0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+
+ /*
+ * Flip the primary plane to new color fb using atomic API and check the
+ * state.
+ */
+ igt_plane_set_fb(plane, &fb_1);
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Change the color of top left clip from center and issue plane update
+ * with damage and verify the state.
+ */
+ damage[0].x1 = 0;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width/2;
+ damage[0].y2 = fb->height/2;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 1.0, 0, 0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage));
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Change the color of top left and bottom right clip from center and
+ * issue plane update with damage and verify the state.
+ */
+ damage[0].x1 = 0;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width/2;
+ damage[0].y2 = fb->height/2;
+
+ damage[1].x1 = fb->width/2;
+ damage[1].y1 = fb->height/2;
+ damage[1].x2 = fb->width;
+ damage[1].y2 = fb->height;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 1.0, 0, 1.0);
+ igt_paint_color(cr_1, damage[1].x1, damage[1].y1,
+ damage_rect_width(&damage[1]),
+ damage_rect_height(&damage[1]), 0, 0, 1.0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage) * 2);
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Issue a plane update with damage on a seperate fb with damage to
+ * upper right clip from center.
+ */
+ igt_create_color_fb(pipe->display->drm_fd, fb->width, fb->height,
+ fb->drm_format, I915_TILING_NONE, 0.2, 0.2, 0.2,
+ &fb_2);
+
+ damage[0].x1 = fb->width/2;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width;
+ damage[0].y2 = fb->height/2;
+
+ cr_2 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_2);
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ cairo_set_source_surface(cr_2, fb_1.cairo_surface, 0, 0);
+ cairo_paint(cr_2);
+ igt_paint_color(cr_2, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 0, 1.0, 0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_2, cr_2);
+ igt_plane_set_fb(plane, &fb_2);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage));
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Issue plane update with damage with a clip outside of plane src.
+ * NOTE: This will result in no update on plane as damage is outside, so
+ * will see no change on the screen.
+ */
+ /* Reszie fb_1 to be bigger than plane */
+ igt_remove_fb(pipe->display->drm_fd, &fb_1);
+ igt_create_color_fb(pipe->display->drm_fd, fb->width * 2, fb->height,
+ fb->drm_format, I915_TILING_NONE, 0.2, 0.2, 0.2,
+ &fb_1);
+
+ damage[0].x1 = fb->width;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width + fb->width/2;
+ damage[0].y2 = fb->height/2;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ cr_2 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_2);
+ cairo_set_source_surface(cr_1, fb_2.cairo_surface, 0, 0);
+ cairo_paint(cr_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 0, 1.0, 0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_2, cr_2);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_set_size(plane, fb->width, fb->height);
+ igt_fb_set_position(&fb_1, plane, 0, 0);
+ igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage));
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Issue a plane update with damage with a clip that overlap with plane
+ * src (Top right from center extending outside src in below case).
+ * NOTE: Here drm core should take care of intersecting the clip to
+ * plane src.
+ */
+ damage[0].x1 = fb->width/2;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width/2 + fb->width;
+ damage[0].y2 = fb->height/2;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 1.0, 1.0, 0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_set_size(plane, fb->width, fb->height);
+ igt_fb_set_position(&fb_1, plane, 0, 0);
+ igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage));
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Issue a plane update with damage with two clips one inside plane src
+ * and one outside
+ * NOTE: This will result in plane update with clip inside plane src.
+ */
+ damage[0].x1 = 0;
+ damage[0].y1 = fb->height/2;
+ damage[0].x2 = fb->width/2;
+ damage[0].y2 = fb->height;
+
+ damage[1].x1 = fb->width + fb->width/2;
+ damage[1].y1 = fb->height/2;
+ damage[1].x2 = fb->width * 2;
+ damage[1].y2 = fb->height;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 0, 1.0, 1.0);
+ igt_paint_color(cr_1, damage[1].x1, damage[1].y1,
+ damage_rect_width(&damage[1]),
+ damage_rect_height(&damage[1]), 0, 1.0, 0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_set_size(plane, fb->width, fb->height);
+ igt_fb_set_position(&fb_1, plane, 0, 0);
+ igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage) * 2);
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Issue a plane update with overlapping damage clips. White rect in
+ * center overlap partially with top left red rect.
+ * NOTE: Drm core does not error for overlapping damage clips so if any
+ * driver does not support overlapping should have their own
+ * validations.
+ */
+ damage[0].x1 = 0;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width/2;
+ damage[0].y2 = fb->height/2;
+
+ damage[1].x1 = fb->width/4;
+ damage[1].y1 = fb->height/4;
+ damage[1].x2 = fb->width/4 + fb->width/2;
+ damage[1].y2 = fb->height/4 + fb->height/2;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 1.0, 0, 0);
+ igt_paint_color(cr_1, damage[1].x1, damage[1].y1,
+ damage_rect_width(&damage[1]),
+ damage_rect_height(&damage[1]), 1.0, 1.0, 1.0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_set_size(plane, fb->width, fb->height);
+ igt_fb_set_position(&fb_1, plane, 0, 0);
+ igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage) * 2);
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /* Restore the primary plane */
+ igt_plane_set_fb(plane, fb);
+ plane_commit(plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /* Remove the fb created for this test */
+ igt_remove_fb(pipe->display->drm_fd, &fb_1);
+ igt_remove_fb(pipe->display->drm_fd, &fb_2);
+
+ free(damage);
+}
+
static void atomic_setup(igt_display_t *display, enum pipe pipe, igt_output_t *output, igt_plane_t *primary, struct igt_fb *fb)
{
igt_output_set_pipe(output, pipe);
@@ -950,6 +1202,14 @@ igt_main
atomic_invalid_params(pipe_obj, primary, output, &fb);
}
+ igt_subtest("atomic_plane_damage") {
+ igt_require(igt_plane_has_prop(primary, IGT_PLANE_FB_DAMAGE_CLIPS));
+
+ atomic_setup(&display, pipe, output, primary, &fb);
+
+ atomic_plane_damage(pipe_obj, primary, &fb);
+ }
+
igt_fixture {
atomic_clear(&display, pipe, primary, output);
igt_remove_fb(display.drm_fd, &fb);
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t 4/5] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property
@ 2018-10-16 22:23 ` Deepak Rawat
0 siblings, 0 replies; 22+ messages in thread
From: Deepak Rawat @ 2018-10-16 22:23 UTC (permalink / raw)
To: igt-dev, intel-gfx, linux-graphics-maintainer; +Cc: Deepak Rawat, petri.latvala
Some simple test cases to use FB_DAMAGE_CLIPS plane property.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
---
lib/igt_kms.c | 1 +
lib/igt_kms.h | 1 +
tests/kms_atomic.c | 260 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 262 insertions(+)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 6e499f48..7a3ce2f6 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -177,6 +177,7 @@ const char * const igt_plane_prop_names[IGT_NUM_PLANE_PROPS] = {
[IGT_PLANE_COLOR_RANGE] = "COLOR_RANGE",
[IGT_PLANE_PIXEL_BLEND_MODE] = "pixel blend mode",
[IGT_PLANE_ALPHA] = "alpha",
+ [IGT_PLANE_FB_DAMAGE_CLIPS] = "FB_DAMAGE_CLIPS",
};
const char * const igt_crtc_prop_names[IGT_NUM_CRTC_PROPS] = {
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index cbfcced9..e1c9a6a5 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -269,6 +269,7 @@ enum igt_atomic_plane_properties {
IGT_PLANE_COLOR_RANGE,
IGT_PLANE_PIXEL_BLEND_MODE,
IGT_PLANE_ALPHA,
+ IGT_PLANE_FB_DAMAGE_CLIPS,
IGT_NUM_PLANE_PROPS
};
diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c
index 3aad2d9a..20dfc978 100644
--- a/tests/kms_atomic.c
+++ b/tests/kms_atomic.c
@@ -56,6 +56,24 @@
IGT_TEST_DESCRIPTION("Test atomic modesetting API");
+/* signed32 drm_mode_rect declared here for use with drm damage for page-flip */
+struct damage_rect {
+ int x1;
+ int y1;
+ int x2;
+ int y2;
+};
+
+static inline int damage_rect_width(struct damage_rect *r)
+{
+ return r->x2 - r->x1;
+}
+
+static inline int damage_rect_height(struct damage_rect *r)
+{
+ return r->y2 - r->y1;
+}
+
enum kms_atomic_check_relax {
ATOMIC_RELAX_NONE = 0,
CRTC_RELAX_MODE = (1 << 0),
@@ -835,6 +853,240 @@ static void atomic_invalid_params(igt_pipe_t *pipe,
do_ioctl_err(display->drm_fd, DRM_IOCTL_MODE_ATOMIC, &ioc, EFAULT);
}
+static void atomic_plane_damage(igt_pipe_t *pipe, igt_plane_t *plane, struct igt_fb *fb)
+{
+ struct damage_rect *damage;
+ struct igt_fb fb_1;
+ struct igt_fb fb_2;
+ cairo_t *cr_1;
+ cairo_t *cr_2;
+
+ damage = malloc(sizeof(*damage) * 2);
+ igt_assert(damage);
+
+ /* Color fb with white rect at center */
+ igt_create_color_fb(pipe->display->drm_fd, fb->width, fb->height,
+ fb->drm_format, I915_TILING_NONE, 0.2, 0.2, 0.2,
+ &fb_1);
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, fb->width/4, fb->height/4, fb->width/2,
+ fb->height/2, 1.0, 1.0, 1.0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+
+ /*
+ * Flip the primary plane to new color fb using atomic API and check the
+ * state.
+ */
+ igt_plane_set_fb(plane, &fb_1);
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Change the color of top left clip from center and issue plane update
+ * with damage and verify the state.
+ */
+ damage[0].x1 = 0;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width/2;
+ damage[0].y2 = fb->height/2;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 1.0, 0, 0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage));
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Change the color of top left and bottom right clip from center and
+ * issue plane update with damage and verify the state.
+ */
+ damage[0].x1 = 0;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width/2;
+ damage[0].y2 = fb->height/2;
+
+ damage[1].x1 = fb->width/2;
+ damage[1].y1 = fb->height/2;
+ damage[1].x2 = fb->width;
+ damage[1].y2 = fb->height;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 1.0, 0, 1.0);
+ igt_paint_color(cr_1, damage[1].x1, damage[1].y1,
+ damage_rect_width(&damage[1]),
+ damage_rect_height(&damage[1]), 0, 0, 1.0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage) * 2);
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Issue a plane update with damage on a seperate fb with damage to
+ * upper right clip from center.
+ */
+ igt_create_color_fb(pipe->display->drm_fd, fb->width, fb->height,
+ fb->drm_format, I915_TILING_NONE, 0.2, 0.2, 0.2,
+ &fb_2);
+
+ damage[0].x1 = fb->width/2;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width;
+ damage[0].y2 = fb->height/2;
+
+ cr_2 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_2);
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ cairo_set_source_surface(cr_2, fb_1.cairo_surface, 0, 0);
+ cairo_paint(cr_2);
+ igt_paint_color(cr_2, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 0, 1.0, 0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_2, cr_2);
+ igt_plane_set_fb(plane, &fb_2);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage));
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Issue plane update with damage with a clip outside of plane src.
+ * NOTE: This will result in no update on plane as damage is outside, so
+ * will see no change on the screen.
+ */
+ /* Reszie fb_1 to be bigger than plane */
+ igt_remove_fb(pipe->display->drm_fd, &fb_1);
+ igt_create_color_fb(pipe->display->drm_fd, fb->width * 2, fb->height,
+ fb->drm_format, I915_TILING_NONE, 0.2, 0.2, 0.2,
+ &fb_1);
+
+ damage[0].x1 = fb->width;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width + fb->width/2;
+ damage[0].y2 = fb->height/2;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ cr_2 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_2);
+ cairo_set_source_surface(cr_1, fb_2.cairo_surface, 0, 0);
+ cairo_paint(cr_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 0, 1.0, 0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_2, cr_2);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_set_size(plane, fb->width, fb->height);
+ igt_fb_set_position(&fb_1, plane, 0, 0);
+ igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage));
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Issue a plane update with damage with a clip that overlap with plane
+ * src (Top right from center extending outside src in below case).
+ * NOTE: Here drm core should take care of intersecting the clip to
+ * plane src.
+ */
+ damage[0].x1 = fb->width/2;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width/2 + fb->width;
+ damage[0].y2 = fb->height/2;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 1.0, 1.0, 0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_set_size(plane, fb->width, fb->height);
+ igt_fb_set_position(&fb_1, plane, 0, 0);
+ igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage));
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Issue a plane update with damage with two clips one inside plane src
+ * and one outside
+ * NOTE: This will result in plane update with clip inside plane src.
+ */
+ damage[0].x1 = 0;
+ damage[0].y1 = fb->height/2;
+ damage[0].x2 = fb->width/2;
+ damage[0].y2 = fb->height;
+
+ damage[1].x1 = fb->width + fb->width/2;
+ damage[1].y1 = fb->height/2;
+ damage[1].x2 = fb->width * 2;
+ damage[1].y2 = fb->height;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 0, 1.0, 1.0);
+ igt_paint_color(cr_1, damage[1].x1, damage[1].y1,
+ damage_rect_width(&damage[1]),
+ damage_rect_height(&damage[1]), 0, 1.0, 0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_set_size(plane, fb->width, fb->height);
+ igt_fb_set_position(&fb_1, plane, 0, 0);
+ igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage) * 2);
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /*
+ * Issue a plane update with overlapping damage clips. White rect in
+ * center overlap partially with top left red rect.
+ * NOTE: Drm core does not error for overlapping damage clips so if any
+ * driver does not support overlapping should have their own
+ * validations.
+ */
+ damage[0].x1 = 0;
+ damage[0].y1 = 0;
+ damage[0].x2 = fb->width/2;
+ damage[0].y2 = fb->height/2;
+
+ damage[1].x1 = fb->width/4;
+ damage[1].y1 = fb->height/4;
+ damage[1].x2 = fb->width/4 + fb->width/2;
+ damage[1].y2 = fb->height/4 + fb->height/2;
+
+ cr_1 = igt_get_cairo_ctx(pipe->display->drm_fd, &fb_1);
+ igt_paint_color(cr_1, damage[0].x1, damage[0].y1,
+ damage_rect_width(&damage[0]),
+ damage_rect_height(&damage[0]), 1.0, 0, 0);
+ igt_paint_color(cr_1, damage[1].x1, damage[1].y1,
+ damage_rect_width(&damage[1]),
+ damage_rect_height(&damage[1]), 1.0, 1.0, 1.0);
+ igt_put_cairo_ctx(pipe->display->drm_fd, &fb_1, cr_1);
+ igt_plane_set_fb(plane, &fb_1);
+ igt_plane_set_size(plane, fb->width, fb->height);
+ igt_fb_set_position(&fb_1, plane, 0, 0);
+ igt_fb_set_size(&fb_1, plane, fb->width, fb->height);
+ igt_plane_replace_prop_blob(plane, IGT_PLANE_FB_DAMAGE_CLIPS, damage,
+ sizeof(*damage) * 2);
+ crtc_commit(pipe, plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /* Restore the primary plane */
+ igt_plane_set_fb(plane, fb);
+ plane_commit(plane, COMMIT_ATOMIC, ATOMIC_RELAX_NONE);
+
+ /* Remove the fb created for this test */
+ igt_remove_fb(pipe->display->drm_fd, &fb_1);
+ igt_remove_fb(pipe->display->drm_fd, &fb_2);
+
+ free(damage);
+}
+
static void atomic_setup(igt_display_t *display, enum pipe pipe, igt_output_t *output, igt_plane_t *primary, struct igt_fb *fb)
{
igt_output_set_pipe(output, pipe);
@@ -950,6 +1202,14 @@ igt_main
atomic_invalid_params(pipe_obj, primary, output, &fb);
}
+ igt_subtest("atomic_plane_damage") {
+ igt_require(igt_plane_has_prop(primary, IGT_PLANE_FB_DAMAGE_CLIPS));
+
+ atomic_setup(&display, pipe, output, primary, &fb);
+
+ atomic_plane_damage(pipe_obj, primary, &fb);
+ }
+
igt_fixture {
atomic_clear(&display, pipe, primary, output);
igt_remove_fb(display.drm_fd, &fb);
--
2.17.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
@ 2018-10-16 22:23 ` Deepak Rawat
-1 siblings, 0 replies; 22+ messages in thread
From: Deepak Rawat @ 2018-10-16 22:23 UTC (permalink / raw)
To: igt-dev, intel-gfx, linux-graphics-maintainer; +Cc: Deepak Rawat
Call kernel selftest module test-drm_modeset for testing KMS.
v2:
- Add test alphabetically.
- Add test to meson build.
v3: Rename to kms_selftest.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
---
tests/Makefile.sources | 1 +
tests/igt_command_line.sh | 2 +-
tests/kms_selftest.c | 10 ++++++++++
tests/meson.build | 1 +
4 files changed, 13 insertions(+), 1 deletion(-)
create mode 100644 tests/kms_selftest.c
diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 001f1a2b..cdf5a7e1 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -202,6 +202,7 @@ TESTS_progs = \
kms_pwrite_crc \
kms_rmfb \
kms_rotation_crc \
+ kms_selftest \
kms_setmode \
kms_sysfs_edid_timing \
kms_tv_load_detect \
diff --git a/tests/igt_command_line.sh b/tests/igt_command_line.sh
index 8285ba62..a4ec3f95 100755
--- a/tests/igt_command_line.sh
+++ b/tests/igt_command_line.sh
@@ -90,7 +90,7 @@ check_test ()
# Subtest enumeration of kernel selftest launchers depends
# on the running kernel. If selftests are not enabled,
# they will output nothing and exit with 0.
- if [ "$testname" != "drv_selftest" -a "$testname" != "drm_mm" ]; then
+ if [ "$testname" != "drv_selftest" -a "$testname" != "drm_mm" -a "$testname" != "kms_selftest" ]; then
fail $test
fi
fi
diff --git a/tests/kms_selftest.c b/tests/kms_selftest.c
new file mode 100644
index 00000000..f61ddd99
--- /dev/null
+++ b/tests/kms_selftest.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#include "igt.h"
+#include "igt_kmod.h"
+
+IGT_TEST_DESCRIPTION("Basic sanity check of KMS selftests.");
+
+igt_main
+{
+ igt_kselftests("test-drm_modeset", NULL, NULL, NULL);
+}
diff --git a/tests/meson.build b/tests/meson.build
index 697ff515..d74eb109 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -177,6 +177,7 @@ test_progs = [
'kms_pwrite_crc',
'kms_rmfb',
'kms_rotation_crc',
+ 'kms_selftest',
'kms_setmode',
'kms_sysfs_edid_timing',
'kms_tv_load_detect',
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
@ 2018-10-16 22:23 ` Deepak Rawat
0 siblings, 0 replies; 22+ messages in thread
From: Deepak Rawat @ 2018-10-16 22:23 UTC (permalink / raw)
To: igt-dev, intel-gfx, linux-graphics-maintainer; +Cc: Deepak Rawat, petri.latvala
Call kernel selftest module test-drm_modeset for testing KMS.
v2:
- Add test alphabetically.
- Add test to meson build.
v3: Rename to kms_selftest.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
---
tests/Makefile.sources | 1 +
tests/igt_command_line.sh | 2 +-
tests/kms_selftest.c | 10 ++++++++++
tests/meson.build | 1 +
4 files changed, 13 insertions(+), 1 deletion(-)
create mode 100644 tests/kms_selftest.c
diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 001f1a2b..cdf5a7e1 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -202,6 +202,7 @@ TESTS_progs = \
kms_pwrite_crc \
kms_rmfb \
kms_rotation_crc \
+ kms_selftest \
kms_setmode \
kms_sysfs_edid_timing \
kms_tv_load_detect \
diff --git a/tests/igt_command_line.sh b/tests/igt_command_line.sh
index 8285ba62..a4ec3f95 100755
--- a/tests/igt_command_line.sh
+++ b/tests/igt_command_line.sh
@@ -90,7 +90,7 @@ check_test ()
# Subtest enumeration of kernel selftest launchers depends
# on the running kernel. If selftests are not enabled,
# they will output nothing and exit with 0.
- if [ "$testname" != "drv_selftest" -a "$testname" != "drm_mm" ]; then
+ if [ "$testname" != "drv_selftest" -a "$testname" != "drm_mm" -a "$testname" != "kms_selftest" ]; then
fail $test
fi
fi
diff --git a/tests/kms_selftest.c b/tests/kms_selftest.c
new file mode 100644
index 00000000..f61ddd99
--- /dev/null
+++ b/tests/kms_selftest.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#include "igt.h"
+#include "igt_kmod.h"
+
+IGT_TEST_DESCRIPTION("Basic sanity check of KMS selftests.");
+
+igt_main
+{
+ igt_kselftests("test-drm_modeset", NULL, NULL, NULL);
+}
diff --git a/tests/meson.build b/tests/meson.build
index 697ff515..d74eb109 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -177,6 +177,7 @@ test_progs = [
'kms_pwrite_crc',
'kms_rmfb',
'kms_rotation_crc',
+ 'kms_selftest',
'kms_setmode',
'kms_sysfs_edid_timing',
'kms_tv_load_detect',
--
2.17.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_fb: Call dumb_destroy ioctl in case of dumb buffers
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
` (4 preceding siblings ...)
(?)
@ 2018-10-17 0:09 ` Patchwork
-1 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2018-10-17 0:09 UTC (permalink / raw)
To: Deepak Rawat; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/5] lib/igt_fb: Call dumb_destroy ioctl in case of dumb buffers
URL : https://patchwork.freedesktop.org/series/51087/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4990 -> IGTPW_1955 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/51087/revisions/1/mbox/
== Known issues ==
Here are the changes found in IGTPW_1955 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@gem_exec_suspend@basic-s4-devices:
fi-blb-e6850: PASS -> INCOMPLETE (fdo#107718)
==== Possible fixes ====
igt@drv_module_reload@basic-reload:
fi-glk-j4005: DMESG-WARN (fdo#106725, fdo#106248) -> PASS
igt@drv_selftest@live_hangcheck:
fi-icl-u2: INCOMPLETE (fdo#108315) -> PASS
igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
fi-glk-j4005: FAIL (fdo#106765) -> PASS
igt@kms_flip@basic-flip-vs-dpms:
fi-hsw-4770r: DMESG-WARN (fdo#105602) -> PASS
igt@kms_flip@basic-flip-vs-wf_vblank:
fi-glk-j4005: FAIL (fdo#100368) -> PASS
igt@kms_flip@basic-plain-flip:
fi-glk-j4005: DMESG-WARN (fdo#106097) -> PASS
igt@kms_frontbuffer_tracking@basic:
fi-icl-u2: FAIL (fdo#103167) -> PASS
fi-byt-clapper: FAIL (fdo#103167) -> PASS
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
fdo#106097 https://bugs.freedesktop.org/show_bug.cgi?id=106097
fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248
fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725
fdo#106765 https://bugs.freedesktop.org/show_bug.cgi?id=106765
fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718
fdo#108315 https://bugs.freedesktop.org/show_bug.cgi?id=108315
== Participating hosts (46 -> 36) ==
Missing (10): fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-skl-guc fi-byt-squawks fi-bsw-cyan fi-apl-guc fi-snb-2520m fi-pnv-d510 fi-kbl-7560u
== Build changes ==
* IGT: IGT_4681 -> IGTPW_1955
CI_DRM_4990: 0bd34d92e9a27784cb988a300619f497ca0e99ec @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1955: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1955/
IGT_4681: 959d6f95cb1344e0c0dace5b236e17755826fac1 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Testlist changes ==
+igt@kms_atomic@atomic_plane_damage
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1955/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 22+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/5] lib/igt_fb: Call dumb_destroy ioctl in case of dumb buffers
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
` (5 preceding siblings ...)
(?)
@ 2018-10-17 2:26 ` Patchwork
-1 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2018-10-17 2:26 UTC (permalink / raw)
To: Deepak Rawat; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/5] lib/igt_fb: Call dumb_destroy ioctl in case of dumb buffers
URL : https://patchwork.freedesktop.org/series/51087/
State : success
== Summary ==
= CI Bug Log - changes from IGT_4681_full -> IGTPW_1955_full =
== Summary - WARNING ==
Minor unknown changes coming with IGTPW_1955_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_1955_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://patchwork.freedesktop.org/api/1.0/series/51087/revisions/1/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in IGTPW_1955_full:
=== IGT changes ===
==== Warnings ====
igt@pm_rc6_residency@rc6-accuracy:
shard-snb: SKIP -> PASS
== Known issues ==
Here are the changes found in IGTPW_1955_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@gem_ctx_isolation@vcs1-s3:
shard-kbl: PASS -> INCOMPLETE (fdo#103665)
igt@gem_exec_schedule@pi-ringfull-render:
shard-glk: NOTRUN -> FAIL (fdo#103158)
igt@kms_available_modes_crc@available_mode_test_crc:
shard-apl: PASS -> FAIL (fdo#106641)
igt@kms_busy@extended-modeset-hang-newfb-render-c:
shard-hsw: NOTRUN -> DMESG-WARN (fdo#107956)
igt@kms_busy@extended-pageflip-hang-newfb-render-c:
shard-glk: PASS -> DMESG-WARN (fdo#107956)
igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
shard-glk: NOTRUN -> DMESG-WARN (fdo#107956) +1
shard-kbl: PASS -> DMESG-WARN (fdo#107956)
igt@kms_cursor_crc@cursor-256x85-sliding:
shard-apl: PASS -> FAIL (fdo#103232) +2
igt@kms_cursor_crc@cursor-64x64-onscreen:
shard-kbl: PASS -> FAIL (fdo#103232)
igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
shard-glk: PASS -> DMESG-WARN (fdo#106538, fdo#105763)
igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
shard-apl: PASS -> FAIL (fdo#103167)
shard-glk: PASS -> FAIL (fdo#103167)
igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
shard-kbl: PASS -> FAIL (fdo#103167) +1
igt@kms_plane@plane-position-covered-pipe-a-planes:
shard-glk: PASS -> FAIL (fdo#103166) +1
shard-kbl: PASS -> FAIL (fdo#103166)
igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:
shard-apl: PASS -> FAIL (fdo#108145)
shard-kbl: PASS -> FAIL (fdo#108145)
igt@kms_plane_alpha_blend@pipe-a-alpha-transparant-fb:
shard-glk: NOTRUN -> FAIL (fdo#108145)
igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
shard-glk: PASS -> FAIL (fdo#108145)
igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
shard-glk: NOTRUN -> FAIL (fdo#108146)
igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
shard-glk: NOTRUN -> FAIL (fdo#103166)
igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
shard-apl: PASS -> FAIL (fdo#103166) +2
igt@kms_setmode@basic:
shard-glk: NOTRUN -> FAIL (fdo#99912)
shard-hsw: NOTRUN -> FAIL (fdo#99912)
shard-kbl: PASS -> FAIL (fdo#99912)
igt@perf_pmu@render-node-busy-rcs0:
shard-apl: PASS -> INCOMPLETE (fdo#103927)
==== Possible fixes ====
igt@gem_exec_await@wide-contexts:
shard-kbl: FAIL (fdo#106680) -> PASS
igt@gem_ppgtt@blt-vs-render-ctxn:
shard-kbl: INCOMPLETE (fdo#106023, fdo#103665) -> PASS
igt@kms_busy@extended-modeset-hang-oldfb-with-reset-render-b:
shard-apl: DMESG-WARN (fdo#103558, fdo#105602) -> PASS +3
igt@kms_cursor_crc@cursor-128x42-sliding:
shard-apl: FAIL (fdo#103232) -> PASS +1
igt@kms_cursor_crc@cursor-256x256-onscreen:
shard-kbl: FAIL (fdo#103232) -> PASS
igt@kms_cursor_crc@cursor-256x256-random:
shard-glk: FAIL (fdo#103232) -> PASS +2
igt@kms_flip@basic-flip-vs-dpms:
shard-apl: DMESG-FAIL (fdo#103558, fdo#105602) -> PASS
igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
shard-apl: FAIL (fdo#103167) -> PASS +3
igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff:
shard-glk: FAIL (fdo#103167) -> PASS +2
shard-kbl: FAIL (fdo#103167) -> PASS
igt@kms_plane_multiple@atomic-pipe-b-tiling-yf:
shard-kbl: FAIL (fdo#103166) -> PASS +1
shard-apl: FAIL (fdo#103166) -> PASS +2
fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158
fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
fdo#105763 https://bugs.freedesktop.org/show_bug.cgi?id=105763
fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
fdo#106538 https://bugs.freedesktop.org/show_bug.cgi?id=106538
fdo#106641 https://bugs.freedesktop.org/show_bug.cgi?id=106641
fdo#106680 https://bugs.freedesktop.org/show_bug.cgi?id=106680
fdo#107956 https://bugs.freedesktop.org/show_bug.cgi?id=107956
fdo#108145 https://bugs.freedesktop.org/show_bug.cgi?id=108145
fdo#108146 https://bugs.freedesktop.org/show_bug.cgi?id=108146
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
== Participating hosts (6 -> 5) ==
Missing (1): shard-skl
== Build changes ==
* IGT: IGT_4681 -> IGTPW_1955
* Linux: CI_DRM_4989 -> CI_DRM_4990
CI_DRM_4989: fb12f95e5945d56c2f04f1ad4ee491e9e7c2e1c7 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_4990: 0bd34d92e9a27784cb988a300619f497ca0e99ec @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1955: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1955/
IGT_4681: 959d6f95cb1344e0c0dace5b236e17755826fac1 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1955/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
@ 2019-06-20 13:20 ` Daniel Vetter
-1 siblings, 0 replies; 22+ messages in thread
From: Daniel Vetter @ 2019-06-20 13:20 UTC (permalink / raw)
To: Deepak Rawat, Petri Latvala, Arkadiusz Hiler
Cc: IGT development, intel-gfx, VMware Graphics
On Tue, Oct 16, 2018 at 03:23:41PM -0700, Deepak Rawat wrote:
> Call kernel selftest module test-drm_modeset for testing KMS.
>
> v2:
> - Add test alphabetically.
> - Add test to meson build.
>
> v3: Rename to kms_selftest.
>
> Signed-off-by: Deepak Rawat <drawat@vmware.com>
Just realized that this never landed ... any reasons? Would be nice to get
this handled.
Petri/Arek?
Cheers, Daniel
> ---
> tests/Makefile.sources | 1 +
> tests/igt_command_line.sh | 2 +-
> tests/kms_selftest.c | 10 ++++++++++
> tests/meson.build | 1 +
> 4 files changed, 13 insertions(+), 1 deletion(-)
> create mode 100644 tests/kms_selftest.c
>
> diff --git a/tests/Makefile.sources b/tests/Makefile.sources
> index 001f1a2b..cdf5a7e1 100644
> --- a/tests/Makefile.sources
> +++ b/tests/Makefile.sources
> @@ -202,6 +202,7 @@ TESTS_progs = \
> kms_pwrite_crc \
> kms_rmfb \
> kms_rotation_crc \
> + kms_selftest \
> kms_setmode \
> kms_sysfs_edid_timing \
> kms_tv_load_detect \
> diff --git a/tests/igt_command_line.sh b/tests/igt_command_line.sh
> index 8285ba62..a4ec3f95 100755
> --- a/tests/igt_command_line.sh
> +++ b/tests/igt_command_line.sh
> @@ -90,7 +90,7 @@ check_test ()
> # Subtest enumeration of kernel selftest launchers depends
> # on the running kernel. If selftests are not enabled,
> # they will output nothing and exit with 0.
> - if [ "$testname" != "drv_selftest" -a "$testname" != "drm_mm" ]; then
> + if [ "$testname" != "drv_selftest" -a "$testname" != "drm_mm" -a "$testname" != "kms_selftest" ]; then
> fail $test
> fi
> fi
> diff --git a/tests/kms_selftest.c b/tests/kms_selftest.c
> new file mode 100644
> index 00000000..f61ddd99
> --- /dev/null
> +++ b/tests/kms_selftest.c
> @@ -0,0 +1,10 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#include "igt.h"
> +#include "igt_kmod.h"
> +
> +IGT_TEST_DESCRIPTION("Basic sanity check of KMS selftests.");
> +
> +igt_main
> +{
> + igt_kselftests("test-drm_modeset", NULL, NULL, NULL);
> +}
> diff --git a/tests/meson.build b/tests/meson.build
> index 697ff515..d74eb109 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -177,6 +177,7 @@ test_progs = [
> 'kms_pwrite_crc',
> 'kms_rmfb',
> 'kms_rotation_crc',
> + 'kms_selftest',
> 'kms_setmode',
> 'kms_sysfs_edid_timing',
> 'kms_tv_load_detect',
> --
> 2.17.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
@ 2019-06-20 13:20 ` Daniel Vetter
0 siblings, 0 replies; 22+ messages in thread
From: Daniel Vetter @ 2019-06-20 13:20 UTC (permalink / raw)
To: Deepak Rawat, Petri Latvala, Arkadiusz Hiler
Cc: IGT development, intel-gfx, VMware Graphics
On Tue, Oct 16, 2018 at 03:23:41PM -0700, Deepak Rawat wrote:
> Call kernel selftest module test-drm_modeset for testing KMS.
>
> v2:
> - Add test alphabetically.
> - Add test to meson build.
>
> v3: Rename to kms_selftest.
>
> Signed-off-by: Deepak Rawat <drawat@vmware.com>
Just realized that this never landed ... any reasons? Would be nice to get
this handled.
Petri/Arek?
Cheers, Daniel
> ---
> tests/Makefile.sources | 1 +
> tests/igt_command_line.sh | 2 +-
> tests/kms_selftest.c | 10 ++++++++++
> tests/meson.build | 1 +
> 4 files changed, 13 insertions(+), 1 deletion(-)
> create mode 100644 tests/kms_selftest.c
>
> diff --git a/tests/Makefile.sources b/tests/Makefile.sources
> index 001f1a2b..cdf5a7e1 100644
> --- a/tests/Makefile.sources
> +++ b/tests/Makefile.sources
> @@ -202,6 +202,7 @@ TESTS_progs = \
> kms_pwrite_crc \
> kms_rmfb \
> kms_rotation_crc \
> + kms_selftest \
> kms_setmode \
> kms_sysfs_edid_timing \
> kms_tv_load_detect \
> diff --git a/tests/igt_command_line.sh b/tests/igt_command_line.sh
> index 8285ba62..a4ec3f95 100755
> --- a/tests/igt_command_line.sh
> +++ b/tests/igt_command_line.sh
> @@ -90,7 +90,7 @@ check_test ()
> # Subtest enumeration of kernel selftest launchers depends
> # on the running kernel. If selftests are not enabled,
> # they will output nothing and exit with 0.
> - if [ "$testname" != "drv_selftest" -a "$testname" != "drm_mm" ]; then
> + if [ "$testname" != "drv_selftest" -a "$testname" != "drm_mm" -a "$testname" != "kms_selftest" ]; then
> fail $test
> fi
> fi
> diff --git a/tests/kms_selftest.c b/tests/kms_selftest.c
> new file mode 100644
> index 00000000..f61ddd99
> --- /dev/null
> +++ b/tests/kms_selftest.c
> @@ -0,0 +1,10 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#include "igt.h"
> +#include "igt_kmod.h"
> +
> +IGT_TEST_DESCRIPTION("Basic sanity check of KMS selftests.");
> +
> +igt_main
> +{
> + igt_kselftests("test-drm_modeset", NULL, NULL, NULL);
> +}
> diff --git a/tests/meson.build b/tests/meson.build
> index 697ff515..d74eb109 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -177,6 +177,7 @@ test_progs = [
> 'kms_pwrite_crc',
> 'kms_rmfb',
> 'kms_rotation_crc',
> + 'kms_selftest',
> 'kms_setmode',
> 'kms_sysfs_edid_timing',
> 'kms_tv_load_detect',
> --
> 2.17.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
2019-06-20 13:20 ` [igt-dev] [Intel-gfx] " Daniel Vetter
@ 2019-06-25 6:01 ` Arkadiusz Hiler
-1 siblings, 0 replies; 22+ messages in thread
From: Arkadiusz Hiler @ 2019-06-25 6:01 UTC (permalink / raw)
To: Daniel Vetter; +Cc: IGT development, intel-gfx, Deepak Rawat, VMware Graphics
On Thu, Jun 20, 2019 at 03:20:02PM +0200, Daniel Vetter wrote:
> On Tue, Oct 16, 2018 at 03:23:41PM -0700, Deepak Rawat wrote:
> > Call kernel selftest module test-drm_modeset for testing KMS.
> >
> > v2:
> > - Add test alphabetically.
> > - Add test to meson build.
> >
> > v3: Rename to kms_selftest.
> >
> > Signed-off-by: Deepak Rawat <drawat@vmware.com>
>
> Just realized that this never landed ... any reasons? Would be nice to get
> this handled.
>
> Petri/Arek?
>
> Cheers, Daniel
What do you mean by "this never landed"?
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/7766b1e2348b
commit 7766b1e2348b32cc8ed58a972c6fd53b20279549
Author: Deepak Rawat <drawat@vmware.com>
AuthorDate: Tue Oct 16 15:23:41 2018 -0700
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 17 09:41:07 2018 +0200
tests/kms_selftest: Integrate kernel selftest test-drm_modeset
--
Cheers,
Arek
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
@ 2019-06-25 6:01 ` Arkadiusz Hiler
0 siblings, 0 replies; 22+ messages in thread
From: Arkadiusz Hiler @ 2019-06-25 6:01 UTC (permalink / raw)
To: Daniel Vetter; +Cc: IGT development, intel-gfx, VMware Graphics, Petri Latvala
On Thu, Jun 20, 2019 at 03:20:02PM +0200, Daniel Vetter wrote:
> On Tue, Oct 16, 2018 at 03:23:41PM -0700, Deepak Rawat wrote:
> > Call kernel selftest module test-drm_modeset for testing KMS.
> >
> > v2:
> > - Add test alphabetically.
> > - Add test to meson build.
> >
> > v3: Rename to kms_selftest.
> >
> > Signed-off-by: Deepak Rawat <drawat@vmware.com>
>
> Just realized that this never landed ... any reasons? Would be nice to get
> this handled.
>
> Petri/Arek?
>
> Cheers, Daniel
What do you mean by "this never landed"?
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/7766b1e2348b
commit 7766b1e2348b32cc8ed58a972c6fd53b20279549
Author: Deepak Rawat <drawat@vmware.com>
AuthorDate: Tue Oct 16 15:23:41 2018 -0700
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 17 09:41:07 2018 +0200
tests/kms_selftest: Integrate kernel selftest test-drm_modeset
--
Cheers,
Arek
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
2019-06-25 6:01 ` [igt-dev] [Intel-gfx] " Arkadiusz Hiler
@ 2019-06-25 15:37 ` Daniel Vetter
-1 siblings, 0 replies; 22+ messages in thread
From: Daniel Vetter @ 2019-06-25 15:37 UTC (permalink / raw)
To: Arkadiusz Hiler; +Cc: intel-gfx, IGT development, VMware Graphics, Deepak Rawat
On Tue, Jun 25, 2019 at 09:01:32AM +0300, Arkadiusz Hiler wrote:
> On Thu, Jun 20, 2019 at 03:20:02PM +0200, Daniel Vetter wrote:
> > On Tue, Oct 16, 2018 at 03:23:41PM -0700, Deepak Rawat wrote:
> > > Call kernel selftest module test-drm_modeset for testing KMS.
> > >
> > > v2:
> > > - Add test alphabetically.
> > > - Add test to meson build.
> > >
> > > v3: Rename to kms_selftest.
> > >
> > > Signed-off-by: Deepak Rawat <drawat@vmware.com>
> >
> > Just realized that this never landed ... any reasons? Would be nice to get
> > this handled.
> >
> > Petri/Arek?
> >
> > Cheers, Daniel
>
> What do you mean by "this never landed"?
>
> https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/7766b1e2348b
>
> commit 7766b1e2348b32cc8ed58a972c6fd53b20279549
> Author: Deepak Rawat <drawat@vmware.com>
> AuthorDate: Tue Oct 16 15:23:41 2018 -0700
> Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
> CommitDate: Wed Oct 17 09:41:07 2018 +0200
>
> tests/kms_selftest: Integrate kernel selftest test-drm_modeset
Hm not sure what I looked at, but it wasnt there. Sorry for the noise.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
@ 2019-06-25 15:37 ` Daniel Vetter
0 siblings, 0 replies; 22+ messages in thread
From: Daniel Vetter @ 2019-06-25 15:37 UTC (permalink / raw)
To: Arkadiusz Hiler
Cc: Petri Latvala, intel-gfx, IGT development, VMware Graphics,
Daniel Vetter
On Tue, Jun 25, 2019 at 09:01:32AM +0300, Arkadiusz Hiler wrote:
> On Thu, Jun 20, 2019 at 03:20:02PM +0200, Daniel Vetter wrote:
> > On Tue, Oct 16, 2018 at 03:23:41PM -0700, Deepak Rawat wrote:
> > > Call kernel selftest module test-drm_modeset for testing KMS.
> > >
> > > v2:
> > > - Add test alphabetically.
> > > - Add test to meson build.
> > >
> > > v3: Rename to kms_selftest.
> > >
> > > Signed-off-by: Deepak Rawat <drawat@vmware.com>
> >
> > Just realized that this never landed ... any reasons? Would be nice to get
> > this handled.
> >
> > Petri/Arek?
> >
> > Cheers, Daniel
>
> What do you mean by "this never landed"?
>
> https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/7766b1e2348b
>
> commit 7766b1e2348b32cc8ed58a972c6fd53b20279549
> Author: Deepak Rawat <drawat@vmware.com>
> AuthorDate: Tue Oct 16 15:23:41 2018 -0700
> Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
> CommitDate: Wed Oct 17 09:41:07 2018 +0200
>
> tests/kms_selftest: Integrate kernel selftest test-drm_modeset
Hm not sure what I looked at, but it wasnt there. Sorry for the noise.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
2019-06-25 15:37 ` [igt-dev] [Intel-gfx] " Daniel Vetter
@ 2019-07-03 10:37 ` Daniel Vetter
-1 siblings, 0 replies; 22+ messages in thread
From: Daniel Vetter @ 2019-07-03 10:37 UTC (permalink / raw)
To: Arkadiusz Hiler; +Cc: intel-gfx, IGT development, VMware Graphics, Deepak Rawat
On Tue, Jun 25, 2019 at 05:37:01PM +0200, Daniel Vetter wrote:
> On Tue, Jun 25, 2019 at 09:01:32AM +0300, Arkadiusz Hiler wrote:
> > On Thu, Jun 20, 2019 at 03:20:02PM +0200, Daniel Vetter wrote:
> > > On Tue, Oct 16, 2018 at 03:23:41PM -0700, Deepak Rawat wrote:
> > > > Call kernel selftest module test-drm_modeset for testing KMS.
> > > >
> > > > v2:
> > > > - Add test alphabetically.
> > > > - Add test to meson build.
> > > >
> > > > v3: Rename to kms_selftest.
> > > >
> > > > Signed-off-by: Deepak Rawat <drawat@vmware.com>
> > >
> > > Just realized that this never landed ... any reasons? Would be nice to get
> > > this handled.
> > >
> > > Petri/Arek?
> > >
> > > Cheers, Daniel
> >
> > What do you mean by "this never landed"?
> >
> > https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/7766b1e2348b
> >
> > commit 7766b1e2348b32cc8ed58a972c6fd53b20279549
> > Author: Deepak Rawat <drawat@vmware.com>
> > AuthorDate: Tue Oct 16 15:23:41 2018 -0700
> > Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
> > CommitDate: Wed Oct 17 09:41:07 2018 +0200
> >
> > tests/kms_selftest: Integrate kernel selftest test-drm_modeset
>
> Hm not sure what I looked at, but it wasnt there. Sorry for the noise.
Ok this one here landed, but the other 4 didn't ... Can we unblock them
somehow? Or any hold-up? Would be nice to have igts for at least the more
recently added uapi, especially when the tests exist ...
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
@ 2019-07-03 10:37 ` Daniel Vetter
0 siblings, 0 replies; 22+ messages in thread
From: Daniel Vetter @ 2019-07-03 10:37 UTC (permalink / raw)
To: Arkadiusz Hiler
Cc: Petri Latvala, intel-gfx, IGT development, VMware Graphics,
Daniel Vetter
On Tue, Jun 25, 2019 at 05:37:01PM +0200, Daniel Vetter wrote:
> On Tue, Jun 25, 2019 at 09:01:32AM +0300, Arkadiusz Hiler wrote:
> > On Thu, Jun 20, 2019 at 03:20:02PM +0200, Daniel Vetter wrote:
> > > On Tue, Oct 16, 2018 at 03:23:41PM -0700, Deepak Rawat wrote:
> > > > Call kernel selftest module test-drm_modeset for testing KMS.
> > > >
> > > > v2:
> > > > - Add test alphabetically.
> > > > - Add test to meson build.
> > > >
> > > > v3: Rename to kms_selftest.
> > > >
> > > > Signed-off-by: Deepak Rawat <drawat@vmware.com>
> > >
> > > Just realized that this never landed ... any reasons? Would be nice to get
> > > this handled.
> > >
> > > Petri/Arek?
> > >
> > > Cheers, Daniel
> >
> > What do you mean by "this never landed"?
> >
> > https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/7766b1e2348b
> >
> > commit 7766b1e2348b32cc8ed58a972c6fd53b20279549
> > Author: Deepak Rawat <drawat@vmware.com>
> > AuthorDate: Tue Oct 16 15:23:41 2018 -0700
> > Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
> > CommitDate: Wed Oct 17 09:41:07 2018 +0200
> >
> > tests/kms_selftest: Integrate kernel selftest test-drm_modeset
>
> Hm not sure what I looked at, but it wasnt there. Sorry for the noise.
Ok this one here landed, but the other 4 didn't ... Can we unblock them
somehow? Or any hold-up? Would be nice to have igts for at least the more
recently added uapi, especially when the tests exist ...
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
2019-07-03 10:37 ` [igt-dev] [Intel-gfx] " Daniel Vetter
@ 2019-07-03 10:53 ` Arkadiusz Hiler
-1 siblings, 0 replies; 22+ messages in thread
From: Arkadiusz Hiler @ 2019-07-03 10:53 UTC (permalink / raw)
To: Daniel Vetter; +Cc: IGT development, intel-gfx, Deepak Rawat, VMware Graphics
On Wed, Jul 03, 2019 at 12:37:46PM +0200, Daniel Vetter wrote:
> On Tue, Jun 25, 2019 at 05:37:01PM +0200, Daniel Vetter wrote:
> > On Tue, Jun 25, 2019 at 09:01:32AM +0300, Arkadiusz Hiler wrote:
> > > On Thu, Jun 20, 2019 at 03:20:02PM +0200, Daniel Vetter wrote:
> > > > On Tue, Oct 16, 2018 at 03:23:41PM -0700, Deepak Rawat wrote:
> > > > > Call kernel selftest module test-drm_modeset for testing KMS.
> > > > >
> > > > > v2:
> > > > > - Add test alphabetically.
> > > > > - Add test to meson build.
> > > > >
> > > > > v3: Rename to kms_selftest.
> > > > >
> > > > > Signed-off-by: Deepak Rawat <drawat@vmware.com>
> > > >
> > > > Just realized that this never landed ... any reasons? Would be nice to get
> > > > this handled.
> > > >
> > > > Petri/Arek?
> > > >
> > > > Cheers, Daniel
> > >
> > > What do you mean by "this never landed"?
> > >
> > > https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/7766b1e2348b
> > >
> > > commit 7766b1e2348b32cc8ed58a972c6fd53b20279549
> > > Author: Deepak Rawat <drawat@vmware.com>
> > > AuthorDate: Tue Oct 16 15:23:41 2018 -0700
> > > Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
> > > CommitDate: Wed Oct 17 09:41:07 2018 +0200
> > >
> > > tests/kms_selftest: Integrate kernel selftest test-drm_modeset
> >
> > Hm not sure what I looked at, but it wasnt there. Sorry for the noise.
>
> Ok this one here landed, but the other 4 didn't ... Can we unblock them
> somehow? Or any hold-up? Would be nice to have igts for at least the more
> recently added uapi, especially when the tests exist ...
> -Daniel
I guess you are talking about https://patchwork.freedesktop.org/series/51087/
Seems like patches 1, 2, 3 and 5 are merged (see below).
The only patch that was not merged is "Some simple test cases to use
FB_DAMAGE_CLIPS plane property.":
https://patchwork.freedesktop.org/patch/257081/?series=51087&rev=1
Sorry but I jut feel lost here. Can you provide more context?
So what exactely haven't landed? What is still missing?
Looking through the archives it's impossible to tell what exactely
happened there. I have no idea why the 4th patch was left out and why
the other patches lack rb or ack and just have a second s-o-b.
commit 7766b1e2348b32cc8ed58a972c6fd53b20279549
Author: Deepak Rawat <drawat@vmware.com>
AuthorDate: Tue Oct 16 15:23:41 2018 -0700
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 17 09:41:07 2018 +0200
tests/kms_selftest: Integrate kernel selftest test-drm_modeset
Call kernel selftest module test-drm_modeset for testing KMS.
v2:
- Add test alphabetically.
- Add test to meson build.
v3: Rename to kms_selftest.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
commit 759af708db65d8f9fc2218e3445cfb903c8be72a
Author: Deepak Rawat <drawat@vmware.com>
AuthorDate: Tue Oct 16 15:23:39 2018 -0700
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 17 09:41:00 2018 +0200
lib: Don't call igt_require_fb_modifiers() when no modifier
vmwgfx and amdgpu doesn't support fb modifiers, yet kms_addfb() requires
modifier support. Since many tests don't need this to run, the
requirement can be made less broad.
Therefore, tighten the requirement to cases where modifiers are actually
needed.
v2:
* In create_fb() calls to kms_addfb(), remove the modifier flag iff the
driver doesn't support modifiers and the modifer is 0
* Don't modify the flag in kms_addfb().
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
commit c7034c780629b6f678dfe5021c38bc820a34e19d
Author: Deepak Rawat <drawat@vmware.com>
AuthorDate: Tue Oct 16 15:23:38 2018 -0700
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 17 09:40:55 2018 +0200
lib/igt_fb: Check for cairo surface success
For vmwgfx cairo surface creation fails due to stride mismatch, add a
igt_require_f() for surface.
v2: Check for surface creation failure.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
commit 4ca3d1de874bd269b37055f1a4cc6de04ea2d050
Author: Deepak Rawat <drawat@vmware.com>
AuthorDate: Tue Oct 16 15:23:37 2018 -0700
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 17 09:40:51 2018 +0200
lib/igt_fb: Call dumb_destroy ioctl in case of dumb buffers
vmwgfx does not support GEM interface so calling gem_close on vmwgfx
results in error.
v2: Use drmIoctl with error when ioctl() failed.
v3: Seperate ioctl wrapper.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset
@ 2019-07-03 10:53 ` Arkadiusz Hiler
0 siblings, 0 replies; 22+ messages in thread
From: Arkadiusz Hiler @ 2019-07-03 10:53 UTC (permalink / raw)
To: Daniel Vetter; +Cc: IGT development, intel-gfx, VMware Graphics, Petri Latvala
On Wed, Jul 03, 2019 at 12:37:46PM +0200, Daniel Vetter wrote:
> On Tue, Jun 25, 2019 at 05:37:01PM +0200, Daniel Vetter wrote:
> > On Tue, Jun 25, 2019 at 09:01:32AM +0300, Arkadiusz Hiler wrote:
> > > On Thu, Jun 20, 2019 at 03:20:02PM +0200, Daniel Vetter wrote:
> > > > On Tue, Oct 16, 2018 at 03:23:41PM -0700, Deepak Rawat wrote:
> > > > > Call kernel selftest module test-drm_modeset for testing KMS.
> > > > >
> > > > > v2:
> > > > > - Add test alphabetically.
> > > > > - Add test to meson build.
> > > > >
> > > > > v3: Rename to kms_selftest.
> > > > >
> > > > > Signed-off-by: Deepak Rawat <drawat@vmware.com>
> > > >
> > > > Just realized that this never landed ... any reasons? Would be nice to get
> > > > this handled.
> > > >
> > > > Petri/Arek?
> > > >
> > > > Cheers, Daniel
> > >
> > > What do you mean by "this never landed"?
> > >
> > > https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/7766b1e2348b
> > >
> > > commit 7766b1e2348b32cc8ed58a972c6fd53b20279549
> > > Author: Deepak Rawat <drawat@vmware.com>
> > > AuthorDate: Tue Oct 16 15:23:41 2018 -0700
> > > Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
> > > CommitDate: Wed Oct 17 09:41:07 2018 +0200
> > >
> > > tests/kms_selftest: Integrate kernel selftest test-drm_modeset
> >
> > Hm not sure what I looked at, but it wasnt there. Sorry for the noise.
>
> Ok this one here landed, but the other 4 didn't ... Can we unblock them
> somehow? Or any hold-up? Would be nice to have igts for at least the more
> recently added uapi, especially when the tests exist ...
> -Daniel
I guess you are talking about https://patchwork.freedesktop.org/series/51087/
Seems like patches 1, 2, 3 and 5 are merged (see below).
The only patch that was not merged is "Some simple test cases to use
FB_DAMAGE_CLIPS plane property.":
https://patchwork.freedesktop.org/patch/257081/?series=51087&rev=1
Sorry but I jut feel lost here. Can you provide more context?
So what exactely haven't landed? What is still missing?
Looking through the archives it's impossible to tell what exactely
happened there. I have no idea why the 4th patch was left out and why
the other patches lack rb or ack and just have a second s-o-b.
commit 7766b1e2348b32cc8ed58a972c6fd53b20279549
Author: Deepak Rawat <drawat@vmware.com>
AuthorDate: Tue Oct 16 15:23:41 2018 -0700
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 17 09:41:07 2018 +0200
tests/kms_selftest: Integrate kernel selftest test-drm_modeset
Call kernel selftest module test-drm_modeset for testing KMS.
v2:
- Add test alphabetically.
- Add test to meson build.
v3: Rename to kms_selftest.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
commit 759af708db65d8f9fc2218e3445cfb903c8be72a
Author: Deepak Rawat <drawat@vmware.com>
AuthorDate: Tue Oct 16 15:23:39 2018 -0700
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 17 09:41:00 2018 +0200
lib: Don't call igt_require_fb_modifiers() when no modifier
vmwgfx and amdgpu doesn't support fb modifiers, yet kms_addfb() requires
modifier support. Since many tests don't need this to run, the
requirement can be made less broad.
Therefore, tighten the requirement to cases where modifiers are actually
needed.
v2:
* In create_fb() calls to kms_addfb(), remove the modifier flag iff the
driver doesn't support modifiers and the modifer is 0
* Don't modify the flag in kms_addfb().
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
commit c7034c780629b6f678dfe5021c38bc820a34e19d
Author: Deepak Rawat <drawat@vmware.com>
AuthorDate: Tue Oct 16 15:23:38 2018 -0700
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 17 09:40:55 2018 +0200
lib/igt_fb: Check for cairo surface success
For vmwgfx cairo surface creation fails due to stride mismatch, add a
igt_require_f() for surface.
v2: Check for surface creation failure.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
commit 4ca3d1de874bd269b37055f1a4cc6de04ea2d050
Author: Deepak Rawat <drawat@vmware.com>
AuthorDate: Tue Oct 16 15:23:37 2018 -0700
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Wed Oct 17 09:40:51 2018 +0200
lib/igt_fb: Call dumb_destroy ioctl in case of dumb buffers
vmwgfx does not support GEM interface so calling gem_close on vmwgfx
results in error.
v2: Use drmIoctl with error when ioctl() failed.
v3: Seperate ioctl wrapper.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2019-07-03 10:53 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-16 22:23 [PATCH i-g-t 1/5] lib/igt_fb: Call dumb_destroy ioctl in case of dumb buffers Deepak Rawat
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
2018-10-16 22:23 ` [PATCH i-g-t 2/5] lib/igt_fb: Check for cairo surface success Deepak Rawat
2018-10-16 22:23 ` [Intel-gfx] " Deepak Rawat
2018-10-16 22:23 ` [PATCH i-g-t 3/5] lib: Don't call igt_require_fb_modifiers() when no modifier Deepak Rawat
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
2018-10-16 22:23 ` [PATCH i-g-t 4/5] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property Deepak Rawat
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
2018-10-16 22:23 ` [PATCH i-g-t 5/5] tests/kms_selftest: Integrate kernel selftest test-drm_modeset Deepak Rawat
2018-10-16 22:23 ` [igt-dev] " Deepak Rawat
2019-06-20 13:20 ` Daniel Vetter
2019-06-20 13:20 ` [igt-dev] [Intel-gfx] " Daniel Vetter
2019-06-25 6:01 ` Arkadiusz Hiler
2019-06-25 6:01 ` [igt-dev] [Intel-gfx] " Arkadiusz Hiler
2019-06-25 15:37 ` Daniel Vetter
2019-06-25 15:37 ` [igt-dev] [Intel-gfx] " Daniel Vetter
2019-07-03 10:37 ` Daniel Vetter
2019-07-03 10:37 ` [igt-dev] [Intel-gfx] " Daniel Vetter
2019-07-03 10:53 ` Arkadiusz Hiler
2019-07-03 10:53 ` [igt-dev] [Intel-gfx] " Arkadiusz Hiler
2018-10-17 0:09 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_fb: Call dumb_destroy ioctl in case of dumb buffers Patchwork
2018-10-17 2:26 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.