All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v2] tests/amdgpu: new test for Freesync-Video Mode
@ 2022-03-01  5:33 Solomon Chiu
  2022-03-01  6:13 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/amdgpu: new test for Freesync-Video Mode (rev3) Patchwork
  2022-03-01 13:18 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  0 siblings, 2 replies; 3+ messages in thread
From: Solomon Chiu @ 2022-03-01  5:33 UTC (permalink / raw)
  To: igt-dev

This tests transition between normal and FreeSync-Video modes and
measures the FPS to ensure vblank events are happening at the
expected rate. A SMPTE test pattern is displayed in the first mode,
and then a simple animation is displayed in the second mode, in
order to help the user to check if there is blanking when the test
transition between modes.
---
 tests/amdgpu/amd_freesync_video_mode.c | 881 +++++++++++++++++++++++++
 tests/amdgpu/meson.build               |   1 +
 2 files changed, 882 insertions(+)
 create mode 100644 tests/amdgpu/amd_freesync_video_mode.c

diff --git a/tests/amdgpu/amd_freesync_video_mode.c b/tests/amdgpu/amd_freesync_video_mode.c
new file mode 100644
index 00000000..695f0aa4
--- /dev/null
+++ b/tests/amdgpu/amd_freesync_video_mode.c
@@ -0,0 +1,881 @@
+/*
+ * Copyright 2022 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "igt.h"
+#include "sw_sync.h"
+#include <fcntl.h>
+#include <signal.h>
+
+#define NSECS_PER_SEC		(1000000000ull)
+#define TEST_DURATION_NS	(10 * NSECS_PER_SEC)
+
+#define BYTES_PER_PIXEL         4
+#define MK_COLOR(r, g, b)	((0 << 24) | (r << 16) | (g << 8) | b)
+
+/*
+ * The Display Core of amdgpu will add a set of modes derived from the
+ * base FreeSync video mode into the corresponding connector’s mode list based
+ * on commonly used refresh rates and VRR range of the connected display, when
+ * users enable this feature. From the userspace perspective, they can see a
+ * seamless mode change experience when the change between different refresh
+ * rates under the same resolution. Additionally, userspace applications such
+ * as Video playback can read this modeset list and change the refresh rate
+ * based on the video frame rate. Finally, the userspace can also derive an
+ * appropriate mode for a particular refresh rate based on the FreeSync Mode
+ * and add it to the connector’s mode list.
+*/
+IGT_TEST_DESCRIPTION("This tests transition between normal and FreeSync-Video"
+		     "modes and measures the FPS to ensure vblank events are"
+		     "happening at the expected rate.");
+typedef struct range {
+	unsigned int min;
+	unsigned int max;
+} range_t;
+
+typedef struct data {
+	int		drm_fd;
+	igt_display_t	display;
+	igt_plane_t	*primary;
+	igt_fb_t	fbs[2];
+	uint32_t	*fb_mem[2];
+	int		front;
+	bool		fb_initialized;
+	range_t		range;
+
+	drmModeConnector *connector;
+	drmModeModeInfo *modes;
+	int		count_modes;
+
+	uint32_t	preferred_mode_index;
+        uint32_t	base_mode_index;
+	uint32_t	hdisplay;
+	uint32_t	vdisplay;
+} data_t;
+
+struct fsv_sprite {
+        uint32_t        w;
+	uint32_t	h;
+        uint32_t        *data;
+};
+static struct fsv_sprite cicle_sprite;
+
+enum {
+        FSV_PREFERRED_MODE,
+        FSV_BASE_MODE,
+        FSV_FREESYNC_VIDEO_MODE,
+        FSV_NON_FREESYNC_VIDEO_MODE,
+};
+
+enum {
+	ANIM_TYPE_SMPTE,
+	ANIM_TYPE_CIRCLE_WAVE,
+
+	ANIM_TYPE_COUNT,
+};
+
+enum {
+	SCENE_BASE_MODE_TO_VARIOUS_FSV_MODE ,
+	SCENE_LOWER_FSV_MODE_TO_HIGHER_FSV_MODE ,
+	SCENE_NON_FSV_MODE_TO_FSV_MODE ,
+	SCENE_BASE_MODE_TO_CUSTUM_MODE ,
+	SCENE_NON_FSV_MODE_TO_NON_FSV_MODE,
+
+	SCENE_COUNT,
+};
+
+/*----------------------------------------------------------------------------*/
+
+/* Converts a timespec structure to nanoseconds. */
+static uint64_t timespec_to_ns(struct timespec *ts)
+{
+	return ts->tv_sec * NSECS_PER_SEC + ts->tv_nsec;
+}
+
+/*
+ * Gets an event from DRM and returns its timestamp in nanoseconds.
+ * Asserts if the event from DRM is not matched with requested one.
+ *
+ * This blocks until the event is received.
+ */
+static uint64_t get_kernel_event_ns(data_t *data, uint32_t event)
+{
+	struct drm_event_vblank ev;
+
+	igt_set_timeout(1, "Waiting for an event\n");
+	igt_assert_eq(read(data->drm_fd, &ev, sizeof(ev)), sizeof(ev));
+	igt_assert_eq(ev.base.type, event);
+	igt_reset_timeout();
+
+	return ev.tv_sec * NSECS_PER_SEC + ev.tv_usec * 1000ull;
+}
+
+/*
+ * Returns the current CLOCK_MONOTONIC time in nanoseconds.
+ * The regular IGT helpers can't be used since they default to
+ * CLOCK_MONOTONIC_RAW - which isn't what the kernel uses for its timestamps.
+ */
+static uint64_t get_time_ns(void)
+{
+	struct timespec ts;
+	memset(&ts, 0, sizeof(ts));
+	errno = 0;
+
+	if (!clock_gettime(CLOCK_MONOTONIC, &ts))
+		return timespec_to_ns(&ts);
+
+	igt_warn("Could not read monotonic time: %s\n", strerror(errno));
+	igt_fail(-errno);
+
+	return 0;
+}
+
+static void fbmem_draw_rect(
+		uint32_t *fbmem,
+		uint32_t stride,
+		uint32_t x,
+		uint32_t y,
+		uint32_t w,
+		uint32_t h,
+		uint32_t color)
+{
+        uint32_t offset = y * stride + x;
+
+        for (uint32_t j = 0; j < h; j++) {
+                for (uint32_t i = 0; i < w; i++) {
+                        fbmem[offset + i] = color;
+                }
+                offset += stride;
+        }
+}
+
+static void fbmem_draw_smpte_pattern(uint32_t *fbmem, int width, int height)
+{
+	uint32_t x, y;
+        uint32_t colors_top[] = {
+                MK_COLOR(192, 192, 192), /* grey */
+                MK_COLOR(192, 192, 0),   /* yellow */
+                MK_COLOR(0, 192, 192),   /* cyan */
+                MK_COLOR(0, 192, 0),     /* green */
+                MK_COLOR(192, 0, 192),   /* magenta */
+                MK_COLOR(192, 0, 0),     /* red */
+                MK_COLOR(0, 0, 192),     /* blue */
+        };
+        uint32_t colors_middle[] = {
+                MK_COLOR(0, 0, 192),     /* blue */
+                MK_COLOR(19, 19, 19),    /* black */
+                MK_COLOR(192, 0, 192),   /* magenta */
+                MK_COLOR(19, 19, 19),    /* black */
+                MK_COLOR(0, 192, 192),   /* cyan */
+                MK_COLOR(19, 19, 19),    /* black */
+                MK_COLOR(192, 192, 192), /* grey */
+        };
+        uint32_t colors_bottom[] = {
+                MK_COLOR(0, 33, 76),     /* in-phase */
+                MK_COLOR(255, 255, 255), /* super white */
+                MK_COLOR(50, 0, 106),    /* quadrature */
+                MK_COLOR(19, 19, 19),    /* black */
+                MK_COLOR(9, 9, 9),       /* 3.5% */
+                MK_COLOR(19, 19, 19),    /* 7.5% */
+                MK_COLOR(29, 29, 29),    /* 11.5% */
+                MK_COLOR(19, 19, 19),    /* black */
+        };
+
+        for (y = 0; y < height * 6 / 9; ++y) {
+                for (x = 0; x < width; ++x)
+                        fbmem[x] =
+                                colors_top[x * 7 / width];
+                fbmem += width;
+        }
+
+        for (; y < height * 7 / 9; ++y) {
+                for (x = 0; x < width; ++x)
+                        fbmem[x] =
+                                colors_middle[x * 7 / width];
+                fbmem += width;
+        }
+
+        for (; y < height; ++y) {
+                for (x = 0; x < width * 5 / 7; ++x)
+                        fbmem[x] =
+                                colors_bottom[x * 4 / (width * 5 / 7)];
+                for (; x < width * 6 / 7; ++x)
+                        fbmem[x] =
+                                colors_bottom[(x - width * 5 / 7) * 3
+                                              / (width / 7) + 4];
+                for (; x < width; ++x)
+                        fbmem[x] = colors_bottom[7];
+                fbmem += width;
+        }
+}
+
+static void sprite_init(
+		struct fsv_sprite *sprite,
+		uint32_t w,
+		uint32_t h)
+{
+        igt_assert(sprite);
+
+        sprite->data = (uint32_t *)malloc(w * h * BYTES_PER_PIXEL);
+        igt_assert(sprite->data);
+
+        sprite->w = w;
+        sprite->h = h;
+}
+
+static void sprite_paste(
+		uint32_t *fbmem,
+		uint32_t fb_stride,
+		struct fsv_sprite *sprite,
+		uint32_t x,
+		uint32_t y)
+{
+        uint32_t fb_offset = y * fb_stride + x;
+        uint32_t sprite_offset = 0;
+
+        for (int j = 0; j < sprite->h; j++) {
+                memcpy(fbmem + fb_offset, sprite->data + sprite_offset, sprite->w * 4);
+                sprite_offset += sprite->w;
+                fb_offset += fb_stride;
+        }
+}
+
+static void sprite_draw_rect(
+		struct fsv_sprite *sprite,
+		uint32_t x,
+		uint32_t y,
+		uint32_t w,
+		uint32_t h,
+		uint32_t color)
+{
+        uint32_t offset = y * sprite->w + x;
+        uint32_t *addr = (uint32_t *)sprite->data;
+
+        for (uint32_t j = 0; j < h; j++) {
+                addr = (uint32_t *)(sprite->data + offset);
+                for (uint32_t i = 0; i < w; i++) {
+                        addr[i] = color;
+                }
+                offset += sprite->w;
+        }
+}
+
+/* drawing horizontal line in the sprite */
+static void sprite_draw_hline(
+		struct fsv_sprite *sprite,
+		uint32_t x1,
+		uint32_t y1,
+		uint32_t x2,
+		uint32_t color)
+{
+	uint32_t offset = y1 * sprite->w;
+        for (int x = x1 ; x < x2; x++) {
+                sprite->data[offset + x] = color;
+        }
+}
+
+/* drawing filled circle with Bresenham's algorithm */
+static void sprite_draw_circle(
+		struct fsv_sprite *sprite,
+		uint32_t x,
+		uint32_t y,
+		uint32_t radius,
+		uint32_t color)
+{
+        int offsetx = 0, offsety = radius, d = radius -1;
+
+        while (offsety >= offsetx) {
+                sprite_draw_hline(sprite, x - offsety, y + offsetx,
+                                x + offsety, color);
+                sprite_draw_hline(sprite, x - offsetx, y + offsety,
+                                x + offsetx, color);
+                sprite_draw_hline(sprite, x - offsetx, y - offsety,
+                                x + offsetx, color);
+                sprite_draw_hline(sprite, x - offsety, y - offsetx,
+                                x + offsety, color);
+
+                if (d >= 2 * offsetx) {
+                        d -= 2 * offsetx + 1;
+                        offsetx += 1;
+                } else if (d < 2 * (radius - offsety)) {
+                        d += 2 * offsety - 1;
+                        offsety -= 1;
+                } else {
+                        d += 2 * (offsety - offsetx - 1);
+                        offsety -= 1;
+                        offsetx += 1;
+                }
+        }
+}
+
+static void sprite_anim_init(void)
+{
+        memset(&cicle_sprite, 0, sizeof(cicle_sprite));
+        sprite_init(&cicle_sprite, 100, 100);
+
+        sprite_draw_rect(&cicle_sprite, 0, 0, 100, 100, MK_COLOR(128, 128, 128));
+	/* draw filled circle with center (50, 50), radius 50. */
+        sprite_draw_circle(&cicle_sprite, 50, 50, 50, MK_COLOR(0, 0, 255));
+}
+
+static void sprite_anim(data_t *data, uint32_t *addr)
+{
+        struct timeval tv1, tv2, tv_delta;
+        uint64_t frame_ns = get_time_ns();
+        double now = frame_ns / (double)NSECS_PER_SEC;
+
+        gettimeofday(&tv1, NULL);
+
+        fbmem_draw_rect(addr, data->hdisplay, 0, 0,
+			data->hdisplay, data->vdisplay, MK_COLOR(128, 128, 128));
+	/* red rectangle for checking tearing effect*/
+        if (data->front) {
+                fbmem_draw_rect(addr, data->hdisplay, 0, 0,
+			30, data->vdisplay, MK_COLOR(191, 0, 0));
+        }
+
+	/* draw 16 filled circles */
+        for (int i = 0; i < 16; ++i) {
+                double tv = now + i * 0.25;
+                float x, y;
+                x = data->hdisplay - 10.0f - 118.0f * i - 100.0f;
+                y = data->vdisplay * 0.5f + cos(tv) * data->vdisplay * 0.35;
+                sprite_paste(addr, data->hdisplay, &cicle_sprite, (uint32_t)x, (uint32_t)y);
+        }
+
+        gettimeofday(&tv2, NULL);
+        timersub(&tv2, &tv1, &tv_delta);
+
+        igt_debug("time of drawing: %ld ms\n", tv_delta.tv_usec / 1000);
+}
+
+/*----------------------------------------------------------------------------*/
+
+/* The freesync video modes is derived from the base mode(the mode with the
+   highest clock rate, and has the same resolution with preferred mode) by
+   amdgpu driver. They have the same clock rate with base mode, and the
+   type of mode has been set as DRM_MODE_TYPE_DRIVER"
+*/
+static bool is_freesync_video_mode(data_t *data, drmModeModeInfo *mode)
+{
+        drmModeModeInfo *base_mode = &data->modes[data->base_mode_index];
+        uint32_t bm_clock = base_mode->clock;
+
+        if (    mode->hdisplay == data->hdisplay &&
+                mode->vdisplay == data->vdisplay &&
+                mode->clock == bm_clock &&
+		mode->type & DRM_MODE_TYPE_DRIVER) {
+                return true;
+        }
+
+        return false;
+}
+
+static drmModeModeInfo* select_mode(
+        data_t *data,
+        uint32_t mode_type,
+        int refresh_rate)
+{
+	int i;
+        int index;
+        drmModeModeInfo *mode = NULL;
+	igt_debug("select_mode: type=%d, refresh_rate=%d\n", mode_type, refresh_rate);
+
+        switch (mode_type) {
+        case FSV_BASE_MODE:
+                index = data->base_mode_index;
+                mode = &data->modes[index];
+                break;
+
+        case FSV_PREFERRED_MODE:
+                index = data->preferred_mode_index;
+                mode = &data->modes[index];
+                break;
+
+        case FSV_FREESYNC_VIDEO_MODE:
+                for (i = 0; i < data->count_modes; i++) {
+                        mode = &data->modes[i];
+                        if (    mode->vrefresh == refresh_rate &&
+                                is_freesync_video_mode(data, mode)) {
+                                break;
+                        }
+                }
+		if (i == data->count_modes)
+			mode = NULL;
+                break;
+
+        case FSV_NON_FREESYNC_VIDEO_MODE:
+                for (i = 0; i < data->count_modes; i++) {
+                        mode = &data->modes[i];
+                        if (    mode->vrefresh == refresh_rate &&
+                                !is_freesync_video_mode(data, mode)) {
+                                break;
+                        }
+                }
+		if (i == data->count_modes)
+			mode = NULL;
+                break;
+
+        default:
+                igt_assert("Cannot find mode with specified rate and type.");
+                break;
+        }
+
+	if (mode) {
+		igt_info("selected mode:\n");
+		kmstest_dump_mode(mode);
+	}
+
+        return mode;
+}
+
+static int prepare_custom_mode(
+        data_t *data,
+	drmModeModeInfo *custom_mode,
+	uint32_t refresh_rate)
+{
+	uint64_t num, den;
+	uint64_t target_vtotal, target_vtotal_diff;
+	drmModeModeInfo *base_mode;
+
+	igt_info("prepare custom mode:\n");
+
+	base_mode = &data->modes[data->base_mode_index];
+	if (base_mode->vrefresh < refresh_rate) {
+		igt_warn("The given refresh rate is large than base mode's one:" \
+				" base_mode->vrefresh=%d, refresh_rate=%u\n",
+				base_mode->vrefresh, refresh_rate);
+		return -1;
+	}
+
+	if (refresh_rate < data->range.min ||
+			refresh_rate > data->range.max) {
+		igt_warn("The given refresh rate(%u) should be between the rage of: min=%d, max=%d\n",
+				refresh_rate, data->range.min, data->range.max);
+		return -1;
+	}
+
+	num = (unsigned long long)base_mode->clock * 1000 * 1000;
+	den = refresh_rate * 1000 * (unsigned long long)base_mode->htotal;
+	target_vtotal = num / den;
+	target_vtotal_diff = target_vtotal - base_mode->vtotal;
+	igt_debug("num=%lu, den=%lu, " \
+                  "target_vtotal=%lu, target_vtotal_diff=%lu, base_mode->vtotal=%d\n",
+		  num, den, target_vtotal, target_vtotal_diff, base_mode->vtotal
+		);
+
+	/* Check for illegal modes */
+	if (base_mode->vsync_start + target_vtotal_diff < base_mode->vdisplay ||
+			base_mode->vsync_end + target_vtotal_diff < base_mode->vsync_start ||
+			base_mode->vtotal + target_vtotal_diff < base_mode->vsync_end)
+		return -1;
+
+	*custom_mode = *base_mode;
+	custom_mode->vtotal += (uint16_t)target_vtotal_diff;
+	custom_mode->vsync_start += (uint16_t)target_vtotal_diff;
+	custom_mode->vsync_end += (uint16_t)target_vtotal_diff;
+	custom_mode->type &= ~DRM_MODE_TYPE_PREFERRED;
+	custom_mode->type |= DRM_MODE_TYPE_DRIVER;
+	custom_mode->vrefresh = refresh_rate;
+
+	igt_info("custom mode:\n");
+	kmstest_dump_mode(custom_mode);
+
+	return 0;
+}
+
+/* Returns the rate duration in nanoseconds for the given refresh rate. */
+static uint64_t nsec_per_frame(uint64_t refresh)
+{
+	return NSECS_PER_SEC / refresh;
+}
+
+/* Read min and max vrr range from the connector debugfs. */
+static range_t
+get_vrr_range(data_t *data, igt_output_t *output)
+{
+	char buf[256];
+	char *start_loc;
+	int fd, res;
+	range_t range;
+
+	fd = igt_debugfs_connector_dir(data->drm_fd, output->name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "vrr_range", buf, sizeof(buf));
+	igt_require(res > 0);
+
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Min: "));
+	igt_assert_eq(sscanf(start_loc, "Min: %u", &range.min), 1);
+
+	igt_assert(start_loc = strstr(buf, "Max: "));
+	igt_assert_eq(sscanf(start_loc, "Max: %u", &range.max), 1);
+
+	return range;
+}
+
+/* Returns true if an output supports VRR. */
+static bool has_vrr(igt_output_t *output)
+{
+	return igt_output_has_prop(output, IGT_CONNECTOR_VRR_CAPABLE) &&
+	       igt_output_get_prop(output, IGT_CONNECTOR_VRR_CAPABLE);
+}
+
+/* Toggles variable refresh rate on the pipe. */
+static void set_vrr_on_pipe(data_t *data, enum pipe pipe, bool enabled)
+{
+	igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED,
+				enabled);
+	igt_display_commit2(&data->display, COMMIT_ATOMIC);
+}
+
+static void prepare_test(
+		data_t *data,
+		igt_output_t *output,
+		enum pipe pipe,
+		drmModeModeInfo *mode)
+{
+	/* Reset output */
+	igt_display_reset(&data->display);
+	igt_output_set_pipe(output, pipe);
+
+	igt_output_override_mode(output, mode);
+
+	/* Prepare resources */
+	if (!data->fb_initialized) {
+		igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
+				DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, &data->fbs[0]);
+
+		igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
+				DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, &data->fbs[1]);
+		data->fb_mem[0] = igt_fb_map_buffer(data->drm_fd, &data->fbs[0]);
+		data->fb_mem[1] = igt_fb_map_buffer(data->drm_fd, &data->fbs[1]);
+		data->fb_initialized = true;
+	}
+
+	fbmem_draw_smpte_pattern(data->fb_mem[0], data->hdisplay, data->vdisplay);
+	fbmem_draw_smpte_pattern(data->fb_mem[1], data->hdisplay, data->vdisplay);
+
+	/* Take care of any required modesetting before the test begins. */
+	data->primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+	igt_plane_set_fb(data->primary, &data->fbs[0]);
+
+	/* Clear vrr_enabled state before enabling it, because
+	 * it might be left enabled if the previous test fails.
+	 */
+	igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED, 0);
+
+	igt_display_commit2(&data->display, COMMIT_ATOMIC);
+}
+
+/* Performs an atomic non-blocking page-flip on a pipe. */
+static void
+do_flip(data_t *data)
+{
+	int ret;
+	igt_fb_t *fb = &(data->fbs[data->front]);
+
+	igt_set_timeout(1, "Scheduling page flip\n");
+	igt_plane_set_fb(data->primary, fb);
+#ifdef FSV_DEBug
+	igt_info("front=%d, fb=%p\n", data->front, &data->fbs[data->front]);
+#endif
+	do {
+		ret = igt_display_try_commit_atomic(&data->display,
+				  DRM_MODE_ATOMIC_NONBLOCK |
+				  DRM_MODE_PAGE_FLIP_EVENT,
+				  data);
+	} while (ret == -EBUSY);
+
+	igt_assert_eq(ret, 0);
+	igt_reset_timeout();
+}
+
+/*
+ * Flips at the given rate and measures against the expected value.
+ * Returns the pass rate as a percentage from 0 - 100.
+ *
+ * The VRR API is quite flexible in terms of definition - the driver
+ * can arbitrarily restrict the bounds further than the absolute
+ * min and max range. But VRR is really about extending the flip
+ * to prevent stuttering or to match a source content rate.
+ */
+static uint32_t
+flip_and_measure(
+		data_t *data,
+		igt_output_t *output,
+		enum pipe pipe,
+		uint64_t interval_ns,
+		uint64_t duration_ns,
+		int anim_type)
+{
+	uint64_t start_ns, last_event_ns, target_ns;
+	uint32_t total_flip = 0, total_pass = 0;
+
+	/* Align with the flip completion event to speed up convergence. */
+	do_flip(data);
+	start_ns = last_event_ns = target_ns = get_kernel_event_ns(data,
+							DRM_EVENT_FLIP_COMPLETE);
+	igt_info("interval_ns=%lu\n", interval_ns);
+
+	for (;;) {
+		uint64_t event_ns;
+		int64_t diff_ns;
+
+		data->front = !data->front;
+		if (anim_type == ANIM_TYPE_CIRCLE_WAVE)
+			sprite_anim(data, data->fb_mem[data->front]);
+		do_flip(data);
+
+		/* We need to capture flip event instead of vblank event,
+		 * because vblank is triggered after each frame, but depending
+		 * on the vblank evasion time flip might or might not happen in
+		 * that same frame.
+		 */
+		event_ns = get_kernel_event_ns(data, DRM_EVENT_FLIP_COMPLETE);
+		igt_debug("event_ns - last_event_ns: %"PRIu64"\n",
+						(event_ns - last_event_ns));
+
+		/*
+		 * Check if the difference between the two flip timestamps
+		 * was within the required threshold from the expected rate.
+		 *
+		 * A ~50us threshold is arbitrary, but it's roughly the
+		 * difference between 144Hz and 143Hz which should give this
+		 * enough accuracy for most use cases.
+		 */
+		diff_ns = interval_ns;
+		diff_ns -= event_ns - last_event_ns;
+		if (llabs(diff_ns) < 50000ll)
+			total_pass += 1;
+
+		last_event_ns = event_ns;
+		total_flip += 1;
+
+		if (event_ns - start_ns > duration_ns)
+			break;
+	}
+
+	igt_info("Completed %u flips, %u were in threshold for (%llu Hz) %"PRIu64"ns.\n",
+		 total_flip, total_pass, (NSECS_PER_SEC / interval_ns), interval_ns);
+
+	return total_flip ? ((total_pass * 100) / total_flip) : 0;
+}
+
+static void init_data(data_t *data, igt_output_t *output) {
+	int i;
+	uint32_t pm_hdisplay, pm_vdisplay, max_clk = 0;
+	drmModeModeInfo *preferred_mode;
+	drmModeConnector *connector;
+
+	connector = data->connector = output->config.connector;
+	data->count_modes = connector->count_modes;
+	data->modes = (drmModeModeInfo *)malloc(sizeof(drmModeModeInfo) * data->count_modes);
+
+	for (i = 0; i < data->count_modes; i++) {
+		data->modes[i] = connector->modes[i];
+#ifdef FSV_DEBUG
+		igt_info("mode %d:", i);
+		kmstest_dump_mode(&data->modes[i]);
+#endif
+	}
+
+	/* searching the preferred mode */
+        for (i = 0; i < connector->count_modes; i++) {
+                drmModeModeInfo *mode = &connector->modes[i];
+
+                if (mode->type & DRM_MODE_TYPE_PREFERRED) {
+                        data->preferred_mode_index = i;
+			data->hdisplay = mode->hdisplay;
+			data->vdisplay = mode->vdisplay;
+			pm_hdisplay = preferred_mode->hdisplay;
+			pm_vdisplay = preferred_mode->vdisplay;
+			break;
+                }
+        }
+
+        /* searching the base mode; */
+        for (i = 0; i < connector->count_modes; i++) {
+                drmModeModeInfo *mode = &connector->modes[i];
+                if (mode->hdisplay == pm_hdisplay && mode->vdisplay == pm_vdisplay) {
+                        if (mode->clock > max_clk) {
+                                max_clk = mode->clock;
+                                data->base_mode_index = i;
+                        }
+                }
+        }
+        igt_info("preferred=%d, base=%d\n", data->preferred_mode_index, data->base_mode_index);
+
+        for (i = 0; i < connector->count_modes; i++) {
+                drmModeModeInfo *mode = &connector->modes[i];
+                if (is_freesync_video_mode(data, mode))
+                        igt_debug("mode[%d] is freesync video mode.\n", i);
+        }
+
+	data->range = get_vrr_range(data, output);
+}
+
+static void finish_test(data_t *data, enum pipe pipe, igt_output_t *output)
+{
+	set_vrr_on_pipe(data, pipe, 0);
+	igt_plane_set_fb(data->primary, NULL);
+	igt_output_set_pipe(output, PIPE_NONE);
+	igt_output_override_mode(output, NULL);
+	igt_display_commit2(&data->display, COMMIT_ATOMIC);
+
+	igt_fb_unmap_buffer(&data->fbs[1], data->fb_mem[1]);
+	igt_fb_unmap_buffer(&data->fbs[0], data->fb_mem[0]);
+	igt_remove_fb(data->drm_fd, &data->fbs[1]);
+	igt_remove_fb(data->drm_fd, &data->fbs[0]);
+}
+
+static void
+mode_transition(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t scene)
+{
+	uint32_t result;
+	uint64_t interval;
+	drmModeModeInfo *mode_start = NULL, *mode_playback = NULL, mode_custom;
+
+	init_data(data, output);
+	sprite_anim_init();
+
+	igt_info("stage-1:\n");
+	switch(scene) {
+        case SCENE_BASE_MODE_TO_VARIOUS_FSV_MODE:
+		mode_start = select_mode(data, FSV_BASE_MODE, 0);
+                mode_playback  = select_mode(data, FSV_FREESYNC_VIDEO_MODE, 60);
+		break;
+        case SCENE_LOWER_FSV_MODE_TO_HIGHER_FSV_MODE:
+		mode_start = select_mode(data, FSV_FREESYNC_VIDEO_MODE, 60);
+                mode_playback = select_mode(data, FSV_FREESYNC_VIDEO_MODE, 120);
+		break;
+        case SCENE_NON_FSV_MODE_TO_FSV_MODE:
+		mode_start = select_mode(data, FSV_NON_FREESYNC_VIDEO_MODE, 60);
+                mode_playback = select_mode(data, FSV_FREESYNC_VIDEO_MODE, 60);
+		break;
+        case SCENE_BASE_MODE_TO_CUSTUM_MODE:
+		mode_start = select_mode(data, FSV_BASE_MODE, 0);
+		prepare_custom_mode(data, &mode_custom, 72);
+		mode_playback = &mode_custom;
+		break;
+	case SCENE_NON_FSV_MODE_TO_NON_FSV_MODE:
+		mode_start = select_mode(data, FSV_NON_FREESYNC_VIDEO_MODE, 120);
+		mode_playback = select_mode(data, FSV_NON_FREESYNC_VIDEO_MODE, 100);
+		break;
+	default:
+		igt_warn("Undefined test scene: %d", scene);
+		break;
+	}
+	igt_assert_f(mode_start && mode_playback,
+			"Failure on selecting mode with given type and refresh rate.\n");
+	prepare_test(data, output, pipe, mode_start);
+	interval = nsec_per_frame(mode_start->vrefresh) ;
+	set_vrr_on_pipe(data, pipe, 1);
+	result = flip_and_measure(data, output, pipe, interval, TEST_DURATION_NS, ANIM_TYPE_SMPTE);
+
+	igt_info("stage-2: simple animation as video playback\n");
+	prepare_test(data, output, pipe, mode_playback);
+	interval = nsec_per_frame(mode_playback->vrefresh) ;
+	result = flip_and_measure(data, output, pipe, interval, TEST_DURATION_NS, ANIM_TYPE_CIRCLE_WAVE);
+	igt_assert_f(result > 90, "Target refresh rate not meet(result=%d%%\n", result);
+
+	finish_test(data, pipe, output);
+}
+
+static void
+run_test(data_t *data, uint32_t scene)
+{
+	igt_output_t *output;
+	bool found = false;
+
+	for_each_connected_output(&data->display, output) {
+		enum pipe pipe;
+
+		if (!has_vrr(output))
+			continue;
+
+		for_each_pipe(&data->display, pipe)
+			if (igt_pipe_connector_valid(pipe, output)) {
+				mode_transition(data, pipe, output, scene);
+				found = true;
+				break;
+			}
+	}
+
+	if (!found)
+		igt_skip("No vrr capable outputs found.\n");
+}
+
+igt_main
+{
+	data_t data = {};
+	memset(&data, 0, sizeof(data));
+
+	igt_fixture {
+		data.drm_fd = drm_open_driver_master(DRIVER_AMDGPU);
+		if (data.drm_fd == -1) {
+			igt_skip("Not an amdgpu driver.\n");
+		}
+		kmstest_set_vt_graphics_mode();
+		igt_display_require(&data.display, data.drm_fd);
+		igt_require(data.display.is_atomic);
+		igt_display_require_output(&data.display);
+	}
+
+	/* Expectation: Modeset happens instantaneously without blanking */
+        igt_describe("Test switch from base freesync mode to " \
+                     "various freesync video modes");
+        igt_subtest("freesync-base-to-various")
+		run_test(&data, SCENE_BASE_MODE_TO_VARIOUS_FSV_MODE);
+
+	/* Expectation: Modeset happens instantaneously without blanking */
+        igt_describe("Test switching from lower refresh freesync mode to " \
+                     "another freesync mode with higher refresh rate");
+        igt_subtest("freesync-lower-to-higher")
+		run_test(&data, SCENE_LOWER_FSV_MODE_TO_HIGHER_FSV_MODE);
+
+	/* Expectation: Full modeset is triggered. */
+        igt_describe("Test switching from non preferred video mode to " \
+                     "one of freesync video mode");
+        igt_subtest("freesync-non-preferred-to-freesync")
+		run_test(&data, SCENE_NON_FSV_MODE_TO_FSV_MODE);
+
+	/* Expectation: Modeset happens instantaneously without blanking */
+        igt_describe("Add custom mode through xrandr based on " \
+                     "base freesync mode and apply the new mode");
+        igt_subtest("freesync-custom-mode")
+		run_test(&data, SCENE_BASE_MODE_TO_CUSTUM_MODE);
+
+#ifdef FSV_DEBUG
+	igt_describe("Tests that VRR is enabled and that the difference between flip "
+		     "timestamps converges to the requested rate");
+	igt_subtest("basic")
+		run_test(&data, SCENE_NON_FSV_MODE_TO_NON_FSV_MODE);
+#endif
+
+        igt_info("end of test\n");
+
+	igt_fixture {
+		igt_display_fini(&data.display);
+	}
+}
diff --git a/tests/amdgpu/meson.build b/tests/amdgpu/meson.build
index 12c2ba99..93c890e2 100644
--- a/tests/amdgpu/meson.build
+++ b/tests/amdgpu/meson.build
@@ -21,6 +21,7 @@ if libdrm_amdgpu.found()
 			  'amd_psr',
 			  'amd_plane',
 			  'amd_ilr',
