* [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
* 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
* [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
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.