All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec
@ 2020-01-30 15:12 Ville Syrjala
  2020-01-30 15:12 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_kms: Add igt_reduce_format() Ville Syrjala
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Ville Syrjala @ 2020-01-30 15:12 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Add a small std::vector lookalike which grows as needed.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/Makefile.sources |  2 ++
 lib/igt_vec.c        | 86 ++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_vec.h        | 40 +++++++++++++++++++++
 lib/meson.build      |  1 +
 4 files changed, 129 insertions(+)
 create mode 100644 lib/igt_vec.c
 create mode 100644 lib/igt_vec.h

diff --git a/lib/Makefile.sources b/lib/Makefile.sources
index 631d6714e5ce..3e573f267e15 100644
--- a/lib/Makefile.sources
+++ b/lib/Makefile.sources
@@ -62,6 +62,8 @@ lib_source_list =	 	\
 	igt_sysrq.h		\
 	igt_x86.h		\
 	igt_x86.c		\
+	igt_vec.c		\
+	igt_vec.h		\
 	igt_vgem.c		\
 	igt_vgem.h		\
 	instdone.c		\
diff --git a/lib/igt_vec.c b/lib/igt_vec.c
new file mode 100644
index 000000000000..dc4a6172fc8d
--- /dev/null
+++ b/lib/igt_vec.c
@@ -0,0 +1,86 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "igt_core.h"
+#include "igt_vec.h"
+
+void igt_vec_init(struct igt_vec *vec, int elem_size)
+{
+	memset(vec, 0, sizeof(*vec));
+	vec->elem_size = elem_size;
+}
+
+void igt_vec_fini(struct igt_vec *vec)
+{
+	free(vec->elems);
+	memset(vec, 0, sizeof(*vec));
+}
+
+void *igt_vec_elem(const struct igt_vec *vec, int idx)
+{
+	igt_assert(idx < vec->len);
+
+	return vec->elems + idx * vec->elem_size;
+}
+
+void igt_vec_push(struct igt_vec *vec, void *elem)
+{
+	if (vec->len >= vec->size) {
+		vec->size = vec->size ? vec->size * 2 : 8;
+		vec->elems = realloc(vec->elems, vec->size * vec->elem_size);
+		igt_assert(vec->elems);
+	}
+
+	vec->len++;
+	memcpy(igt_vec_elem(vec, vec->len - 1), elem, vec->elem_size);
+}
+
+int igt_vec_length(const struct igt_vec *vec)
+{
+	return vec->len;
+}
+
+int igt_vec_index(const struct igt_vec *vec, void *elem)
+{
+	for (int i = 0; i < vec->len; i++) {
+		if (!memcmp(igt_vec_elem(vec, i), elem, vec->elem_size))
+			return i;
+	}
+
+	return -1;
+}
+
+void igt_vec_remove(struct igt_vec *vec, int idx)
+{
+	igt_assert(idx < vec->len);
+
+	if (idx < vec->len - 1)
+		memmove(igt_vec_elem(vec, idx),
+			igt_vec_elem(vec, idx + 1),
+			(vec->len - 1 - idx) * vec->elem_size);
+
+	vec->len--;
+}
diff --git a/lib/igt_vec.h b/lib/igt_vec.h
new file mode 100644
index 000000000000..de2549a45841
--- /dev/null
+++ b/lib/igt_vec.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef __IGT_VEC_H__
+#define __IGT_VEC_H__
+
+struct igt_vec {
+	void *elems;
+	int elem_size, size, len;
+};
+
+void igt_vec_init(struct igt_vec *vec, int elem_size);
+void igt_vec_fini(struct igt_vec *vec);
+void igt_vec_push(struct igt_vec *vec, void *elem);
+int igt_vec_length(const struct igt_vec *vec);
+void *igt_vec_elem(const struct igt_vec *vec, int idx);
+int igt_vec_index(const struct igt_vec *vec, void *elem);
+void igt_vec_remove(struct igt_vec *vec, int idx);
+
+#endif /* __IGT_VEC_H__ */
diff --git a/lib/meson.build b/lib/meson.build
index d87546185ade..e87e5803610f 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -24,6 +24,7 @@ lib_sources = [
 	'igt_syncobj.c',
 	'igt_sysfs.c',
 	'igt_sysrq.c',
+	'igt_vec.c',
 	'igt_vgem.c',
 	'igt_x86.c',
 	'instdone.c',
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t 2/3] lib/igt_kms: Add igt_reduce_format()
  2020-01-30 15:12 [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Ville Syrjala
@ 2020-01-30 15:12 ` Ville Syrjala
  2020-01-30 15:38   ` Chris Wilson
  2020-02-03 16:35   ` [igt-dev] [PATCH i-g-t v2 " Ville Syrjala
  2020-01-30 15:12 ` [igt-dev] [PATCH i-g-t 3/3] tests/kms_plane_scaling: Don't test every pixel format Ville Syrjala
                   ` (6 subsequent siblings)
  7 siblings, 2 replies; 15+ messages in thread
From: Ville Syrjala @ 2020-01-30 15:12 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Add a helper to reduce a pixel format to a "base" format.
Ie. group all formats to some idea of classes based on the
bits per pixel + component sizes etc. ignoring any component ordering.
Let's us skip potentially redundant tests when all we might care
about is testing each format "class" the once.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_kms.h |  1 +
 2 files changed, 80 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index d20daaad7764..2b075c435291 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -4474,3 +4474,82 @@ void igt_parse_connector_tile_blob(drmModePropertyBlobPtr blob,
 	tile->tile_h_size = atoi(strtok(NULL, ":"));
 	tile->tile_v_size = atoi(strtok(NULL, ":"));
 }
+
+uint32_t igt_reduce_format(uint32_t format)
+{
+	switch (format) {
+	case DRM_FORMAT_RGB332:
+	case DRM_FORMAT_BGR233:
+		return DRM_FORMAT_RGB332;
+	case DRM_FORMAT_XRGB1555:
+	case DRM_FORMAT_XBGR1555:
+	case DRM_FORMAT_ARGB1555:
+	case DRM_FORMAT_ABGR1555:
+	case DRM_FORMAT_RGBX5551:
+	case DRM_FORMAT_BGRX5551:
+	case DRM_FORMAT_RGBA5551:
+	case DRM_FORMAT_BGRA5551:
+		return DRM_FORMAT_XRGB1555;
+	case DRM_FORMAT_RGB565:
+	case DRM_FORMAT_BGR565:
+		return DRM_FORMAT_RGB565;
+	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_ARGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_RGBX8888:
+	case DRM_FORMAT_BGRX8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_BGRA8888:
+		return DRM_FORMAT_XRGB8888;
+	case DRM_FORMAT_XRGB2101010:
+	case DRM_FORMAT_XBGR2101010:
+	case DRM_FORMAT_ARGB2101010:
+	case DRM_FORMAT_ABGR2101010:
+	case DRM_FORMAT_RGBX1010102:
+	case DRM_FORMAT_BGRX1010102:
+	case DRM_FORMAT_RGBA1010102:
+	case DRM_FORMAT_BGRA1010102:
+		return DRM_FORMAT_XRGB2101010;
+	case DRM_FORMAT_XRGB16161616F:
+	case DRM_FORMAT_XBGR16161616F:
+	case DRM_FORMAT_ARGB16161616F:
+	case DRM_FORMAT_ABGR16161616F:
+		return DRM_FORMAT_XRGB16161616F;
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_UYVY:
+	case DRM_FORMAT_YVYU:
+	case DRM_FORMAT_VYUY:
+		return DRM_FORMAT_YUYV;
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+		return DRM_FORMAT_NV12;
+	case DRM_FORMAT_NV16:
+	case DRM_FORMAT_NV61:
+		return DRM_FORMAT_NV16;
+	case DRM_FORMAT_NV24:
+	case DRM_FORMAT_NV42:
+		return DRM_FORMAT_NV24;
+	case DRM_FORMAT_P010:
+	case DRM_FORMAT_P012:
+	case DRM_FORMAT_P016:
+		return DRM_FORMAT_P010;
+	case DRM_FORMAT_Y210:
+	case DRM_FORMAT_Y212:
+	case DRM_FORMAT_Y216:
+		return DRM_FORMAT_Y210;
+	case DRM_FORMAT_XYUV8888:
+	case DRM_FORMAT_AYUV:
+		return DRM_FORMAT_XYUV8888;
+	case DRM_FORMAT_XVYU2101010:
+	case DRM_FORMAT_Y410:
+		return DRM_FORMAT_XVYU2101010;
+	case DRM_FORMAT_XVYU12_16161616:
+	case DRM_FORMAT_XVYU16161616:
+	case DRM_FORMAT_Y412:
+	case DRM_FORMAT_Y416:
+		return DRM_FORMAT_XVYU12_16161616;
+	default:
+		return format;
+	}
+}
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 6c919e92f488..66b0de516e3c 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -846,5 +846,6 @@ void igt_parse_connector_tile_blob(drmModePropertyBlobPtr blob,
 
 int igt_connector_sysfs_open(int drm_fd,
 			     drmModeConnector *connector);
+uint32_t igt_reduce_format(uint32_t format);
 
 #endif /* __IGT_KMS_H__ */
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t 3/3] tests/kms_plane_scaling: Don't test every pixel format
  2020-01-30 15:12 [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Ville Syrjala
  2020-01-30 15:12 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_kms: Add igt_reduce_format() Ville Syrjala
@ 2020-01-30 15:12 ` Ville Syrjala
  2020-01-30 15:40   ` Chris Wilson
  2020-01-30 15:31 ` [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Chris Wilson
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjala @ 2020-01-30 15:12 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

We probably don't need to test every pixel format, so let's just
test one format for each format "class" (as defined by
igt_reduce_format()).

Speeds up the test considerably (on KBL):
$ time ./build/tests/kms_plane_scaling --r pipe-A-scaler-with-clipping-clamping
- real	0m25,186s
+ real	0m3,440s

As with kms_plane we'll add a new command line argument (--extended)
which can be used to test all formats.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_plane_scaling.c | 80 ++++++++++++++++++++++++++++++++++++---
 1 file changed, 74 insertions(+), 6 deletions(-)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 35aac8dad078..19087286a0f9 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -23,6 +23,7 @@
  */
 
 #include "igt.h"
+#include "igt_vec.h"
 #include <math.h>
 
 
@@ -43,6 +44,7 @@ typedef struct {
 	igt_plane_t *plane2;
 	igt_plane_t *plane3;
 	igt_plane_t *plane4;
+	bool extended;
 } data_t;
 
 static int get_num_scalers(data_t* d, enum pipe pipe)
@@ -221,6 +223,28 @@ static bool can_scale(data_t *d, unsigned format)
 	}
 }
 
