* [igt-dev] [PATCH i-g-t v4 1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb()
@ 2018-02-26 13:47 Martin Peres
2018-02-26 13:47 ` [igt-dev] [PATCH i-g-t v4 2/2] add a kms_fb_stride test Martin Peres
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Martin Peres @ 2018-02-26 13:47 UTC (permalink / raw)
To: igt-dev; +Cc: Martin Peres
They are the same as their non-underscored counterparts, except they
will return the error rather than dying when an error occurs.
v2: (suggested by Ville Syrjälä)
- drop the fb_id out parameter, it can be accessed from fb->fb_id.
Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
---
lib/igt_fb.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
lib/igt_fb.h | 7 +++++
2 files changed, 85 insertions(+), 15 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index ecd73053..19e3d792 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -759,18 +759,18 @@ void igt_paint_image(cairo_t *cr, const char *filename,
* The backing storage of the framebuffer is filled with all zeros, i.e. black
* for rgb pixel formats.
*
- * Returns:
- * The kms id of the created framebuffer.
+ * Returns: 0 in case of success, the error otherwise. The fb_id can be found
+ * in fb->fb_id.
*/
-unsigned int
-igt_create_fb_with_bo_size(int fd, int width, int height,
- uint32_t format, uint64_t tiling,
- struct igt_fb *fb, unsigned bo_size,
- unsigned bo_stride)
+int
+__igt_create_fb_with_bo_size(int fd, int width, int height,
+ uint32_t format, uint64_t tiling,
+ struct igt_fb *fb, unsigned bo_size,
+ unsigned bo_stride)
{
struct format_desc_struct *f = lookup_drm_format(format);
uint32_t fb_id;
- int i;
+ int ret, i;
igt_assert_f(f, "DRM format %08x not found\n", format);
@@ -789,9 +789,14 @@ igt_create_fb_with_bo_size(int fd, int width, int height,
if (tiling != LOCAL_DRM_FORMAT_MOD_NONE &&
tiling != LOCAL_I915_FORMAT_MOD_X_TILED) {
- do_or_die(__kms_addfb(fd, fb->gem_handle, width, height,
- fb->stride, format, tiling, fb->offsets,
- LOCAL_DRM_MODE_FB_MODIFIERS, &fb_id));
+ ret = __kms_addfb(fd, fb->gem_handle, width, height,
+ fb->stride, format, tiling, fb->offsets,
+ LOCAL_DRM_MODE_FB_MODIFIERS, &fb_id);
+ if (ret) {
+ igt_debug("%s: __kms_addfb() failed: %d (%s)\n",
+ __func__, errno, strerror(errno));
+ return ret;
+ }
} else {
uint32_t handles[4];
uint32_t pitches[4];
@@ -806,9 +811,14 @@ igt_create_fb_with_bo_size(int fd, int width, int height,
pitches[i] = fb->stride;
}
- do_or_die(drmModeAddFB2(fd, width, height, format,
- handles, pitches, fb->offsets,
- &fb_id, 0));
+ ret = drmModeAddFB2(fd, width, height, format,
+ handles, pitches, fb->offsets,
+ &fb_id, 0);
+ if (ret) {
+ igt_debug("%s: drmModeAddFB2() failed: %d (%s)\n",
+ __func__, errno, strerror(errno));
+ return ret;
+ }
}
fb->width = width;
@@ -829,7 +839,39 @@ igt_create_fb_with_bo_size(int fd, int width, int height,
fb->plane_width[i] = planar_width(f, width, i);
}
- return fb_id;
+ return 0;
+}
+
+/**
+ * igt_create_fb_with_bo_size:
+ * @fd: open i915 drm file descriptor
+ * @width: width of the framebuffer in pixel
+ * @height: height of the framebuffer in pixel
+ * @format: drm fourcc pixel format code
+ * @tiling: tiling layout of the framebuffer (as framebuffer modifier)
+ * @fb: pointer to an #igt_fb structure
+ * @bo_size: size of the backing bo (0 for automatic size)
+ * @bo_stride: stride of the backing bo (0 for automatic stride)
+ *
+ * This function allocates a gem buffer object suitable to back a framebuffer
+ * with the requested properties and then wraps it up in a drm framebuffer
+ * object of the requested size. All metadata is stored in @fb.
+ *
+ * The backing storage of the framebuffer is filled with all zeros, i.e. black
+ * for rgb pixel formats.
+ *
+ * Returns:
+ * The kms id of the created framebuffer.
+ */
+unsigned int
+igt_create_fb_with_bo_size(int fd, int width, int height,
+ uint32_t format, uint64_t tiling,
+ struct igt_fb *fb, unsigned bo_size,
+ unsigned bo_stride)
+{
+ do_or_die(__igt_create_fb_with_bo_size(fd, width, height, format,
+ tiling, fb, bo_size, bo_stride));
+ return fb->fb_id;
}
/**
@@ -858,6 +900,27 @@ unsigned int igt_create_fb(int fd, int width, int height, uint32_t format,
0, 0);
}
+/**
+ * __igt_create_fb:
+ * @fd: open i915 drm file descriptor
+ * @width: width of the framebuffer in pixel
+ * @height: height of the framebuffer in pixel
+ * @format: drm fourcc pixel format code
+ * @tiling: tiling layout of the framebuffer
+ * @fb: pointer to an #igt_fb structure
+ *
+ * Same as igt_create_fb, but return an error if it failed rather than failing.
+ *
+ * Returns: 0 in case of success, the error otherwise. The fb_id can be found
+ * in fb->fb_id.
+ */
+int __igt_create_fb(int fd, int width, int height, uint32_t format,
+ uint64_t tiling, struct igt_fb *fb)
+{
+ return __igt_create_fb_with_bo_size(fd, width, height, format, tiling,
+ fb, 0, 0);
+}
+
/**
* igt_create_color_fb:
* @fd: open i915 drm file descriptor
diff --git a/lib/igt_fb.h b/lib/igt_fb.h
index 023b069d..ce897d77 100644
--- a/lib/igt_fb.h
+++ b/lib/igt_fb.h
@@ -102,11 +102,18 @@ void igt_get_fb_tile_size(int fd, uint64_t tiling, int fb_bpp,
unsigned *width_ret, unsigned *height_ret);
void igt_calc_fb_size(int fd, int width, int height, uint32_t format, uint64_t tiling,
unsigned *size_ret, unsigned *stride_ret);
+int
+__igt_create_fb_with_bo_size(int fd, int width, int height,
+ uint32_t format, uint64_t tiling,
+ struct igt_fb *fb, unsigned bo_size,
+ unsigned bo_stride);
unsigned int
igt_create_fb_with_bo_size(int fd, int width, int height,
uint32_t format, uint64_t tiling,
struct igt_fb *fb, unsigned bo_size,
unsigned bo_stride);
+int __igt_create_fb(int fd, int width, int height, uint32_t format,
+ uint64_t tiling, struct igt_fb *fb);
unsigned int igt_create_fb(int fd, int width, int height, uint32_t format,
uint64_t tiling, struct igt_fb *fb);
unsigned int igt_create_color_fb(int fd, int width, int height,
--
2.16.2
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [igt-dev] [PATCH i-g-t v4 2/2] add a kms_fb_stride test
2018-02-26 13:47 [igt-dev] [PATCH i-g-t v4 1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb() Martin Peres
@ 2018-02-26 13:47 ` Martin Peres
2018-04-11 13:27 ` Katarzyna Dec
2018-02-26 16:40 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v4,1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb() Patchwork
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Martin Peres @ 2018-02-26 13:47 UTC (permalink / raw)
To: igt-dev; +Cc: Martin Peres
This test checks what strides are actually supported by each plane of
each pipe. The tested strides are 4K, 8K, and 16K. The tested formats
are DRM_FORMAT_RGB565 (16 bits) and DRM_FORMAT_XRGB8888 (32 bits).
To verify that the display controler is OK with the stride, the test
uses the pipe crc and verifies that a test image blitted to a
hdisplay x vdisplay framebuffer appears the same when blitted to a
stride x vdisplay framebuffer (with stride varying from 4K to 16K).
v2:
- SKIP when a stride/format is not supported by the kernel
- perform a modeset at a low resolution on all pipes before running
a test in order to be fast and provide coverage even without
a display attached (requires a VGA or HDMI connector).
- generate a subtest per pipe, plane, format and stride
v3:
- if no VGA or HDMI connectors are found, fallback to any connected
connector
v4: comments from Ville Syrjälä
- make get_lowres_mode return a mode from the wanted connector
Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
---
tests/Makefile.sources | 1 +
tests/kms_fb_stride.c | 298 +++++++++++++++++++++++++++++++++++++++++++++++++
tests/meson.build | 1 +
3 files changed, 300 insertions(+)
create mode 100644 tests/kms_fb_stride.c
diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 870c9093..0e1eeb95 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -181,6 +181,7 @@ TESTS_progs = \
kms_cursor_legacy \
kms_draw_crc \
kms_fbcon_fbt \
+ kms_fb_stride \
kms_fence_pin_leak \
kms_flip \
kms_flip_event_leak \
diff --git a/tests/kms_fb_stride.c b/tests/kms_fb_stride.c
new file mode 100644
index 00000000..0e640231
--- /dev/null
+++ b/tests/kms_fb_stride.c
@@ -0,0 +1,298 @@
+/*
+ * Copyright © 2018 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.
+ *
+ * Authors:
+ * Martin Peres <martin.peres@linux.intel.com>
+ */
+
+#include "igt.h"
+#include <errno.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+
+typedef enum {
+ TEST_STRIDE_CRTC = 0,
+ TEST_STRIDE_2K = 2,
+ TEST_STRIDE_4K = 4,
+ TEST_STRIDE_8K = 8,
+ TEST_STRIDE_16K = 16,
+ TEST_STRIDE_32K = 32,
+} stride_t;
+
+typedef struct {
+ int drm_fd;
+ igt_display_t display;
+ igt_pipe_crc_t *pipe_crc;
+} data_t;
+
+static drmModeModeInfo
+get_lowres_mode(igt_output_t *output, int max_hdisplay)
+{
+ drmModeConnector *connector;
+ drmModeModeInfo mode;
+ drmModeModeInfo std_1024_mode = {
+ .clock = 65000,
+ .hdisplay = 1024,
+ .hsync_start = 1048,
+ .hsync_end = 1184,
+ .htotal = 1344,
+ .hskew = 0,
+ .vdisplay = 768,
+ .vsync_start = 771,
+ .vsync_end = 777,
+ .vtotal = 806,
+ .vscan = 0,
+ .vrefresh = 60,
+ .flags = 0xA,
+ .type = 0x40,
+ .name = "Custom 1024x768",
+ };
+ int i;
+
+ /* look for modes on the connector that match the wanted mode */
+ connector = output->config.connector;
+ for (i = 0; i < connector->count_modes; i++) {
+ mode = connector->modes[i];
+ if (mode.hdisplay < max_hdisplay) {
+ igt_info("Found a matching mode: mode.hdisplay = %u\n", mode.hdisplay);
+ return mode;
+ }
+ }
+
+ /* we did not find any mode matching our request, return a standard
+ * 1024x768 VESA-compatible mode
+ */
+ return std_1024_mode;
+}
+
+static void test_cleanup(data_t *data, igt_plane_t *plane, struct igt_fb *fb) {
+ igt_plane_set_fb(plane, NULL);
+ igt_display_commit2(&data->display, COMMIT_UNIVERSAL);
+ igt_remove_fb(data->drm_fd, fb);
+}
+
+static void test_format_plane_get_crc(data_t *data, igt_output_t *output,
+ igt_plane_t *plane, uint32_t format,
+ stride_t stride,
+ igt_crc_t *crc /* out */) {
+ drmModeModeInfo *mode;
+ struct igt_fb fb;
+ cairo_t *cr;
+ int width, ret;
+
+ mode = igt_output_get_mode(output);
+
+ width = (stride == TEST_STRIDE_CRTC ? mode->hdisplay : stride * 1024);
+
+ igt_skip_on(__igt_create_fb(data->drm_fd, width, mode->vdisplay,
+ format, LOCAL_DRM_FORMAT_MOD_NONE, &fb));
+
+ cr = igt_get_cairo_ctx(data->drm_fd, &fb);
+ igt_paint_test_pattern(cr, mode->hdisplay, mode->vdisplay);
+ igt_assert(cairo_status(cr) == 0);
+ cairo_destroy(cr);
+
+ /* set the fb with the wanted stride. If the stride is negative, we want
+ * to fail because it means the pipe does not support the resolution of
+ * the screen. If the stride is positive, this means we are testing an
+ * increased stride and we want to skip if the kernel considers the mode
+ * invalid.
+ */
+ igt_plane_set_fb(plane, &fb);
+
+ ret = igt_display_try_commit2(&data->display, COMMIT_UNIVERSAL);
+ if (ret) {
+ /* reset the state and free the framebuffer */
+ test_cleanup(data, plane, &fb);
+
+ igt_skip("The kernel rejected setting a %ix%i framebuffer\n",
+ width, mode->vdisplay);
+ }
+
+ igt_pipe_crc_collect_crc(data->pipe_crc, crc);
+
+ /* reset the state and free the framebuffer */
+ test_cleanup(data, plane, &fb);
+}
+
+static void test_format_plane(data_t *data, enum pipe pipe,
+ igt_output_t *output, igt_plane_t *plane,
+ uint32_t format, stride_t stride)
+{
+ drmModeModeInfo mode;
+ igt_crc_t crc_ref, crc;
+
+ mode = get_lowres_mode(output, 1025);
+ igt_output_override_mode(output, &mode);
+ igt_output_set_pipe(output, pipe);
+ igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+ data->pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe,
+ INTEL_PIPE_CRC_SOURCE_AUTO);
+
+ test_format_plane_get_crc(data, output, plane, format,
+ TEST_STRIDE_CRTC, &crc_ref);
+ test_format_plane_get_crc(data, output, plane, format,
+ stride, &crc);
+ igt_assert_crc_equal(&crc_ref, &crc);
+
+ igt_pipe_crc_stop(data->pipe_crc);
+ igt_pipe_crc_free(data->pipe_crc);
+
+ igt_output_set_pipe(output, PIPE_ANY);
+}
+
+
+static igt_output_t *
+find_suitable_connector(data_t *data, enum pipe pipe) {
+ igt_output_t *output, *output_connected = NULL;
+ drmModeRes *res;
+
+ /* make sure all connectors are free for our testing */
+ res = drmModeGetResources(data->drm_fd);
+ igt_assert(res);
+ kmstest_unset_all_crtcs(data->drm_fd, res);
+
+ /* find a connector that supports mode injection */
+ for_each_valid_output_on_pipe(&data->display, pipe, output) {
+ drmModeConnector *c = output->config.connector;
+ if (!c)
+ continue;
+
+ /* find the first VGA or HDMI connector, since they are fast to
+ * do a modeset for, and we can force a mode on them.
+ */
+ if (c->connector_type == DRM_MODE_CONNECTOR_VGA ||
+ c->connector_type == DRM_MODE_CONNECTOR_HDMIA ||
+ c->connector_type == DRM_MODE_CONNECTOR_HDMIB)
+ return output;
+
+ /* this connector is not ideal, but if a screen is connected,
+ * then mark the connector as usable
+ */
+ if (c->connection == DRM_MODE_CONNECTED)
+ output_connected = output;
+ }
+
+ /* we did not find an ideal connector, so use one that has a connected
+ * screen on it (if available):
+ */
+ if (output_connected)
+ return output_connected;
+
+ igt_skip("No acceptable connector found on pipe %s\n",
+ kmstest_pipe_name(pipe));
+}
+
+static igt_plane_t *
+find_plane(data_t *data, enum pipe pipe, int plane_id) {
+ igt_plane_t *plane;
+
+ for_each_plane_on_pipe(&data->display, pipe, plane)
+ if (plane->index == plane_id) {
+ if (plane->type == DRM_PLANE_TYPE_CURSOR)
+ igt_skip("The plane %s.%d is a cursor plane\n",
+ kmstest_pipe_name(pipe), plane->index);
+ return plane;
+ }
+
+ igt_skip("The plane %s.%d could not be found\n",
+ kmstest_pipe_name(pipe), plane->index);
+
+ return NULL;
+}
+
+static void
+setup_test(data_t *data, enum pipe pipe, stride_t stride, int plane_id, uint32_t format) {
+ igt_output_t *output;
+ igt_plane_t *plane;
+
+ /* make sure to skip early if the plane or format is not available */
+ igt_skip_on(plane_id >= data->display.pipes[pipe].n_planes);
+ igt_skip_on(!igt_fb_supported_format(format));
+
+ /* get all the specified resources */
+ output = find_suitable_connector(data, pipe);
+ plane = find_plane(data, pipe, plane_id);
+
+ test_format_plane(data, pipe, output, plane, format, stride);
+}
+
+/* formats and strides that will be tested on all pipes and all non-cursor
+ * planes
+ */
+stride_t strides[] = { TEST_STRIDE_4K, TEST_STRIDE_8K, TEST_STRIDE_16K };
+uint32_t formats[] = { DRM_FORMAT_RGB565, DRM_FORMAT_XRGB8888 };
+#define N_PLANES_MAX 4
+
+static void
+run_tests_for_pipe(data_t *data, enum pipe pipe)
+{
+ stride_t stride;
+ uint32_t format;
+ int plane_id, s, f;
+
+ igt_fixture {
+ igt_skip_on(pipe >= data->display.n_pipes);
+ igt_require(data->display.pipes[pipe].n_planes > 0);
+ }
+
+ for (plane_id = 0; plane_id < N_PLANES_MAX; plane_id++) {
+ for (f = 0; f < ARRAY_SIZE(formats); f++) {
+ format = formats[f];
+
+ for (s = 0; s < ARRAY_SIZE(strides); s++) {
+ stride = strides[s];
+
+ igt_subtest_f("pipe-%s-plane-%d-%c%c%c%c-stride-%dK",
+ kmstest_pipe_name(pipe), plane_id, format,
+ format >> 8, format >> 16, format >> 24,
+ stride)
+ setup_test(data, pipe, stride, plane_id, format);
+ }
+ }
+ }
+}
+
+static data_t data;
+
+igt_main
+{
+ enum pipe pipe;
+
+ igt_fixture {
+ data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
+
+ kmstest_set_vt_graphics_mode();
+
+ igt_require_pipe_crc(data.drm_fd);
+ igt_display_init(&data.display, data.drm_fd);
+ }
+
+ for_each_pipe_static(pipe)
+ run_tests_for_pipe(&data, pipe);
+
+ igt_fixture {
+ igt_display_fini(&data.display);
+ }
+}
diff --git a/tests/meson.build b/tests/meson.build
index 521a4c42..8b048300 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -159,6 +159,7 @@ test_progs = [
'kms_cursor_legacy',
'kms_draw_crc',
'kms_fbcon_fbt',
+ 'kms_fb_stride',
'kms_fence_pin_leak',
'kms_flip',
'kms_flip_event_leak',
--
2.16.2
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v4,1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb()
2018-02-26 13:47 [igt-dev] [PATCH i-g-t v4 1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb() Martin Peres
2018-02-26 13:47 ` [igt-dev] [PATCH i-g-t v4 2/2] add a kms_fb_stride test Martin Peres
@ 2018-02-26 16:40 ` Patchwork
2018-02-26 22:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2018-03-13 11:25 ` [igt-dev] [PATCH i-g-t v4 1/2] " Arkadiusz Hiler
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-02-26 16:40 UTC (permalink / raw)
To: Martin Peres; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,v4,1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb()
URL : https://patchwork.freedesktop.org/series/38960/
State : success
== Summary ==
IGT patchset tested on top of latest successful build
dd82bdfa86f2086858e2a4bb554aad08a212604e igt/kms_force_connector_basic: Clear any previous connector override
with latest DRM-Tip kernel build CI_DRM_3834
3a86cab57850 drm-tip: 2018y-02m-26d-15h-41m-02s UTC integration manifest
Testlist changes:
+++ 144 lines
--- 0 lines
---- Known issues:
Test debugfs_test:
Subgroup read_all_entries:
incomplete -> PASS (fi-snb-2520m) fdo#103713
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:418s
fi-bdw-gvtdvm total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:426s
fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:376s
fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:482s
fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:287s
fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:487s
fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:474s
fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:456s
fi-cfl-8700k total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:395s
fi-cfl-s2 total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:561s
fi-cnl-y3 total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:573s
fi-elk-e7500 total:288 pass:229 dwarn:0 dfail:0 fail:0 skip:59 time:415s
fi-gdg-551 total:288 pass:179 dwarn:0 dfail:0 fail:1 skip:108 time:287s
fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:508s
fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:387s
fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:410s
fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:455s
fi-ivb-3770 total:288 pass:255 dwarn:0 dfail:0 fail:0 skip:33 time:411s
fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:451s
fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:491s
fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:449s
fi-kbl-r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:493s
fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:571s
fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:427s
fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:504s
fi-skl-6700hq total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:521s
fi-skl-6700k2 total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:485s
fi-skl-6770hq total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:476s
fi-skl-guc total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:408s
fi-skl-gvtdvm total:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:431s
fi-snb-2520m total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:517s
fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:405s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1006/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,v4,1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb()
2018-02-26 13:47 [igt-dev] [PATCH i-g-t v4 1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb() Martin Peres
2018-02-26 13:47 ` [igt-dev] [PATCH i-g-t v4 2/2] add a kms_fb_stride test Martin Peres
2018-02-26 16:40 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v4,1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb() Patchwork
@ 2018-02-26 22:14 ` Patchwork
2018-03-13 11:25 ` [igt-dev] [PATCH i-g-t v4 1/2] " Arkadiusz Hiler
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-02-26 22:14 UTC (permalink / raw)
To: Martin Peres; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,v4,1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb()
URL : https://patchwork.freedesktop.org/series/38960/
State : success
== Summary ==
---- Possible new issues:
Test kms_cursor_crc:
Subgroup cursor-256x256-dpms:
pass -> FAIL (shard-apl)
Test kms_vblank:
Subgroup pipe-b-query-idle:
pass -> SKIP (shard-snb)
Subgroup pipe-c-ts-continuation-dpms-suspend:
pass -> INCOMPLETE (shard-hsw)
---- Known issues:
Test gem_eio:
Subgroup in-flight:
pass -> INCOMPLETE (shard-apl) fdo#104945
Test kms_flip:
Subgroup dpms-vs-vblank-race-interruptible:
fail -> PASS (shard-hsw) fdo#103060
Subgroup flip-vs-expired-vblank:
pass -> FAIL (shard-hsw) fdo#102887
Test kms_flip_tiling:
Subgroup flip-yf-tiled:
fail -> PASS (shard-apl) fdo#103822
Test kms_rotation_crc:
Subgroup primary-rotation-180:
fail -> PASS (shard-hsw) fdo#103925 +1
Test kms_setmode:
Subgroup basic:
fail -> PASS (shard-hsw) fdo#99912 +1
fdo#104945 https://bugs.freedesktop.org/show_bug.cgi?id=104945
fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
shard-apl total:3594 pass:1844 dwarn:1 dfail:0 fail:7 skip:1740 time:12031s
shard-hsw total:3522 pass:1734 dwarn:1 dfail:0 fail:2 skip:1783 time:11270s
shard-snb total:3604 pass:1367 dwarn:1 dfail:0 fail:2 skip:2234 time:6673s
Blacklisted hosts:
shard-kbl total:3547 pass:1933 dwarn:1 dfail:0 fail:6 skip:1606 time:9357s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1006/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb()
2018-02-26 13:47 [igt-dev] [PATCH i-g-t v4 1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb() Martin Peres
` (2 preceding siblings ...)
2018-02-26 22:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2018-03-13 11:25 ` Arkadiusz Hiler
3 siblings, 0 replies; 6+ messages in thread
From: Arkadiusz Hiler @ 2018-03-13 11:25 UTC (permalink / raw)
To: Martin Peres; +Cc: igt-dev
On Mon, Feb 26, 2018 at 03:47:02PM +0200, Martin Peres wrote:
> They are the same as their non-underscored counterparts, except they
> will return the error rather than dying when an error occurs.
>
> v2: (suggested by Ville Syrjälä)
> - drop the fb_id out parameter, it can be accessed from fb->fb_id.
>
> Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
> ---
<SNIP>
> +/**
> + * __igt_create_fb:
> + * @fd: open i915 drm file descriptor
> + * @width: width of the framebuffer in pixel
> + * @height: height of the framebuffer in pixel
> + * @format: drm fourcc pixel format code
> + * @tiling: tiling layout of the framebuffer
> + * @fb: pointer to an #igt_fb structure
> + *
> + * Same as igt_create_fb, but return an error if it failed rather than failing.
> + *
> + * Returns: 0 in case of success, the error otherwise. The fb_id can be found
> + * in fb->fb_id.
> + */
I prefer the previous version because consistency. Now we have
non-underscored functions returning fb_id and the underscored ones
returning 0.
I think we should either keeping them as they were or change the
non-underscore versions to follow the same conversion.
- Arek
> +int __igt_create_fb(int fd, int width, int height, uint32_t format,
> + uint64_t tiling, struct igt_fb *fb)
> +{
> + return __igt_create_fb_with_bo_size(fd, width, height, format, tiling,
> + fb, 0, 0);
> +}
> +
> /**
> * igt_create_color_fb:
> * @fd: open i915 drm file descriptor
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 2/2] add a kms_fb_stride test
2018-02-26 13:47 ` [igt-dev] [PATCH i-g-t v4 2/2] add a kms_fb_stride test Martin Peres
@ 2018-04-11 13:27 ` Katarzyna Dec
0 siblings, 0 replies; 6+ messages in thread
From: Katarzyna Dec @ 2018-04-11 13:27 UTC (permalink / raw)
To: Martin Peres; +Cc: igt-dev
On Mon, Feb 26, 2018 at 03:47:03PM +0200, Martin Peres wrote:
> This test checks what strides are actually supported by each plane of
> each pipe. The tested strides are 4K, 8K, and 16K. The tested formats
> are DRM_FORMAT_RGB565 (16 bits) and DRM_FORMAT_XRGB8888 (32 bits).
>
> To verify that the display controler is OK with the stride, the test
> uses the pipe crc and verifies that a test image blitted to a
> hdisplay x vdisplay framebuffer appears the same when blitted to a
> stride x vdisplay framebuffer (with stride varying from 4K to 16K).
>
> v2:
> - SKIP when a stride/format is not supported by the kernel
> - perform a modeset at a low resolution on all pipes before running
> a test in order to be fast and provide coverage even without
> a display attached (requires a VGA or HDMI connector).
> - generate a subtest per pipe, plane, format and stride
>
> v3:
> - if no VGA or HDMI connectors are found, fallback to any connected
> connector
>
> v4: comments from Ville Syrjälä
> - make get_lowres_mode return a mode from the wanted connector
>
Hello Martin,
I know that there will be a new version of this patches, so maybe
you could add IGT_TEST_DESCRIPTION to new test and check with
checkpatch.pl for some style changes?
Patch with test looks good, but I wait with review for new version.
Kasia
> --
> 2.16.2
>
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-04-11 13:27 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-26 13:47 [igt-dev] [PATCH i-g-t v4 1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb() Martin Peres
2018-02-26 13:47 ` [igt-dev] [PATCH i-g-t v4 2/2] add a kms_fb_stride test Martin Peres
2018-04-11 13:27 ` Katarzyna Dec
2018-02-26 16:40 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v4,1/2] lib/fb: introduce __igt_create_fb_with_bo_size() and __igt_create_fb() Patchwork
2018-02-26 22:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2018-03-13 11:25 ` [igt-dev] [PATCH i-g-t v4 1/2] " Arkadiusz Hiler
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.