+			  'amd_freesync_video_mode',
 			]
 	amdgpu_deps += libdrm_amdgpu
 endif
-- 
2.25.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for tests/amdgpu: new test for Freesync-Video Mode (rev3)
  2022-03-01  5:33 [igt-dev] [PATCH i-g-t v2] tests/amdgpu: new test for Freesync-Video Mode Solomon Chiu
@ 2022-03-01  6:13 ` Patchwork
  2022-03-01 13:18 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2022-03-01  6:13 UTC (permalink / raw)
  To: Solomon Chiu; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 5606 bytes --]

== Series Details ==

Series: tests/amdgpu: new test for Freesync-Video Mode (rev3)
URL   : https://patchwork.freedesktop.org/series/100861/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_11300 -> IGTPW_6719
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (46 -> 32)
------------------------------

  Missing    (14): fi-kbl-soraka fi-bdw-samus shard-tglu bat-dg1-6 bat-dg1-5 shard-rkl bat-dg2-9 fi-bsw-cyan bat-adlp-6 bat-adlp-4 fi-kbl-8809g bat-rpls-2 shard-dg1 bat-jsl-1 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@cs-multi-fence:
    - fi-blb-e6850:       NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/fi-blb-e6850/igt@amdgpu/amd_basic@cs-multi-fence.html

  * igt@amdgpu/amd_cs_nop@sync-fork-compute0:
    - fi-snb-2600:        NOTRUN -> [SKIP][2] ([fdo#109271]) +17 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/fi-snb-2600/igt@amdgpu/amd_cs_nop@sync-fork-compute0.html

  * igt@gem_flink_basic@bad-flink:
    - fi-skl-6600u:       [PASS][3] -> [INCOMPLETE][4] ([i915#4547])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/fi-skl-6600u/igt@gem_flink_basic@bad-flink.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/fi-skl-6600u/igt@gem_flink_basic@bad-flink.html

  * igt@i915_selftest@live@hangcheck:
    - fi-ivb-3770:        [PASS][5] -> [INCOMPLETE][6] ([i915#3303])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/fi-ivb-3770/igt@i915_selftest@live@hangcheck.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/fi-ivb-3770/igt@i915_selftest@live@hangcheck.html

  * igt@runner@aborted:
    - fi-ivb-3770:        NOTRUN -> [FAIL][7] ([fdo#109271] / [i915#4312])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/fi-ivb-3770/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-glk-dsi:         [DMESG-FAIL][8] ([i915#541]) -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/fi-glk-dsi/igt@i915_selftest@live@gt_heartbeat.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/fi-glk-dsi/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@hangcheck:
    - fi-snb-2600:        [INCOMPLETE][10] ([i915#3921]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/fi-snb-2600/igt@i915_selftest@live@hangcheck.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/fi-snb-2600/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@requests:
    - fi-blb-e6850:       [DMESG-FAIL][12] ([i915#5026]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/fi-blb-e6850/igt@i915_selftest@live@requests.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/fi-blb-e6850/igt@i915_selftest@live@requests.html

  * igt@kms_force_connector_basic@force-connector-state:
    - fi-cfl-8109u:       [DMESG-WARN][14] ([i915#165]) -> [PASS][15] +1 similar issue
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/fi-cfl-8109u/igt@kms_force_connector_basic@force-connector-state.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/fi-cfl-8109u/igt@kms_force_connector_basic@force-connector-state.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b:
    - fi-cfl-8109u:       [DMESG-WARN][16] ([i915#165] / [i915#295]) -> [PASS][17] +13 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#165]: https://gitlab.freedesktop.org/drm/intel/issues/165
  [i915#295]: https://gitlab.freedesktop.org/drm/intel/issues/295
  [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4547]: https://gitlab.freedesktop.org/drm/intel/issues/4547
  [i915#5026]: https://gitlab.freedesktop.org/drm/intel/issues/5026
  [i915#5127]: https://gitlab.freedesktop.org/drm/intel/issues/5127
  [i915#541]: https://gitlab.freedesktop.org/drm/intel/issues/541


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6361 -> IGTPW_6719

  CI-20190529: 20190529
  CI_DRM_11300: 10eb9bc8729d3da3fe8f53c8e5b70b8a9a52b6e0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6719: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/index.html
  IGT_6361: 2372a4beb6a33c5f0799a4a8ccbb93794f52dbca @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git



== Testlist changes ==

+igt@amdgpu/amd_freesync_video_mode@freesync-base-to-various
+igt@amdgpu/amd_freesync_video_mode@freesync-custom-mode
+igt@amdgpu/amd_freesync_video_mode@freesync-lower-to-higher
+igt@amdgpu/amd_freesync_video_mode@freesync-non-preferred-to-freesync

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/index.html

[-- Attachment #2: Type: text/html, Size: 6616 bytes --]

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

* [igt-dev] ✗ Fi.CI.IGT: failure for tests/amdgpu: new test for Freesync-Video Mode (rev3)
  2022-03-01  5:33 [igt-dev] [PATCH i-g-t v2] tests/amdgpu: new test for Freesync-Video Mode Solomon Chiu
  2022-03-01  6:13 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/amdgpu: new test for Freesync-Video Mode (rev3) Patchwork
@ 2022-03-01 13:18 ` Patchwork
  1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2022-03-01 13:18 UTC (permalink / raw)
  To: Solomon Chiu; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 30272 bytes --]