+static bool test_format(data_t *data,
+			struct igt_vec *tested_formats,
+			uint32_t format)
+{
+	if (!igt_fb_supported_format(format))
+		return false;
+
+	if (!is_i915_device(data->drm_fd) ||
+	    data->extended)
+		return true;
+
+	format = igt_reduce_format(format);
+
+	/* only test each format "class" once */
+	if (igt_vec_index(tested_formats, &format) >= 0)
+		return false;
+
+	igt_vec_push(tested_formats, &format);
+
+	return true;
+}
+
 static void test_scaler_with_rotation_pipe(data_t *d, enum pipe pipe,
 					   igt_output_t *output)
 {
@@ -236,10 +260,14 @@ static void test_scaler_with_rotation_pipe(data_t *d, enum pipe pipe,
 
 		for (int i = 0; i < ARRAY_SIZE(rotations); i++) {
 			igt_rotation_t rot = rotations[i];
+			struct igt_vec tested_formats;
+
+			igt_vec_init(&tested_formats, sizeof(uint32_t));
+
 			for (int j = 0; j < plane->drm_plane->count_formats; j++) {
 				unsigned format = plane->drm_plane->formats[j];
 
-				if (igt_fb_supported_format(format) &&
+				if (test_format(d, &tested_formats, format) &&
 				    igt_plane_has_format_mod(plane, format, tiling) &&
 				    can_rotate(d, format, tiling, rot) &&
 				    can_scale(d, format))
@@ -247,6 +275,8 @@ static void test_scaler_with_rotation_pipe(data_t *d, enum pipe pipe,
 								     tiling, pipe,
 								     output, rot);
 			}
+
+			igt_vec_fini(&tested_formats);
 		}
 	}
 }
@@ -271,17 +301,22 @@ static void test_scaler_with_pixel_format_pipe(data_t *d, enum pipe pipe, igt_ou
 
 		for (int i = 0; i < ARRAY_SIZE(tilings); i++) {
 			uint64_t tiling = tilings[i];
+			struct igt_vec tested_formats;
+
+			igt_vec_init(&tested_formats, sizeof(uint32_t));
 
 			for (int j = 0; j < plane->drm_plane->count_formats; j++) {
 				uint32_t format = plane->drm_plane->formats[j];
 
-				if (igt_fb_supported_format(format) &&
+				if (test_format(d, &tested_formats, format) &&
 				    igt_plane_has_format_mod(plane, format, tiling) &&
 				    can_scale(d, format))
 					check_scaling_pipe_plane_rot(d, plane,
 								     format, tiling,
 								     pipe, output, IGT_ROTATION_0);
 			}
+
+			igt_vec_fini(&tested_formats);
 		}
 	}
 }
@@ -502,6 +537,7 @@ test_scaler_with_clipping_clamping_scenario(data_t *d, enum pipe pipe, igt_outpu
 {
 	igt_pipe_t *pipe_obj = &d->display.pipes[pipe];
 	drmModeModeInfo *mode;
+	struct igt_vec tested_formats1;
 
 	igt_require(get_num_scalers(d, pipe) >= 2);
 
@@ -510,22 +546,32 @@ test_scaler_with_clipping_clamping_scenario(data_t *d, enum pipe pipe, igt_outpu
 	d->plane2 = igt_pipe_get_plane_type(pipe_obj, DRM_PLANE_TYPE_OVERLAY);
 	prepare_crtc(d, output, pipe, d->plane1, mode);
 
+	igt_vec_init(&tested_formats1, sizeof(uint32_t));
+
 	for (int i = 0; i < d->plane1->drm_plane->count_formats; i++) {
 		unsigned f1 = d->plane1->drm_plane->formats[i];
-		if (!igt_fb_supported_format(f1) ||
+		struct igt_vec tested_formats2;
+
+		if (!test_format(d, &tested_formats1, f1) ||
 		    !can_scale(d, f1))
 			continue;
 
+		igt_vec_init(&tested_formats2, sizeof(uint32_t));
+
 		for (int j = 0; j < d->plane2->drm_plane->count_formats; j++) {
 			unsigned f2 = d->plane2->drm_plane->formats[j];
 
-			if (!igt_fb_supported_format(f2) ||
+			if (!test_format(d, &tested_formats2, f2) ||
 			    !can_scale(d, f2))
 				continue;
 
 			__test_scaler_with_clipping_clamping_scenario(d, mode, f1, f2);
 		}
+
+		igt_vec_fini(&tested_formats2);
 	}
+
+	igt_vec_fini(&tested_formats1);
 }
 
 static void find_connected_pipe(igt_display_t *display, bool second, enum pipe *pipe, igt_output_t **output)
@@ -619,9 +665,31 @@ static void test_scaler_with_multi_pipe_plane(data_t *d)
 	igt_display_commit2(display, COMMIT_ATOMIC);
 }
 
-igt_main
+static int opt_handler(int opt, int opt_index, void *_data)
+{
+	data_t *data = _data;
+
+	switch (opt) {
+	case 'e':
+		data->extended = true;
+		break;
+	}
+
+	return IGT_OPT_HANDLER_SUCCESS;
+}
+
+static const struct option long_opts[] = {
+	{ .name = "extended", .has_arg = false, .val = 'e', },
+	{}
+};
+
+static const char help_str[] =
+	"  --extended\t\tRun the extended tests\n";
+
+static data_t data;
+
+igt_main_args("", long_opts, help_str, opt_handler, &data)
 {
-	data_t data = {};
 	enum pipe pipe;
 
 	igt_fixture {
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec
  2020-01-30 15:12 [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Ville Syrjala
  2020-01-30 15:12 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_kms: Add igt_reduce_format() Ville Syrjala
  2020-01-30 15:12 ` [igt-dev] [PATCH i-g-t 3/3] tests/kms_plane_scaling: Don't test every pixel format Ville Syrjala
@ 2020-01-30 15:31 ` Chris Wilson
  2020-01-30 15:54   ` Ville Syrjälä
  2020-01-30 16:10 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] " Patchwork
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Chris Wilson @ 2020-01-30 15:31 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

Quoting Ville Syrjala (2020-01-30 15:12:27)
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Add a small std::vector lookalike which grows as needed.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  lib/Makefile.sources |  2 ++
>  lib/igt_vec.c        | 86 ++++++++++++++++++++++++++++++++++++++++++++
>  lib/igt_vec.h        | 40 +++++++++++++++++++++
>  lib/meson.build      |  1 +
>  4 files changed, 129 insertions(+)
>  create mode 100644 lib/igt_vec.c
>  create mode 100644 lib/igt_vec.h
> 
> diff --git a/lib/Makefile.sources b/lib/Makefile.sources
> index 631d6714e5ce..3e573f267e15 100644
> --- a/lib/Makefile.sources
> +++ b/lib/Makefile.sources
> @@ -62,6 +62,8 @@ lib_source_list =             \
>         igt_sysrq.h             \
>         igt_x86.h               \
>         igt_x86.c               \
> +       igt_vec.c               \
> +       igt_vec.h               \
>         igt_vgem.c              \
>         igt_vgem.h              \
>         instdone.c              \
> diff --git a/lib/igt_vec.c b/lib/igt_vec.c
> new file mode 100644
> index 000000000000..dc4a6172fc8d
> --- /dev/null
> +++ b/lib/igt_vec.c
> @@ -0,0 +1,86 @@
> +/*
> + * Copyright © 2020 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> + * IN THE SOFTWARE.
> + */
> +
> +#include <stdlib.h>
> +#include <string.h>
> +
> +#include "igt_core.h"
> +#include "igt_vec.h"
> +
> +void igt_vec_init(struct igt_vec *vec, int elem_size)
> +{
> +       memset(vec, 0, sizeof(*vec));
> +       vec->elem_size = elem_size;
> +}
> +
> +void igt_vec_fini(struct igt_vec *vec)
> +{
> +       free(vec->elems);
> +       memset(vec, 0, sizeof(*vec));
> +}
> +
> +void *igt_vec_elem(const struct igt_vec *vec, int idx)
> +{
> +       igt_assert(idx < vec->len);
> +
> +       return vec->elems + idx * vec->elem_size;
> +}
> +
> +void igt_vec_push(struct igt_vec *vec, void *elem)
> +{
> +       if (vec->len >= vec->size) {
> +               vec->size = vec->size ? vec->size * 2 : 8;
> +               vec->elems = realloc(vec->elems, vec->size * vec->elem_size);
> +               igt_assert(vec->elems);
> +       }
> +
> +       vec->len++;
> +       memcpy(igt_vec_elem(vec, vec->len - 1), elem, vec->elem_size);

I would have split this into 

void *igt_vec_grow(struct igt_vec *vec)
{
       if (vec->len++ >= vec->size) {
               vec->size = vec->size ? vec->size * 2 : 8;
               vec->elems = realloc(vec->elems, vec->size * vec->elem_size);
               igt_assert(vec->elems);
       }

       return igt_vec_elem(vec, vec->len - 1);
}

igt_vec_push(vec, elem)
{
	memcpy(igt_vec_grow(vec), elem, vec->size);
}

since we are happy to throw assertions and not worry too much about
error propagation.

> +
> +       vec->len++;
> +}
> +
> +int igt_vec_length(const struct igt_vec *vec)
> +{
> +       return vec->len;
> +}
> +
> +int igt_vec_index(const struct igt_vec *vec, void *elem)
> +{
> +       for (int i = 0; i < vec->len; i++) {
> +               if (!memcmp(igt_vec_elem(vec, i), elem, vec->elem_size))
> +                       return i;
> +       }
> +
> +       return -1;
> +}
> +
> +void igt_vec_remove(struct igt_vec *vec, int idx)
> +{
> +       igt_assert(idx < vec->len);
> +
> +       if (idx < vec->len - 1)
> +               memmove(igt_vec_elem(vec, idx),
> +                       igt_vec_elem(vec, idx + 1),
> +                       (vec->len - 1 - idx) * vec->elem_size);

memmove of 0 not to your liking?

> +
> +       vec->len--;
> +}
> diff --git a/lib/igt_vec.h b/lib/igt_vec.h
> new file mode 100644
> index 000000000000..de2549a45841
> --- /dev/null
> +++ b/lib/igt_vec.h
> @@ -0,0 +1,40 @@
> +/*
> + * Copyright © 2020 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> + * IN THE SOFTWARE.
> + */
> +
> +#ifndef __IGT_VEC_H__
> +#define __IGT_VEC_H__
> +
> +struct igt_vec {
> +       void *elems;
> +       int elem_size, size, len;

I would have used char[0] and casting just to have a variable length
struct :)

I might have also used longs throughout instead of ints, or in this day
and age, size_t.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 2/3] lib/igt_kms: Add igt_reduce_format()
  2020-01-30 15:12 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_kms: Add igt_reduce_format() Ville Syrjala
@ 2020-01-30 15:38   ` Chris Wilson
  2020-02-03 16:35   ` [igt-dev] [PATCH i-g-t v2 " Ville Syrjala
  1 sibling, 0 replies; 15+ messages in thread
From: Chris Wilson @ 2020-01-30 15:38 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

Quoting Ville Syrjala (2020-01-30 15:12:28)
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Add a helper to reduce a pixel format to a "base" format.
> Ie. group all formats to some idea of classes based on the
> bits per pixel + component sizes etc. ignoring any component ordering.
> Let's us skip potentially redundant tests when all we might care
> about is testing each format "class" the once.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  lib/igt_kms.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  lib/igt_kms.h |  1 +
>  2 files changed, 80 insertions(+)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index d20daaad7764..2b075c435291 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -4474,3 +4474,82 @@ void igt_parse_connector_tile_blob(drmModePropertyBlobPtr blob,
>         tile->tile_h_size = atoi(strtok(NULL, ":"));
>         tile->tile_v_size = atoi(strtok(NULL, ":"));
>  }
> +
> +uint32_t igt_reduce_format(uint32_t format)
> +{

/*
 * Any words of wisdom on how/why these are reduced to a representative
 * format for each class? Just in case a new format is introduced and we
 * want to decide if it's a new class or should be aliased to an older
 * one.
 */
> +       switch (format) {
> +       case DRM_FORMAT_RGB332:
> +       case DRM_FORMAT_BGR233:
> +               return DRM_FORMAT_RGB332;
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 3/3] tests/kms_plane_scaling: Don't test every pixel format
  2020-01-30 15:12 ` [igt-dev] [PATCH i-g-t 3/3] tests/kms_plane_scaling: Don't test every pixel format Ville Syrjala
@ 2020-01-30 15:40   ` Chris Wilson
  2020-01-30 15:57     ` Ville Syrjälä
  0 siblings, 1 reply; 15+ messages in thread
From: Chris Wilson @ 2020-01-30 15:40 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

Quoting Ville Syrjala (2020-01-30 15:12:29)
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> We probably don't need to test every pixel format, so let's just
> test one format for each format "class" (as defined by
> igt_reduce_format()).
> 
> Speeds up the test considerably (on KBL):
> $ time ./build/tests/kms_plane_scaling --r pipe-A-scaler-with-clipping-clamping
> - real  0m25,186s
> + real  0m3,440s
> 
> As with kms_plane we'll add a new command line argument (--extended)
> which can be used to test all formats.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  tests/kms_plane_scaling.c | 80 ++++++++++++++++++++++++++++++++++++---
>  1 file changed, 74 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index 35aac8dad078..19087286a0f9 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -23,6 +23,7 @@
>   */
>  
>  #include "igt.h"
> +#include "igt_vec.h"
>  #include <math.h>
>  
>  
> @@ -43,6 +44,7 @@ typedef struct {
>         igt_plane_t *plane2;
>         igt_plane_t *plane3;
>         igt_plane_t *plane4;
> +       bool extended;
>  } data_t;
>  
>  static int get_num_scalers(data_t* d, enum pipe pipe)
> @@ -221,6 +223,28 @@ static bool can_scale(data_t *d, unsigned format)
>         }
>  }
>  
> +static bool test_format(data_t *data,
> +                       struct igt_vec *tested_formats,
> +                       uint32_t format)
> +{
> +       if (!igt_fb_supported_format(format))
> +               return false;
> +
> +       if (!is_i915_device(data->drm_fd) ||
> +           data->extended)
> +               return true;
> +
> +       format = igt_reduce_format(format);
> +
> +       /* only test each format "class" once */
> +       if (igt_vec_index(tested_formats, &format) >= 0)
> +               return false;
> +
> +       igt_vec_push(tested_formats, &format);

Ok, that does exactly what you describe.

However, that lookup is giving me the shivers, but it does the job so
long as we don't have too many formats.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec
  2020-01-30 15:31 ` [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Chris Wilson
@ 2020-01-30 15:54   ` Ville Syrjälä
  2020-01-30 16:00     ` Chris Wilson
  0 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjälä @ 2020-01-30 15:54 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

On Thu, Jan 30, 2020 at 03:31:41PM +0000, Chris Wilson wrote:
> Quoting Ville Syrjala (2020-01-30 15:12:27)
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Add a small std::vector lookalike which grows as needed.
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  lib/Makefile.sources |  2 ++
> >  lib/igt_vec.c        | 86 ++++++++++++++++++++++++++++++++++++++++++++
> >  lib/igt_vec.h        | 40 +++++++++++++++++++++
> >  lib/meson.build      |  1 +
> >  4 files changed, 129 insertions(+)
> >  create mode 100644 lib/igt_vec.c
> >  create mode 100644 lib/igt_vec.h
> > 
> > diff --git a/lib/Makefile.sources b/lib/Makefile.sources
> > index 631d6714e5ce..3e573f267e15 100644
> > --- a/lib/Makefile.sources
> > +++ b/lib/Makefile.sources
> > @@ -62,6 +62,8 @@ lib_source_list =             \
> >         igt_sysrq.h             \
> >         igt_x86.h               \
> >         igt_x86.c               \
> > +       igt_vec.c               \
> > +       igt_vec.h               \
> >         igt_vgem.c              \
> >         igt_vgem.h              \
> >         instdone.c              \
> > diff --git a/lib/igt_vec.c b/lib/igt_vec.c
> > new file mode 100644
> > index 000000000000..dc4a6172fc8d
> > --- /dev/null
> > +++ b/lib/igt_vec.c
> > @@ -0,0 +1,86 @@
> > +/*
> > + * Copyright © 2020 Intel Corporation
> > + *
> > + * Permission is hereby granted, free of charge, to any person obtaining a
> > + * copy of this software and associated documentation files (the "Software"),
> > + * to deal in the Software without restriction, including without limitation
> > + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> > + * and/or sell copies of the Software, and to permit persons to whom the
> > + * Software is furnished to do so, subject to the following conditions:
> > + *
> > + * The above copyright notice and this permission notice (including the next
> > + * paragraph) shall be included in all copies or substantial portions of the
> > + * Software.
> > + *
> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> > + * IN THE SOFTWARE.
> > + */
> > +
> > +#include <stdlib.h>
> > +#include <string.h>
> > +
> > +#include "igt_core.h"
> > +#include "igt_vec.h"
> > +
> > +void igt_vec_init(struct igt_vec *vec, int elem_size)
> > +{
> > +       memset(vec, 0, sizeof(*vec));
> > +       vec->elem_size = elem_size;
> > +}
> > +
> > +void igt_vec_fini(struct igt_vec *vec)
> > +{
> > +       free(vec->elems);
> > +       memset(vec, 0, sizeof(*vec));
> > +}
> > +
> > +void *igt_vec_elem(const struct igt_vec *vec, int idx)
> > +{
> > +       igt_assert(idx < vec->len);
> > +
> > +       return vec->elems + idx * vec->elem_size;
> > +}
> > +
> > +void igt_vec_push(struct igt_vec *vec, void *elem)
> > +{
> > +       if (vec->len >= vec->size) {
> > +               vec->size = vec->size ? vec->size * 2 : 8;
> > +               vec->elems = realloc(vec->elems, vec->size * vec->elem_size);
> > +               igt_assert(vec->elems);
> > +       }
> > +
> > +       vec->len++;
> > +       memcpy(igt_vec_elem(vec, vec->len - 1), elem, vec->elem_size);
> 
> I would have split this into 
> 
> void *igt_vec_grow(struct igt_vec *vec)
> {
>        if (vec->len++ >= vec->size) {
>                vec->size = vec->size ? vec->size * 2 : 8;
>                vec->elems = realloc(vec->elems, vec->size * vec->elem_size);
>                igt_assert(vec->elems);
>        }
> 
>        return igt_vec_elem(vec, vec->len - 1);
> }
> 
> igt_vec_push(vec, elem)
> {
> 	memcpy(igt_vec_grow(vec), elem, vec->size);
> }
> 
> since we are happy to throw assertions and not worry too much about
> error propagation.

I can paint it like that.

> 
> > +
> > +       vec->len++;
> > +}
> > +
> > +int igt_vec_length(const struct igt_vec *vec)
> > +{
> > +       return vec->len;
> > +}
> > +
> > +int igt_vec_index(const struct igt_vec *vec, void *elem)
> > +{
> > +       for (int i = 0; i < vec->len; i++) {
> > +               if (!memcmp(igt_vec_elem(vec, i), elem, vec->elem_size))
> > +                       return i;
> > +       }
> > +
> > +       return -1;
> > +}
> > +
> > +void igt_vec_remove(struct igt_vec *vec, int idx)
> > +{
> > +       igt_assert(idx < vec->len);
> > +
> > +       if (idx < vec->len - 1)
> > +               memmove(igt_vec_elem(vec, idx),
> > +                       igt_vec_elem(vec, idx + 1),
> > +                       (vec->len - 1 - idx) * vec->elem_size);
> 
> memmove of 0 not to your liking?

Don't think I've ever figured out if it works as expected.

> 
> > +
> > +       vec->len--;
> > +}
> > diff --git a/lib/igt_vec.h b/lib/igt_vec.h
> > new file mode 100644
> > index 000000000000..de2549a45841
> > --- /dev/null
> > +++ b/lib/igt_vec.h
> > @@ -0,0 +1,40 @@
> > +/*
> > + * Copyright © 2020 Intel Corporation
> > + *
> > + * Permission is hereby granted, free of charge, to any person obtaining a
> > + * copy of this software and associated documentation files (the "Software"),
> > + * to deal in the Software without restriction, including without limitation
> > + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> > + * and/or sell copies of the Software, and to permit persons to whom the
> > + * Software is furnished to do so, subject to the following conditions:
> > + *
> > + * The above copyright notice and this permission notice (including the next
> > + * paragraph) shall be included in all copies or substantial portions of the
> > + * Software.
> > + *
> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> > + * IN THE SOFTWARE.
> > + */
> > +
> > +#ifndef __IGT_VEC_H__
> > +#define __IGT_VEC_H__
> > +
> > +struct igt_vec {
> > +       void *elems;
> > +       int elem_size, size, len;
> 
> I would have used char[0] and casting just to have a variable length
> struct :)

Then we'd have to reallocate the whole struct to grow it.
Wouldn't work since the caller owns the struct.

> 
> I might have also used longs throughout instead of ints, or in this day
> and age, size_t.

I was actually thinking of something smaller since I doubt anyone
wants to use this with large amounts of data due to O(n).

> 
> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
> -Chris

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 3/3] tests/kms_plane_scaling: Don't test every pixel format
  2020-01-30 15:40   ` Chris Wilson
@ 2020-01-30 15:57     ` Ville Syrjälä
  0 siblings, 0 replies; 15+ messages in thread
From: Ville Syrjälä @ 2020-01-30 15:57 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

On Thu, Jan 30, 2020 at 03:40:58PM +0000, Chris Wilson wrote:
> Quoting Ville Syrjala (2020-01-30 15:12:29)
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > We probably don't need to test every pixel format, so let's just
> > test one format for each format "class" (as defined by
> > igt_reduce_format()).
> > 
> > Speeds up the test considerably (on KBL):
> > $ time ./build/tests/kms_plane_scaling --r pipe-A-scaler-with-clipping-clamping
> > - real  0m25,186s
> > + real  0m3,440s
> > 
> > As with kms_plane we'll add a new command line argument (--extended)
> > which can be used to test all formats.
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  tests/kms_plane_scaling.c | 80 ++++++++++++++++++++++++++++++++++++---
> >  1 file changed, 74 insertions(+), 6 deletions(-)
> > 
> > diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> > index 35aac8dad078..19087286a0f9 100644
> > --- a/tests/kms_plane_scaling.c
> > +++ b/tests/kms_plane_scaling.c
> > @@ -23,6 +23,7 @@
> >   */
> >  
> >  #include "igt.h"
> > +#include "igt_vec.h"
> >  #include <math.h>
> >  
> >  
> > @@ -43,6 +44,7 @@ typedef struct {
> >         igt_plane_t *plane2;
> >         igt_plane_t *plane3;
> >         igt_plane_t *plane4;
> > +       bool extended;
> >  } data_t;
> >  
> >  static int get_num_scalers(data_t* d, enum pipe pipe)
> > @@ -221,6 +223,28 @@ static bool can_scale(data_t *d, unsigned format)
> >         }
> >  }
> >  
> > +static bool test_format(data_t *data,
> > +                       struct igt_vec *tested_formats,
> > +                       uint32_t format)
> > +{
> > +       if (!igt_fb_supported_format(format))
> > +               return false;
> > +
> > +       if (!is_i915_device(data->drm_fd) ||
> > +           data->extended)
> > +               return true;
> > +
> > +       format = igt_reduce_format(format);
> > +
> > +       /* only test each format "class" once */
> > +       if (igt_vec_index(tested_formats, &format) >= 0)
> > +               return false;
> > +
> > +       igt_vec_push(tested_formats, &format);
> 
> Ok, that does exactly what you describe.
> 
> However, that lookup is giving me the shivers, but it does the job so
> long as we don't have too many formats.

Yeah, this being the reduced format we should only have a handful of
these. But I'd be totally fine using a better data structure if
someone wants to write me one ;)

> 
> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

Thanks.

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec
  2020-01-30 15:54   ` Ville Syrjälä
@ 2020-01-30 16:00     ` Chris Wilson
  0 siblings, 0 replies; 15+ messages in thread
From: Chris Wilson @ 2020-01-30 16:00 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

Quoting Ville Syrjälä (2020-01-30 15:54:10)
> On Thu, Jan 30, 2020 at 03:31:41PM +0000, Chris Wilson wrote:
> > Quoting Ville Syrjala (2020-01-30 15:12:27)
> > > +#ifndef __IGT_VEC_H__
> > > +#define __IGT_VEC_H__
> > > +
> > > +struct igt_vec {
> > > +       void *elems;
> > > +       int elem_size, size, len;
> > 
> > I would have used char[0] and casting just to have a variable length
> > struct :)
> 
> Then we'd have to reallocate the whole struct to grow it.
> Wouldn't work since the caller owns the struct.

True.

> > 
> > I might have also used longs throughout instead of ints, or in this day
> > and age, size_t.
> 
> I was actually thinking of something smaller since I doubt anyone
> wants to use this with large amounts of data due to O(n).

Heh, I was thinking of combining this with the igt_collections elsewhere
for random set permutations. Both API are not so keen with my idea of
testing everything under the sun at once. Self-mutating test sets?
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] lib/vec: Add igt_vec
  2020-01-30 15:12 [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Ville Syrjala
                   ` (2 preceding siblings ...)
  2020-01-30 15:31 ` [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Chris Wilson
@ 2020-01-30 16:10 ` Patchwork
  2020-02-02  4:41 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2020-01-30 16:10 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/3] lib/vec: Add igt_vec
URL   : https://patchwork.freedesktop.org/series/72778/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7844 -> IGTPW_4042
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/index.html

Known issues
------------

  Here are the changes found in IGTPW_4042 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-icl-u2:          [PASS][1] -> [FAIL][2] ([i915#217])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Possible fixes ####

  * igt@gem_close_race@basic-threads:
    - fi-byt-j1900:       [TIMEOUT][3] ([fdo#112271] / [i915#1084] / [i915#816]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/fi-byt-j1900/igt@gem_close_race@basic-threads.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/fi-byt-j1900/igt@gem_close_race@basic-threads.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][5] ([fdo#111096] / [i915#323]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [DMESG-WARN][7] ([i915#44]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#1084]: https://gitlab.freedesktop.org/drm/intel/issues/1084
  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#44]: https://gitlab.freedesktop.org/drm/intel/issues/44
  [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816


Participating hosts (46 -> 43)
------------------------------

  Additional (7): fi-glk-dsi fi-whl-u fi-ivb-3770 fi-cfl-8109u fi-blb-e6850 fi-skl-6600u fi-kbl-r 
  Missing    (10): fi-kbl-soraka fi-icl-1065g7 fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-hsw-4770 fi-kbl-7560u fi-byt-n2820 fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5407 -> IGTPW_4042

  CI-20190529: 20190529
  CI_DRM_7844: 47faa2a989ef89a15089190a5f942a2d2a34fda5 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4042: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/index.html
  IGT_5407: a9d69f51dadbcbc53527671f87572d05c3370cba @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/3] lib/vec: Add igt_vec
  2020-01-30 15:12 [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Ville Syrjala
                   ` (3 preceding siblings ...)
  2020-01-30 16:10 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] " Patchwork
@ 2020-02-02  4:41 ` Patchwork
  2020-02-03 16:34 ` [igt-dev] [PATCH i-g-t v2 1/3] " Ville Syrjala
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2020-02-02  4:41 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/3] lib/vec: Add igt_vec
URL   : https://patchwork.freedesktop.org/series/72778/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7844_full -> IGTPW_4042_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_4042_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_4042_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://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_4042_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-iclb:         [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb3/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  
Known issues
------------

  Here are the changes found in IGTPW_4042_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-apl:          [PASS][3] -> [DMESG-WARN][4] ([i915#180]) +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-apl3/igt@gem_ctx_isolation@rcs0-s3.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-apl1/igt@gem_ctx_isolation@rcs0-s3.html

  * igt@gem_ctx_persistence@vcs1-mixed-process:
    - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#112080]) +17 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb2/igt@gem_ctx_persistence@vcs1-mixed-process.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb3/igt@gem_ctx_persistence@vcs1-mixed-process.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#110854])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb4/igt@gem_exec_balancer@smoke.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb5/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@pi-userfault-bsd:
    - shard-iclb:         [PASS][9] -> [SKIP][10] ([i915#677])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb6/igt@gem_exec_schedule@pi-userfault-bsd.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb4/igt@gem_exec_schedule@pi-userfault-bsd.html

  * igt@gem_exec_schedule@preempt-bsd:
    - shard-iclb:         [PASS][11] -> [SKIP][12] ([fdo#112146]) +4 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb5/igt@gem_exec_schedule@preempt-bsd.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb2/igt@gem_exec_schedule@preempt-bsd.html

  * igt@gem_exec_schedule@preempt-queue-bsd1:
    - shard-iclb:         [PASS][13] -> [SKIP][14] ([fdo#109276]) +22 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb1/igt@gem_exec_schedule@preempt-queue-bsd1.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb6/igt@gem_exec_schedule@preempt-queue-bsd1.html

  * igt@gem_userptr_blits@map-fixed-invalidate-gup:
    - shard-snb:          [PASS][15] -> [DMESG-WARN][16] ([i915#478]) +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-gup.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-gup.html

  * igt@i915_pm_dc@dc5-dpms:
    - shard-iclb:         [PASS][17] -> [FAIL][18] ([i915#447])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb7/igt@i915_pm_dc@dc5-dpms.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb3/igt@i915_pm_dc@dc5-dpms.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][19] -> [FAIL][20] ([i915#454])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb2/igt@i915_pm_dc@dc6-psr.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb4/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_selftest@live_gtt:
    - shard-apl:          [PASS][21] -> [TIMEOUT][22] ([fdo#112271])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-apl3/igt@i915_selftest@live_gtt.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-apl6/igt@i915_selftest@live_gtt.html

  * igt@kms_big_fb@linear-32bpp-rotate-0:
    - shard-snb:          [PASS][23] -> [SKIP][24] ([fdo#109271]) +3 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb5/igt@kms_big_fb@linear-32bpp-rotate-0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb6/igt@kms_big_fb@linear-32bpp-rotate-0.html

  * igt@kms_color@pipe-a-gamma:
    - shard-tglb:         [PASS][25] -> [FAIL][26] ([i915#71])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-tglb8/igt@kms_color@pipe-a-gamma.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-tglb8/igt@kms_color@pipe-a-gamma.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x42-random:
    - shard-apl:          [PASS][27] -> [FAIL][28] ([i915#54])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-apl2/igt@kms_cursor_crc@pipe-c-cursor-128x42-random.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-apl1/igt@kms_cursor_crc@pipe-c-cursor-128x42-random.html
    - shard-kbl:          [PASS][29] -> [FAIL][30] ([i915#54])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-kbl7/igt@kms_cursor_crc@pipe-c-cursor-128x42-random.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-kbl6/igt@kms_cursor_crc@pipe-c-cursor-128x42-random.html

  * igt@kms_cursor_legacy@flip-vs-cursor-varying-size:
    - shard-tglb:         [PASS][31] -> [FAIL][32] ([IGT#5])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-tglb8/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-tglb2/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-hsw:          [PASS][33] -> [INCOMPLETE][34] ([i915#61])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-hsw1/igt@kms_flip@flip-vs-suspend.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-hsw2/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [PASS][35] -> [DMESG-WARN][36] ([i915#180]) +4 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt:
    - shard-tglb:         [PASS][37] -> [SKIP][38] ([i915#668]) +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-tglb6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-tglb2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [PASS][39] -> [SKIP][40] ([fdo#109441]) +3 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb1/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_setmode@basic:
    - shard-apl:          [PASS][41] -> [FAIL][42] ([i915#31])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-apl1/igt@kms_setmode@basic.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-apl6/igt@kms_setmode@basic.html
    - shard-hsw:          [PASS][43] -> [FAIL][44] ([i915#31])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-hsw5/igt@kms_setmode@basic.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-hsw2/igt@kms_setmode@basic.html

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - shard-kbl:          [PASS][45] -> [INCOMPLETE][46] ([fdo#103665])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-kbl1/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-kbl4/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html

  * igt@prime_mmap_coherency@ioctl-errors:
    - shard-hsw:          [PASS][47] -> [FAIL][48] ([i915#831])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-hsw5/igt@prime_mmap_coherency@ioctl-errors.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-hsw6/igt@prime_mmap_coherency@ioctl-errors.html

  
#### Possible fixes ####

  * igt@gem_caching@reads:
    - shard-hsw:          [FAIL][49] ([i915#694]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-hsw2/igt@gem_caching@reads.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-hsw1/igt@gem_caching@reads.html

  * igt@gem_exec_schedule@preempt-queue-bsd2:
    - shard-iclb:         [SKIP][51] ([fdo#109276]) -> [PASS][52] +11 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb7/igt@gem_exec_schedule@preempt-queue-bsd2.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb1/igt@gem_exec_schedule@preempt-queue-bsd2.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
    - shard-iclb:         [SKIP][53] ([fdo#112146]) -> [PASS][54] +6 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb2/igt@gem_exec_schedule@reorder-wide-bsd.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb6/igt@gem_exec_schedule@reorder-wide-bsd.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-glk:          [FAIL][55] ([i915#644]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-glk9/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-glk3/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-snb:          [DMESG-WARN][57] ([fdo#111870] / [i915#478]) -> [PASS][58] +1 similar issue
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb5/igt@gem_userptr_blits@dmabuf-sync.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb5/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-apl:          [DMESG-WARN][59] ([i915#180]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-apl4/igt@gem_workarounds@suspend-resume-fd.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-apl3/igt@gem_workarounds@suspend-resume-fd.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-iclb:         [FAIL][61] ([i915#454]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb7/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_rps@waitboost:
    - shard-iclb:         [FAIL][63] ([i915#413]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb5/igt@i915_pm_rps@waitboost.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb8/igt@i915_pm_rps@waitboost.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-kbl:          [DMESG-WARN][65] ([i915#180]) -> [PASS][66] +2 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-kbl7/igt@i915_suspend@fence-restore-untiled.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-kbl6/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_color@pipe-c-ctm-green-to-red:
    - shard-kbl:          [FAIL][67] ([i915#129]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-kbl1/igt@kms_color@pipe-c-ctm-green-to-red.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-kbl3/igt@kms_color@pipe-c-ctm-green-to-red.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
    - shard-hsw:          [INCOMPLETE][69] ([CI#80] / [i915#61]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-hsw2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-hsw5/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [SKIP][71] ([fdo#109642] / [fdo#111068]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb4/igt@kms_psr2_su@page_flip.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb2/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_basic:
    - shard-iclb:         [SKIP][73] ([fdo#109441]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb8/igt@kms_psr@psr2_basic.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb2/igt@kms_psr@psr2_basic.html

  * igt@perf@gen12-mi-rpc:
    - shard-tglb:         [TIMEOUT][75] ([fdo#112271] / [i915#1085] / [i915#472]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-tglb6/igt@perf@gen12-mi-rpc.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-tglb3/igt@perf@gen12-mi-rpc.html

  * igt@perf_pmu@busy-vcs1:
    - shard-iclb:         [SKIP][77] ([fdo#112080]) -> [PASS][78] +10 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb7/igt@perf_pmu@busy-vcs1.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb2/igt@perf_pmu@busy-vcs1.html

  
#### Warnings ####

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - shard-iclb:         [FAIL][79] ([IGT#28]) -> [SKIP][80] ([fdo#112080]) +1 similar issue
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb1/igt@gem_ctx_isolation@vcs1-nonpriv.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb3/igt@gem_ctx_isolation@vcs1-nonpriv.html

  * igt@gem_eio@in-flight-contexts-10ms:
    - shard-apl:          [TIMEOUT][81] ([fdo#112271]) -> [INCOMPLETE][82] ([CI#80] / [fdo#103927])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-apl7/igt@gem_eio@in-flight-contexts-10ms.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-apl4/igt@gem_eio@in-flight-contexts-10ms.html

  * igt@gem_eio@in-flight-contexts-immediate:
    - shard-glk:          [TIMEOUT][83] ([fdo#112271]) -> [INCOMPLETE][84] ([CI#80] / [i915#58] / [k.org#198133])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-glk3/igt@gem_eio@in-flight-contexts-immediate.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-glk3/igt@gem_eio@in-flight-contexts-immediate.html

  * igt@gem_eio@in-flight-immediate:
    - shard-glk:          [INCOMPLETE][85] ([CI#80] / [i915#58] / [k.org#198133]) -> [TIMEOUT][86] ([fdo#112271])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-glk2/igt@gem_eio@in-flight-immediate.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-glk3/igt@gem_eio@in-flight-immediate.html

  * igt@gem_tiled_blits@normal:
    - shard-hsw:          [FAIL][87] ([i915#818]) -> [FAIL][88] ([i915#694]) +1 similar issue
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-hsw2/igt@gem_tiled_blits@normal.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-hsw5/igt@gem_tiled_blits@normal.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [DMESG-WARN][89] ([fdo#110789] / [fdo#111870] / [i915#478]) -> [DMESG-WARN][90] ([fdo#111870] / [i915#478])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb2/igt@gem_userptr_blits@sync-unmap-cycles.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb2/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_pm_rpm@pm-tiling:
    - shard-snb:          [INCOMPLETE][91] ([i915#82]) -> [SKIP][92] ([fdo#109271])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb2/igt@i915_pm_rpm@pm-tiling.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb2/igt@i915_pm_rpm@pm-tiling.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [DMESG-WARN][93] ([fdo#107724]) -> [SKIP][94] ([fdo#109349])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-iclb7/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@runner@aborted:
    - shard-snb:          ([FAIL][95], [FAIL][96], [FAIL][97], [FAIL][98], [FAIL][99], [FAIL][100], [FAIL][101]) ([i915#1077]) -> ([FAIL][102], [FAIL][103], [FAIL][104], [FAIL][105], [FAIL][106], [FAIL][107], [FAIL][108], [FAIL][109], [FAIL][110]) ([i915#1077] / [i915#698])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb4/igt@runner@aborted.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb6/igt@runner@aborted.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb1/igt@runner@aborted.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb5/igt@runner@aborted.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb1/igt@runner@aborted.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb2/igt@runner@aborted.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7844/shard-snb5/igt@runner@aborted.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb2/igt@runner@aborted.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb4/igt@runner@aborted.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb2/igt@runner@aborted.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb5/igt@runner@aborted.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb2/igt@runner@aborted.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb2/igt@runner@aborted.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb2/igt@runner@aborted.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb2/igt@runner@aborted.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/shard-snb4/igt@runner@aborted.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [CI#80]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/80
  [IGT#28]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/28
  [IGT#5]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/5
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#1077]: https://gitlab.freedesktop.org/drm/intel/issues/1077
  [i915#1085]: https://gitlab.freedesktop.org/drm/intel/issues/1085
  [i915#129]: https://gitlab.freedesktop.org/drm/intel/issues/129
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#413]: https://gitlab.freedesktop.org/drm/intel/issues/413
  [i915#447]: https://gitlab.freedesktop.org/drm/intel/issues/447
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#472]: https://gitlab.freedesktop.org/drm/intel/issues/472
  [i915#478]: https://gitlab.freedesktop.org/drm/intel/issues/478
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#58]: https://gitlab.freedesktop.org/drm/intel/issues/58
  [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
  [i915#668]: https://gitlab.freedesktop.org/drm/intel/issues/668
  [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#698]: https://gitlab.freedesktop.org/drm/intel/issues/698
  [i915#71]: https://gitlab.freedesktop.org/drm/intel/issues/71
  [i915#818]: https://gitlab.freedesktop.org/drm/intel/issues/818
  [i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
  [i915#831]: https://gitlab.freedesktop.org/drm/intel/issues/831
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (10 -> 8)
------------------------------

  Missing    (2): pig-skl-6260u pig-glk-j5005 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5407 -> IGTPW_4042
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_7844: 47faa2a989ef89a15089190a5f942a2d2a34fda5 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4042: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/index.html
  IGT_5407: a9d69f51dadbcbc53527671f87572d05c3370cba @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4042/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t v2 1/3] lib/vec: Add igt_vec
  2020-01-30 15:12 [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Ville Syrjala
                   ` (4 preceding siblings ...)
  2020-02-02  4:41 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2020-02-03 16:34 ` Ville Syrjala
  2020-02-04 12:36 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v2,1/3] lib/vec: Add igt_vec (rev3) Patchwork
  2020-02-06 10:27 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 0 replies; 15+ messages in thread
From: Ville Syrjala @ 2020-02-03 16:34 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Add a small std::vector lookalike which grows as needed.

v2: Reorganize things into igt_vec_grow() (Chris)
    Trust that memmove(..., 0) works (Chris)

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/Makefile.sources |  2 +
 lib/igt_vec.c        | 89 ++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_vec.h        | 40 ++++++++++++++++++++
 lib/meson.build      |  1 +
 4 files changed, 132 insertions(+)
 create mode 100644 lib/igt_vec.c
 create mode 100644 lib/igt_vec.h

diff --git a/lib/Makefile.sources b/lib/Makefile.sources
index 631d6714e5ce..3e573f267e15 100644
--- a/lib/Makefile.sources
+++ b/lib/Makefile.sources
@@ -62,6 +62,8 @@ lib_source_list =	 	\
 	igt_sysrq.h		\
 	igt_x86.h		\
 	igt_x86.c		\
+	igt_vec.c		\
+	igt_vec.h		\
 	igt_vgem.c		\
 	igt_vgem.h		\
 	instdone.c		\
diff --git a/lib/igt_vec.c b/lib/igt_vec.c
new file mode 100644
index 000000000000..591e56fa393a
--- /dev/null
+++ b/lib/igt_vec.c
@@ -0,0 +1,89 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "igt_core.h"
+#include "igt_vec.h"
+
+void igt_vec_init(struct igt_vec *vec, int elem_size)
+{
+	memset(vec, 0, sizeof(*vec));
+	vec->elem_size = elem_size;
+}
+
+void igt_vec_fini(struct igt_vec *vec)
+{
+	free(vec->elems);
+	memset(vec, 0, sizeof(*vec));
+}
+
+void *igt_vec_elem(const struct igt_vec *vec, int idx)
+{
+	igt_assert(idx < vec->len);
+
+	return vec->elems + idx * vec->elem_size;
+}
+
+static void *igt_vec_grow(struct igt_vec *vec)
+{
+	if (vec->len++ >= vec->size) {
+		vec->size = vec->size ? vec->size * 2 : 8;
+		vec->elems = realloc(vec->elems, vec->size * vec->elem_size);
+		igt_assert(vec->elems);
+	}
+
+	return igt_vec_elem(vec, vec->len - 1);
+}
+
+void igt_vec_push(struct igt_vec *vec, void *elem)
+{
+	memcpy(igt_vec_grow(vec), elem, vec->elem_size);
+}
+
+int igt_vec_length(const struct igt_vec *vec)
+{
+	return vec->len;
+}
+
+int igt_vec_index(const struct igt_vec *vec, void *elem)
+{
+	for (int i = 0; i < vec->len; i++) {
+		if (!memcmp(igt_vec_elem(vec, i), elem, vec->elem_size))
+			return i;
+	}
+
+	return -1;
+}
+
+void igt_vec_remove(struct igt_vec *vec, int idx)
+{
+	igt_assert(idx < vec->len);
+
+	memmove(igt_vec_elem(vec, idx),
+		igt_vec_elem(vec, idx + 1),
+		(vec->len - 1 - idx) * vec->elem_size);
+
+	vec->len--;
+}
diff --git a/lib/igt_vec.h b/lib/igt_vec.h
new file mode 100644
index 000000000000..de2549a45841
--- /dev/null
+++ b/lib/igt_vec.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef __IGT_VEC_H__
+#define __IGT_VEC_H__
+
+struct igt_vec {
+	void *elems;
+	int elem_size, size, len;
+};
+
+void igt_vec_init(struct igt_vec *vec, int elem_size);
+void igt_vec_fini(struct igt_vec *vec);
+void igt_vec_push(struct igt_vec *vec, void *elem);
+int igt_vec_length(const struct igt_vec *vec);
+void *igt_vec_elem(const struct igt_vec *vec, int idx);
+int igt_vec_index(const struct igt_vec *vec, void *elem);
+void igt_vec_remove(struct igt_vec *vec, int idx);
+
+#endif /* __IGT_VEC_H__ */
diff --git a/lib/meson.build b/lib/meson.build
index d87546185ade..e87e5803610f 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -24,6 +24,7 @@ lib_sources = [
 	'igt_syncobj.c',
 	'igt_sysfs.c',
 	'igt_sysrq.c',
+	'igt_vec.c',
 	'igt_vgem.c',
 	'igt_x86.c',
 	'instdone.c',
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] [PATCH i-g-t v2 2/3] lib/igt_kms: Add igt_reduce_format()
  2020-01-30 15:12 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_kms: Add igt_reduce_format() Ville Syrjala
  2020-01-30 15:38   ` Chris Wilson
@ 2020-02-03 16:35   ` Ville Syrjala
  1 sibling, 0 replies; 15+ messages in thread
From: Ville Syrjala @ 2020-02-03 16:35 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Add a helper to reduce a pixel format to a "base" format.
Ie. group all formats to some idea of classes based on the
bits per pixel + component sizes etc. ignoring any component ordering.
Let's us skip potentially redundant tests when all we might care
about is testing each format "class" the once.

v2: Add some docs (Chris)

Cc: From: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_kms.h |  1 +
 2 files changed, 96 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index d20daaad7764..f66da635c66e 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -4474,3 +4474,98 @@ void igt_parse_connector_tile_blob(drmModePropertyBlobPtr blob,
 	tile->tile_h_size = atoi(strtok(NULL, ":"));
 	tile->tile_v_size = atoi(strtok(NULL, ":"));
 }
+
+/**
+ * igt_reduce_format:
+ * @format: drm fourcc
+ *
+ * Reduce @format to a base format. The aim is to allow grouping
+ * sufficiently similar formats into classes. Formats with identical
+ * component sizes, overall pixel size, chroma subsamling, etc. are
+ * considered part of the same class, no matter in which order the
+ * components appear. We arbitrarily choose one of the formats in
+ * the class as the base format. Note that the base format itself
+ * may not be supported by whatever device is being tested even if
+ * some of the other formats in the class are supported.
+ *
+ * Returns:
+ * The base format for @format
+ */
+uint32_t igt_reduce_format(uint32_t format)
+{
+	switch (format) {
+	case DRM_FORMAT_RGB332:
+	case DRM_FORMAT_BGR233:
+		return DRM_FORMAT_RGB332;
+	case DRM_FORMAT_XRGB1555:
+	case DRM_FORMAT_XBGR1555:
+	case DRM_FORMAT_ARGB1555:
+	case DRM_FORMAT_ABGR1555:
+	case DRM_FORMAT_RGBX5551:
+	case DRM_FORMAT_BGRX5551:
+	case DRM_FORMAT_RGBA5551:
+	case DRM_FORMAT_BGRA5551:
+		return DRM_FORMAT_XRGB1555;
+	case DRM_FORMAT_RGB565:
+	case DRM_FORMAT_BGR565:
+		return DRM_FORMAT_RGB565;
+	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_ARGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_RGBX8888:
+	case DRM_FORMAT_BGRX8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_BGRA8888:
+		return DRM_FORMAT_XRGB8888;
+	case DRM_FORMAT_XRGB2101010:
+	case DRM_FORMAT_XBGR2101010:
+	case DRM_FORMAT_ARGB2101010:
+	case DRM_FORMAT_ABGR2101010:
+	case DRM_FORMAT_RGBX1010102:
+	case DRM_FORMAT_BGRX1010102:
+	case DRM_FORMAT_RGBA1010102:
+	case DRM_FORMAT_BGRA1010102:
+		return DRM_FORMAT_XRGB2101010;
+	case DRM_FORMAT_XRGB16161616F:
+	case DRM_FORMAT_XBGR16161616F:
+	case DRM_FORMAT_ARGB16161616F:
+	case DRM_FORMAT_ABGR16161616F:
+		return DRM_FORMAT_XRGB16161616F;
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_UYVY:
+	case DRM_FORMAT_YVYU:
+	case DRM_FORMAT_VYUY:
+		return DRM_FORMAT_YUYV;
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+		return DRM_FORMAT_NV12;
+	case DRM_FORMAT_NV16:
+	case DRM_FORMAT_NV61:
+		return DRM_FORMAT_NV16;
+	case DRM_FORMAT_NV24:
+	case DRM_FORMAT_NV42:
+		return DRM_FORMAT_NV24;
+	case DRM_FORMAT_P010:
+	case DRM_FORMAT_P012:
+	case DRM_FORMAT_P016:
+		return DRM_FORMAT_P010;
+	case DRM_FORMAT_Y210:
+	case DRM_FORMAT_Y212:
+	case DRM_FORMAT_Y216:
+		return DRM_FORMAT_Y210;
+	case DRM_FORMAT_XYUV8888:
+	case DRM_FORMAT_AYUV:
+		return DRM_FORMAT_XYUV8888;
+	case DRM_FORMAT_XVYU2101010:
+	case DRM_FORMAT_Y410:
+		return DRM_FORMAT_XVYU2101010;
+	case DRM_FORMAT_XVYU12_16161616:
+	case DRM_FORMAT_XVYU16161616:
+	case DRM_FORMAT_Y412:
+	case DRM_FORMAT_Y416:
+		return DRM_FORMAT_XVYU12_16161616;
+	default:
+		return format;
+	}
+}
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 6c919e92f488..66b0de516e3c 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -846,5 +846,6 @@ void igt_parse_connector_tile_blob(drmModePropertyBlobPtr blob,
 
 int igt_connector_sysfs_open(int drm_fd,
 			     drmModeConnector *connector);
+uint32_t igt_reduce_format(uint32_t format);
 
 #endif /* __IGT_KMS_H__ */
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v2,1/3] lib/vec: Add igt_vec (rev3)
  2020-01-30 15:12 [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Ville Syrjala
                   ` (5 preceding siblings ...)
  2020-02-03 16:34 ` [igt-dev] [PATCH i-g-t v2 1/3] " Ville Syrjala
@ 2020-02-04 12:36 ` Patchwork
  2020-02-06 10:27 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2020-02-04 12:36 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,v2,1/3] lib/vec: Add igt_vec (rev3)
URL   : https://patchwork.freedesktop.org/series/72778/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7863 -> IGTPW_4082
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/index.html

Known issues
------------

  Here are the changes found in IGTPW_4082 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_close_race@basic-threads:
    - fi-hsw-peppy:       [PASS][1] -> [INCOMPLETE][2] ([i915#694] / [i915#816])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/fi-hsw-peppy/igt@gem_close_race@basic-threads.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/fi-hsw-peppy/igt@gem_close_race@basic-threads.html
    - fi-byt-j1900:       [PASS][3] -> [INCOMPLETE][4] ([i915#45])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/fi-byt-j1900/igt@gem_close_race@basic-threads.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/fi-byt-j1900/igt@gem_close_race@basic-threads.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-cfl-guc:         [PASS][5] -> [INCOMPLETE][6] ([fdo#106070] / [i915#424])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/fi-cfl-guc/igt@i915_selftest@live_gem_contexts.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/fi-cfl-guc/igt@i915_selftest@live_gem_contexts.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [PASS][7] -> [FAIL][8] ([fdo#111407])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@prime_self_import@basic-llseek-size:
    - fi-tgl-y:           [PASS][9] -> [DMESG-WARN][10] ([CI#94] / [i915#402]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/fi-tgl-y/igt@prime_self_import@basic-llseek-size.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/fi-tgl-y/igt@prime_self_import@basic-llseek-size.html

  
#### Possible fixes ####

  * igt@gem_close_race@basic-threads:
    - fi-byt-n2820:       [INCOMPLETE][11] ([i915#45]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/fi-byt-n2820/igt@gem_close_race@basic-threads.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/fi-byt-n2820/igt@gem_close_race@basic-threads.html

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [FAIL][13] ([i915#178]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_hangcheck:
    - {fi-ehl-1}:         [INCOMPLETE][15] ([i915#937]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/fi-ehl-1/igt@i915_selftest@live_hangcheck.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/fi-ehl-1/igt@i915_selftest@live_hangcheck.html

  * igt@prime_vgem@basic-fence-flip:
    - fi-tgl-y:           [DMESG-WARN][17] ([CI#94] / [i915#402]) -> [PASS][18] +1 similar issue
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/fi-tgl-y/igt@prime_vgem@basic-fence-flip.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/fi-tgl-y/igt@prime_vgem@basic-fence-flip.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#106070]: https://bugs.freedesktop.org/show_bug.cgi?id=106070
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [i915#178]: https://gitlab.freedesktop.org/drm/intel/issues/178
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#424]: https://gitlab.freedesktop.org/drm/intel/issues/424
  [i915#45]: https://gitlab.freedesktop.org/drm/intel/issues/45
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816
  [i915#937]: https://gitlab.freedesktop.org/drm/intel/issues/937


Participating hosts (53 -> 47)
------------------------------

  Missing    (6): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5417 -> IGTPW_4082

  CI-20190529: 20190529
  CI_DRM_7863: 8ae46cc3902da96a0744a7237dce4b17747438b4 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4082: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/index.html
  IGT_5417: 33cc93c8ba5daa0b7498f297a4f626844d895d06 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,v2,1/3] lib/vec: Add igt_vec (rev3)
  2020-01-30 15:12 [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Ville Syrjala
                   ` (6 preceding siblings ...)
  2020-02-04 12:36 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v2,1/3] lib/vec: Add igt_vec (rev3) Patchwork
@ 2020-02-06 10:27 ` Patchwork
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2020-02-06 10:27 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,v2,1/3] lib/vec: Add igt_vec (rev3)
URL   : https://patchwork.freedesktop.org/series/72778/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7863_full -> IGTPW_4082_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/index.html

Known issues
------------

  Here are the changes found in IGTPW_4082_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_parallel@vcs1-fds:
    - shard-iclb:         [PASS][1] -> [SKIP][2] ([fdo#112080]) +13 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb1/igt@gem_exec_parallel@vcs1-fds.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb8/igt@gem_exec_parallel@vcs1-fds.html

  * igt@gem_exec_schedule@pi-common-bsd:
    - shard-iclb:         [PASS][3] -> [SKIP][4] ([i915#677]) +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb5/igt@gem_exec_schedule@pi-common-bsd.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb2/igt@gem_exec_schedule@pi-common-bsd.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#112146]) +7 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb6/igt@gem_exec_schedule@preemptive-hang-bsd.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb2/igt@gem_exec_schedule@preemptive-hang-bsd.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-kbl:          [PASS][7] -> [INCOMPLETE][8] ([fdo#103665])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-kbl1/igt@gem_workarounds@suspend-resume-context.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-kbl4/igt@gem_workarounds@suspend-resume-context.html

  * igt@kms_busy@basic-modeset-pipe-a:
    - shard-snb:          [PASS][9] -> [SKIP][10] ([fdo#109271]) +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-snb5/igt@kms_busy@basic-modeset-pipe-a.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-snb6/igt@kms_busy@basic-modeset-pipe-a.html

  * igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding:
    - shard-apl:          [PASS][11] -> [FAIL][12] ([i915#54])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-apl3/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-apl3/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-kbl:          [PASS][13] -> [DMESG-WARN][14] ([i915#180]) +3 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-kbl6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-kbl7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
    - shard-tglb:         [PASS][15] -> [SKIP][16] ([i915#668]) +3 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-tglb2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-tglb5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-glk:          [PASS][17] -> [FAIL][18] ([i915#899]) +1 similar issue
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-glk4/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-glk5/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [PASS][19] -> [SKIP][20] ([fdo#109441]) +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb7/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_setmode@basic:
    - shard-hsw:          [PASS][21] -> [FAIL][22] ([i915#31])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-hsw4/igt@kms_setmode@basic.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-hsw6/igt@kms_setmode@basic.html

  * igt@prime_busy@hang-bsd2:
    - shard-iclb:         [PASS][23] -> [SKIP][24] ([fdo#109276]) +20 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb2/igt@prime_busy@hang-bsd2.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb5/igt@prime_busy@hang-bsd2.html

  
#### Possible fixes ####

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [SKIP][25] ([fdo#110854]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb6/igt@gem_exec_balancer@smoke.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb1/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@in-order-bsd:
    - shard-iclb:         [SKIP][27] ([fdo#112146]) -> [PASS][28] +2 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb1/igt@gem_exec_schedule@in-order-bsd.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb3/igt@gem_exec_schedule@in-order-bsd.html

  * igt@gem_exec_schedule@pi-distinct-iova-blt:
    - shard-glk:          [FAIL][29] ([i915#859]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-glk5/igt@gem_exec_schedule@pi-distinct-iova-blt.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-glk8/igt@gem_exec_schedule@pi-distinct-iova-blt.html

  * igt@gem_exec_schedule@preempt-queue-bsd1:
    - shard-iclb:         [SKIP][31] ([fdo#109276]) -> [PASS][32] +17 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb6/igt@gem_exec_schedule@preempt-queue-bsd1.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb1/igt@gem_exec_schedule@preempt-queue-bsd1.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-snoop:
    - shard-hsw:          [FAIL][33] ([i915#694]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-hsw5/igt@gem_partial_pwrite_pread@writes-after-reads-snoop.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-hsw2/igt@gem_partial_pwrite_pread@writes-after-reads-snoop.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-glk:          [FAIL][35] ([i915#644]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-glk3/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-glk3/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_ringfill@basic-default-hang:
    - shard-iclb:         [INCOMPLETE][37] ([i915#140]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb5/igt@gem_ringfill@basic-default-hang.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb6/igt@gem_ringfill@basic-default-hang.html

  * igt@gem_tiled_blits@interruptible:
    - shard-hsw:          [FAIL][39] ([i915#818]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-hsw8/igt@gem_tiled_blits@interruptible.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-hsw8/igt@gem_tiled_blits@interruptible.html

  * igt@i915_selftest@live_blt:
    - shard-hsw:          [DMESG-FAIL][41] ([i915#553] / [i915#725]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-hsw6/igt@i915_selftest@live_blt.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-hsw4/igt@i915_selftest@live_blt.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-180:
    - shard-iclb:         [SKIP][43] ([i915#1140]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb4/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb6/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html

  * igt@kms_cursor_crc@pipe-a-cursor-dpms:
    - shard-apl:          [FAIL][45] ([i915#54]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-apl3/igt@kms_cursor_crc@pipe-a-cursor-dpms.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-apl8/igt@kms_cursor_crc@pipe-a-cursor-dpms.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-glk:          [FAIL][47] ([i915#79]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-glk3/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite:
    - shard-tglb:         [SKIP][49] ([i915#668]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-tglb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
    - shard-apl:          [DMESG-WARN][51] ([i915#180]) -> [PASS][52] +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-apl1/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-apl2/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
    - shard-kbl:          [DMESG-WARN][53] ([i915#180]) -> [PASS][54] +6 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-kbl4/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-kbl7/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html

  * igt@kms_psr@no_drrs:
    - shard-iclb:         [FAIL][55] ([i915#173]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb1/igt@kms_psr@no_drrs.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb8/igt@kms_psr@no_drrs.html

  * igt@kms_psr@psr2_cursor_render:
    - shard-iclb:         [SKIP][57] ([fdo#109441]) -> [PASS][58] +3 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb3/igt@kms_psr@psr2_cursor_render.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb2/igt@kms_psr@psr2_cursor_render.html

  * igt@perf@short-reads:
    - shard-apl:          [TIMEOUT][59] ([fdo#112271] / [i915#51]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-apl2/igt@perf@short-reads.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-apl2/igt@perf@short-reads.html

  * igt@perf_pmu@busy-accuracy-98-vcs1:
    - shard-iclb:         [SKIP][61] ([fdo#112080]) -> [PASS][62] +11 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-iclb8/igt@perf_pmu@busy-accuracy-98-vcs1.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-iclb1/igt@perf_pmu@busy-accuracy-98-vcs1.html

  * igt@perf_pmu@cpu-hotplug:
    - shard-hsw:          [INCOMPLETE][63] ([i915#61]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-hsw6/igt@perf_pmu@cpu-hotplug.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-hsw1/igt@perf_pmu@cpu-hotplug.html

  * igt@prime_mmap_coherency@ioctl-errors:
    - shard-hsw:          [FAIL][65] ([i915#831]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7863/shard-hsw6/igt@prime_mmap_coherency@ioctl-errors.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/shard-hsw2/igt@prime_mmap_coherency@ioctl-errors.html

  
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#1140]: https://gitlab.freedesktop.org/drm/intel/issues/1140
  [i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
  [i915#173]: https://gitlab.freedesktop.org/drm/intel/issues/173
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#51]: https://gitlab.freedesktop.org/drm/intel/issues/51
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
  [i915#668]: https://gitlab.freedesktop.org/drm/intel/issues/668
  [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#818]: https://gitlab.freedesktop.org/drm/intel/issues/818
  [i915#831]: https://gitlab.freedesktop.org/drm/intel/issues/831
  [i915#859]: https://gitlab.freedesktop.org/drm/intel/issues/859
  [i915#899]: https://gitlab.freedesktop.org/drm/intel/issues/899


Participating hosts (10 -> 8)
------------------------------

  Missing    (2): pig-skl-6260u pig-glk-j5005 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5417 -> IGTPW_4082
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_7863: 8ae46cc3902da96a0744a7237dce4b17747438b4 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4082: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/index.html
  IGT_5417: 33cc93c8ba5daa0b7498f297a4f626844d895d06 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4082/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2020-02-06 10:27 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-30 15:12 [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Ville Syrjala
2020-01-30 15:12 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_kms: Add igt_reduce_format() Ville Syrjala
2020-01-30 15:38   ` Chris Wilson
2020-02-03 16:35   ` [igt-dev] [PATCH i-g-t v2 " Ville Syrjala
2020-01-30 15:12 ` [igt-dev] [PATCH i-g-t 3/3] tests/kms_plane_scaling: Don't test every pixel format Ville Syrjala
2020-01-30 15:40   ` Chris Wilson
2020-01-30 15:57     ` Ville Syrjälä
2020-01-30 15:31 ` [igt-dev] [PATCH i-g-t 1/3] lib/vec: Add igt_vec Chris Wilson
2020-01-30 15:54   ` Ville Syrjälä
2020-01-30 16:00     ` Chris Wilson
2020-01-30 16:10 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] " Patchwork
2020-02-02  4:41 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2020-02-03 16:34 ` [igt-dev] [PATCH i-g-t v2 1/3] " Ville Syrjala
2020-02-04 12:36 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v2,1/3] lib/vec: Add igt_vec (rev3) Patchwork
2020-02-06 10:27 ` [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.