== Series Details ==

Series: tests/amdgpu: new test for Freesync-Video Mode (rev3)
URL   : https://patchwork.freedesktop.org/series/100861/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_11300_full -> IGTPW_6719_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_6719_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_6719_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_6719/index.html

Participating hosts (13 -> 8)
------------------------------

  Missing    (5): pig-kbl-iris pig-glk-j5005 pig-skl-6260u shard-rkl shard-dg1 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@core_hotunplug@unbind-rebind:
    - shard-snb:          [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-snb5/igt@core_hotunplug@unbind-rebind.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-snb5/igt@core_hotunplug@unbind-rebind.html
    - shard-glk:          [PASS][3] -> [DMESG-WARN][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-glk5/igt@core_hotunplug@unbind-rebind.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-glk6/igt@core_hotunplug@unbind-rebind.html
    - shard-iclb:         [PASS][5] -> [DMESG-WARN][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-iclb3/igt@core_hotunplug@unbind-rebind.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb7/igt@core_hotunplug@unbind-rebind.html

  * igt@gem_ctx_persistence@smoketest:
    - shard-tglb:         [PASS][7] -> [INCOMPLETE][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-tglb3/igt@gem_ctx_persistence@smoketest.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb6/igt@gem_ctx_persistence@smoketest.html

  * {igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-d-edp-1-downscale-with-pixel-format} (NEW):
    - shard-tglb:         NOTRUN -> [SKIP][9]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb6/igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-d-edp-1-downscale-with-pixel-format.html

  * {igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-d-hdmi-a-1-downscale-with-rotation} (NEW):
    - {shard-tglu}:       NOTRUN -> [SKIP][10] +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglu-4/igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-d-hdmi-a-1-downscale-with-rotation.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@core_hotunplug@unbind-rebind:
    - {shard-tglu}:       NOTRUN -> [DMESG-WARN][11]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglu-1/igt@core_hotunplug@unbind-rebind.html

  * {igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-b-edp-1-downscale-with-pixel-format}:
    - shard-tglb:         NOTRUN -> [SKIP][12] +2 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb6/igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-b-edp-1-downscale-with-pixel-format.html

  * {igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-a-hdmi-a-1-downscale-with-rotation}:
    - {shard-tglu}:       NOTRUN -> [SKIP][13] +1 similar issue
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglu-4/igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-a-hdmi-a-1-downscale-with-rotation.html

  
New tests
---------

  New tests have been introduced between CI_DRM_11300_full and IGTPW_6719_full:

### New IGT tests (24) ###

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-d-edp-1-downscale-with-pixel-format:
    - Statuses : 1 skip(s)
    - Exec time: [0.06] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-b-hdmi-a-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [0.02] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-d-hdmi-a-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [0.02] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b-hdmi-a-1-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-d-hdmi-a-1-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-d-edp-1-planes-unity-scaling:
    - Statuses : 1 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-b-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-d-edp-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-d-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_plane_scaling@planes-upscale-20x20@pipe-b-hdmi-a-1-planes-upscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.10] s

  * igt@kms_plane_scaling@planes-upscale-20x20@pipe-d-edp-1-planes-upscale:
    - Statuses : 1 pass(s)
    - Exec time: [1.21] s

  * igt@kms_plane_scaling@planes-upscale-20x20@pipe-d-hdmi-a-1-planes-upscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a-edp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.13, 0.19] s

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.35] s

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a-vga-1-planes-upscale-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.05] s

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-b-edp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.24, 1.27] s

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-b-hdmi-a-2-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.37] s

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-b-vga-1-planes-upscale-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.02] s

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-c-edp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-c-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.13] s

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-d-edp-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-upscale-factor-0-25@pipe-d-edp-1-planes-upscale:
    - Statuses : 1 pass(s)
    - Exec time: [1.21] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-hdmi-a-1-scaler-with-clipping-clamping:
    - Statuses : 1 pass(s)
    - Exec time: [22.80] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-d-hdmi-a-1-scaler-with-clipping-clamping:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@core_hotunplug@unbind-rebind:
    - shard-apl:          [PASS][14] -> [DMESG-WARN][15] ([i915#1982])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-apl2/igt@core_hotunplug@unbind-rebind.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-apl7/igt@core_hotunplug@unbind-rebind.html

  * igt@feature_discovery@display-2x:
    - shard-iclb:         NOTRUN -> [SKIP][16] ([i915#1839])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb3/igt@feature_discovery@display-2x.html

  * igt@gem_ctx_param@set-priority-not-supported:
    - shard-tglb:         NOTRUN -> [SKIP][17] ([fdo#109314])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb3/igt@gem_ctx_param@set-priority-not-supported.html

  * igt@gem_ctx_persistence@legacy-engines-queued:
    - shard-snb:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#1099]) +2 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-snb6/igt@gem_ctx_persistence@legacy-engines-queued.html

  * igt@gem_exec_balancer@parallel-bb-first:
    - shard-tglb:         NOTRUN -> [DMESG-WARN][19] ([i915#5076])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb5/igt@gem_exec_balancer@parallel-bb-first.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-kbl:          [PASS][20] -> [FAIL][21] ([i915#2842])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-kbl3/igt@gem_exec_fair@basic-none-solo@rcs0.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-kbl4/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-glk:          [PASS][22] -> [FAIL][23] ([i915#2842])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-glk9/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-glk9/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
    - shard-iclb:         NOTRUN -> [FAIL][24] ([i915#2842])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb4/igt@gem_exec_fair@basic-pace@vcs1.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         NOTRUN -> [FAIL][25] ([i915#2849])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb4/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_params@secure-non-root:
    - shard-tglb:         NOTRUN -> [SKIP][26] ([fdo#112283])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb3/igt@gem_exec_params@secure-non-root.html
    - shard-iclb:         NOTRUN -> [SKIP][27] ([fdo#112283])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb3/igt@gem_exec_params@secure-non-root.html

  * igt@gem_exec_suspend@basic-s3@smem:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][28] ([i915#180])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-kbl6/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-iclb:         NOTRUN -> [SKIP][29] ([i915#4613])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb4/igt@gem_lmem_swapping@heavy-random.html
    - shard-apl:          NOTRUN -> [SKIP][30] ([fdo#109271] / [i915#4613]) +1 similar issue
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-apl3/igt@gem_lmem_swapping@heavy-random.html
    - shard-glk:          NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#4613])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-glk1/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-kbl:          NOTRUN -> [SKIP][32] ([fdo#109271] / [i915#4613]) +2 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-kbl7/igt@gem_lmem_swapping@heavy-verify-random.html
    - shard-tglb:         NOTRUN -> [SKIP][33] ([i915#4613]) +3 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb2/igt@gem_lmem_swapping@heavy-verify-random.html

  * igt@gem_pxp@create-regular-buffer:
    - shard-tglb:         NOTRUN -> [SKIP][34] ([i915#4270]) +6 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb3/igt@gem_pxp@create-regular-buffer.html

  * igt@gem_pxp@reject-modify-context-protection-off-3:
    - shard-iclb:         NOTRUN -> [SKIP][35] ([i915#4270]) +2 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb7/igt@gem_pxp@reject-modify-context-protection-off-3.html

  * igt@gem_render_copy@yf-tiled-to-vebox-x-tiled:
    - shard-iclb:         NOTRUN -> [SKIP][36] ([i915#768]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb7/igt@gem_render_copy@yf-tiled-to-vebox-x-tiled.html

  * igt@gem_userptr_blits@unsync-unmap-cycles:
    - shard-tglb:         NOTRUN -> [SKIP][37] ([i915#3297]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb3/igt@gem_userptr_blits@unsync-unmap-cycles.html

  * igt@gem_workarounds@suspend-resume:
    - shard-kbl:          [PASS][38] -> [DMESG-WARN][39] ([i915#180])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-kbl1/igt@gem_workarounds@suspend-resume.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-kbl6/igt@gem_workarounds@suspend-resume.html

  * igt@gen3_render_tiledy_blits:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#109289]) +6 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb5/igt@gen3_render_tiledy_blits.html

  * igt@gen7_exec_parse@basic-allocation:
    - shard-glk:          NOTRUN -> [SKIP][41] ([fdo#109271]) +75 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-glk9/igt@gen7_exec_parse@basic-allocation.html

  * igt@gen7_exec_parse@chained-batch:
    - shard-iclb:         NOTRUN -> [SKIP][42] ([fdo#109289]) +1 similar issue
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb4/igt@gen7_exec_parse@chained-batch.html

  * igt@gen9_exec_parse@batch-without-end:
    - shard-iclb:         NOTRUN -> [SKIP][43] ([i915#2856]) +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb8/igt@gen9_exec_parse@batch-without-end.html

  * igt@gen9_exec_parse@shadow-peek:
    - shard-tglb:         NOTRUN -> [SKIP][44] ([i915#2527] / [i915#2856]) +5 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb1/igt@gen9_exec_parse@shadow-peek.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-tglb:         NOTRUN -> [FAIL][45] ([i915#454])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb5/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp:
    - shard-kbl:          NOTRUN -> [SKIP][46] ([fdo#109271] / [i915#1937])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-kbl6/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-tglb:         [PASS][47] -> [WARN][48] ([i915#2681] / [i915#2684])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-tglb2/igt@i915_pm_rc6_residency@rc6-fence.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb3/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-tglb:         NOTRUN -> [WARN][49] ([i915#2681] / [i915#2684])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb7/igt@i915_pm_rc6_residency@rc6-idle.html
    - shard-iclb:         NOTRUN -> [WARN][50] ([i915#1804] / [i915#2684])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb3/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@i915_pm_sseu@full-enable:
    - shard-tglb:         NOTRUN -> [SKIP][51] ([i915#4387])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb6/igt@i915_pm_sseu@full-enable.html

  * igt@i915_selftest@live@hangcheck:
    - shard-snb:          [PASS][52] -> [INCOMPLETE][53] ([i915#3921])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-snb6/igt@i915_selftest@live@hangcheck.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-snb5/igt@i915_selftest@live@hangcheck.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-iclb:         NOTRUN -> [SKIP][54] ([i915#1769])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb8/igt@kms_atomic_transition@plane-all-modeset-transition.html
    - shard-tglb:         NOTRUN -> [SKIP][55] ([i915#1769])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb7/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_big_fb@linear-32bpp-rotate-180:
    - shard-glk:          [PASS][56] -> [DMESG-WARN][57] ([i915#118]) +1 similar issue
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-glk9/igt@kms_big_fb@linear-32bpp-rotate-180.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-glk2/igt@kms_big_fb@linear-32bpp-rotate-180.html

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-iclb:         NOTRUN -> [SKIP][58] ([fdo#110725] / [fdo#111614]) +2 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb8/igt@kms_big_fb@linear-32bpp-rotate-90.html

  * igt@kms_big_fb@linear-8bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][59] ([fdo#111614]) +6 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb3/igt@kms_big_fb@linear-8bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-apl:          NOTRUN -> [SKIP][60] ([fdo#109271] / [i915#3777]) +1 similar issue
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-apl3/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-kbl:          NOTRUN -> [SKIP][61] ([fdo#109271] / [i915#3777]) +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-kbl4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][62] ([fdo#111615]) +11 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb7/igt@kms_big_fb@yf-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0:
    - shard-apl:          NOTRUN -> [SKIP][63] ([fdo#109271]) +150 similar issues
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-apl1/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html
    - shard-iclb:         NOTRUN -> [SKIP][64] ([fdo#110723]) +2 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb6/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html

  * igt@kms_big_joiner@basic:
    - shard-tglb:         NOTRUN -> [SKIP][65] ([i915#2705])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb7/igt@kms_big_joiner@basic.html
    - shard-iclb:         NOTRUN -> [SKIP][66] ([i915#2705])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb6/igt@kms_big_joiner@basic.html

  * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs:
    - shard-snb:          NOTRUN -> [SKIP][67] ([fdo#109271]) +153 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-snb5/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs.html

  * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][68] ([i915#3689]) +9 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb5/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_ccs.html

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][69] ([i915#3689] / [i915#3886]) +6 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb7/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-kbl:          NOTRUN -> [SKIP][70] ([fdo#109271] / [i915#3886]) +14 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-kbl1/igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][71] ([fdo#109278] / [i915#3886]) +9 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb3/igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][72] ([fdo#109271] / [i915#3886]) +6 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-glk2/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html
    - shard-apl:          NOTRUN -> [SKIP][73] ([fdo#109271] / [i915#3886]) +8 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-apl4/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-missing-ccs-buffer-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][74] ([fdo#111615] / [i915#3689]) +11 similar issues
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb7/igt@kms_ccs@pipe-d-missing-ccs-buffer-yf_tiled_ccs.html

  * igt@kms_cdclk@plane-scaling:
    - shard-tglb:         NOTRUN -> [SKIP][75] ([i915#3742])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb5/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium@dp-mode-timings:
    - shard-apl:          NOTRUN -> [SKIP][76] ([fdo#109271] / [fdo#111827]) +17 similar issues
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-apl3/igt@kms_chamelium@dp-mode-timings.html

  * igt@kms_chamelium@hdmi-hpd:
    - shard-glk:          NOTRUN -> [SKIP][77] ([fdo#109271] / [fdo#111827]) +9 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-glk5/igt@kms_chamelium@hdmi-hpd.html

  * igt@kms_chamelium@hdmi-mode-timings:
    - shard-iclb:         NOTRUN -> [SKIP][78] ([fdo#109284] / [fdo#111827]) +11 similar issues
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb8/igt@kms_chamelium@hdmi-mode-timings.html

  * igt@kms_color@pipe-d-ctm-negative:
    - shard-iclb:         NOTRUN -> [SKIP][79] ([fdo#109278] / [i915#1149])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb3/igt@kms_color@pipe-d-ctm-negative.html

  * igt@kms_color_chamelium@pipe-a-ctm-0-75:
    - shard-kbl:          NOTRUN -> [SKIP][80] ([fdo#109271] / [fdo#111827]) +17 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-kbl4/igt@kms_color_chamelium@pipe-a-ctm-0-75.html

  * igt@kms_color_chamelium@pipe-c-ctm-green-to-red:
    - shard-snb:          NOTRUN -> [SKIP][81] ([fdo#109271] / [fdo#111827]) +9 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-snb2/igt@kms_color_chamelium@pipe-c-ctm-green-to-red.html

  * igt@kms_color_chamelium@pipe-d-ctm-limited-range:
    - shard-iclb:         NOTRUN -> [SKIP][82] ([fdo#109278] / [fdo#109284] / [fdo#111827])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb7/igt@kms_color_chamelium@pipe-d-ctm-limited-range.html

  * igt@kms_color_chamelium@pipe-d-ctm-max:
    - shard-tglb:         NOTRUN -> [SKIP][83] ([fdo#109284] / [fdo#111827]) +24 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb5/igt@kms_color_chamelium@pipe-d-ctm-max.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-tglb:         NOTRUN -> [SKIP][84] ([i915#1063]) +2 similar issues
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb5/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@dp-mst-lic-type-0:
    - shard-tglb:         NOTRUN -> [SKIP][85] ([i915#3116] / [i915#3299])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb1/igt@kms_content_protection@dp-mst-lic-type-0.html

  * igt@kms_content_protection@legacy:
    - shard-iclb:         NOTRUN -> [SKIP][86] ([fdo#109300] / [fdo#111066])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb2/igt@kms_content_protection@legacy.html
    - shard-kbl:          NOTRUN -> [TIMEOUT][87] ([i915#1319]) +1 similar issue
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-kbl6/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@lic:
    - shard-apl:          NOTRUN -> [TIMEOUT][88] ([i915#1319])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-apl1/igt@kms_content_protection@lic.html

  * igt@kms_cursor_crc@pipe-a-cursor-32x10-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][89] ([i915#3359]) +8 similar issues
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb6/igt@kms_cursor_crc@pipe-a-cursor-32x10-offscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x32-sliding:
    - shard-tglb:         NOTRUN -> [SKIP][90] ([i915#3319]) +4 similar issues
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb5/igt@kms_cursor_crc@pipe-b-cursor-32x32-sliding.html

  * igt@kms_cursor_crc@pipe-b-cursor-512x512-rapid-movement:
    - shard-iclb:         NOTRUN -> [SKIP][91] ([fdo#109278] / [fdo#109279]) +2 similar issues
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb4/igt@kms_cursor_crc@pipe-b-cursor-512x512-rapid-movement.html

  * igt@kms_cursor_crc@pipe-d-cursor-512x170-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][92] ([fdo#109279] / [i915#3359]) +10 similar issues
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb2/igt@kms_cursor_crc@pipe-d-cursor-512x170-offscreen.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - shard-tglb:         NOTRUN -> [SKIP][93] ([i915#4103]) +2 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-atomic:
    - shard-tglb:         NOTRUN -> [SKIP][94] ([fdo#109274] / [fdo#111825]) +14 similar issues
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb5/igt@kms_cursor_legacy@cursora-vs-flipb-atomic.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-legacy:
    - shard-iclb:         NOTRUN -> [SKIP][95] ([fdo#109274] / [fdo#109278])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb5/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-iclb:         [PASS][96] -> [FAIL][97] ([i915#2346])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-iclb6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
    - shard-glk:          [PASS][98] -> [FAIL][99] ([i915#2346] / [i915#533])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@pipe-d-single-move:
    - shard-iclb:         NOTRUN -> [SKIP][100] ([fdo#109278]) +26 similar issues
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb8/igt@kms_cursor_legacy@pipe-d-single-move.html

  * igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium:
    - shard-tglb:         NOTRUN -> [SKIP][101] ([i915#3528])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb7/igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-tglb:         NOTRUN -> [SKIP][102] ([fdo#109274] / [fdo#111825] / [i915#3966])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-tglb2/igt@kms_flip@2x-absolute-wf_vblank.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
    - shard-iclb:         NOTRUN -> [SKIP][103] ([fdo#109274]) +3 similar issues
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb2/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-glk:          [PASS][104] -> [FAIL][105] ([i915#4911])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-glk6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-glk8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
    - shard-iclb:         [PASS][106] -> [SKIP][107] ([i915#3701])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11300/shard-iclb6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling:
    - shard-iclb:         NOTRUN -> [SKIP][108] ([i915#2587]) +1 similar issue
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-iclb6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt:
    - shard-kbl:          NOTRUN -> [SKIP][109] ([fdo#109271]) +235 similar issues
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt.html

  * igt@kms_front

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6719/index.html

[-- Attachment #2: Type: text/html, Size: 34190 bytes --]

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

end of thread, other threads:[~2022-03-01 13:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-01  5:33 [igt-dev] [PATCH i-g-t v2] tests/amdgpu: new test for Freesync-Video Mode Solomon Chiu
2022-03-01  6:13 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/amdgpu: new test for Freesync-Video Mode (rev3) Patchwork
2022-03-01 13:18 ` [igt-dev] ✗ Fi.CI.IGT: failure " 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.