* [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium
@ 2018-12-04 10:25 Maxime Ripard
2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 1/8] chamelium: Fix inverted xr24 pattern paint dimensions Maxime Ripard
` (9 more replies)
0 siblings, 10 replies; 15+ messages in thread
From: Maxime Ripard @ 2018-12-04 10:25 UTC (permalink / raw)
To: igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni
Hi,
Here is a first attempt at expanding the current Chamelium formats
test to the NV12 format.
It builds on top of the current infrastructure for the NV12
convertion, and the format suppport of the Chamelium.
Let me know what you think,
Maxime
Maxime Ripard (6):
igt: tests: chamelium: Start to unify tests
igt: tests: chamelium: Convert VGA tests to do_test_display
igt: fb: Move i915 buffer allocation to a function of its own
igt: fb: Separate YUV allocation from the rest
igt: fb: Fallback on KMS dumb buffer allocation for YUV buffers
igt: tests: chamelium: Add NV12 format
Paul Kocialkowski (2):
chamelium: Fix inverted xr24 pattern paint dimensions
chamelium: Pass and use stride for xr24 pattern paint
lib/igt_fb.c | 140 +++++++++++++++++--------
tests/kms_chamelium.c | 234 ++++++++++++++++++++----------------------
2 files changed, 210 insertions(+), 164 deletions(-)
--
2.19.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 15+ messages in thread* [igt-dev] [PATCH RESEND i-g-t 1/8] chamelium: Fix inverted xr24 pattern paint dimensions 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard @ 2018-12-04 10:25 ` Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 2/8] chamelium: Pass and use stride for xr24 pattern paint Maxime Ripard ` (8 subsequent siblings) 9 siblings, 0 replies; 15+ messages in thread From: Maxime Ripard @ 2018-12-04 10:25 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni From: Paul Kocialkowski <paul.kocialkowski@bootlin.com> The xr24 pattern for chamelium testing appears mangled when checking it on an actual display. This is because the horizontal and vertical display sizes are inverted when used as width and height. Put them back in order. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.com> --- tests/kms_chamelium.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c index 55b346a9e1c4..ee7580b54e69 100644 --- a/tests/kms_chamelium.c +++ b/tests/kms_chamelium.c @@ -518,7 +518,7 @@ static int chamelium_get_pattern_fb(data_t *data, drmModeModeInfo *mode, ptr = igt_fb_map_buffer(fb->fd, fb); igt_assert(ptr); - chamelium_paint_xr24_pattern(ptr, mode->vdisplay, mode->hdisplay); + chamelium_paint_xr24_pattern(ptr, mode->hdisplay, mode->vdisplay); igt_fb_unmap_buffer(fb, ptr); return fb_id; -- 2.19.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH RESEND i-g-t 2/8] chamelium: Pass and use stride for xr24 pattern paint 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 1/8] chamelium: Fix inverted xr24 pattern paint dimensions Maxime Ripard @ 2018-12-04 10:25 ` Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 3/8] igt: tests: chamelium: Start to unify tests Maxime Ripard ` (7 subsequent siblings) 9 siblings, 0 replies; 15+ messages in thread From: Maxime Ripard @ 2018-12-04 10:25 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni From: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Using the width from the selected mode is not sufficient to correctly paint a pattern on the framebuffer memory: the stride also has to be taken in account for proper line start alignment. Pass the stride and use it in chamelium_paint_xr24_pattern. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.com> --- tests/kms_chamelium.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c index ee7580b54e69..ebca5eefd222 100644 --- a/tests/kms_chamelium.c +++ b/tests/kms_chamelium.c @@ -489,7 +489,8 @@ enable_output(data_t *data, } static void chamelium_paint_xr24_pattern(uint32_t *data, - size_t width, size_t height) + size_t width, size_t height, + size_t stride) { uint32_t colors[] = { 0xff000000, 0xffff0000, @@ -500,7 +501,7 @@ static void chamelium_paint_xr24_pattern(uint32_t *data, for (i = 0; i < height; i++) for (j = 0; j < width; j++) - *(data + i * width + j) = colors[((j / 64) + (i / 64)) % 5]; + *(data + i * stride / 4 + j) = colors[((j / 64) + (i / 64)) % 5]; } static int chamelium_get_pattern_fb(data_t *data, drmModeModeInfo *mode, @@ -518,7 +519,8 @@ static int chamelium_get_pattern_fb(data_t *data, drmModeModeInfo *mode, ptr = igt_fb_map_buffer(fb->fd, fb); igt_assert(ptr); - chamelium_paint_xr24_pattern(ptr, mode->hdisplay, mode->vdisplay); + chamelium_paint_xr24_pattern(ptr, mode->hdisplay, mode->vdisplay, + fb->strides[0]); igt_fb_unmap_buffer(fb, ptr); return fb_id; -- 2.19.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH RESEND i-g-t 3/8] igt: tests: chamelium: Start to unify tests 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 1/8] chamelium: Fix inverted xr24 pattern paint dimensions Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 2/8] chamelium: Pass and use stride for xr24 pattern paint Maxime Ripard @ 2018-12-04 10:25 ` Maxime Ripard 2018-12-06 14:15 ` Paul Kocialkowski 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 4/8] igt: tests: chamelium: Convert VGA tests to do_test_display Maxime Ripard ` (6 subsequent siblings) 9 siblings, 1 reply; 15+ messages in thread From: Maxime Ripard @ 2018-12-04 10:25 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni The various tests in kms_chamelium are really variants of one another but share little code. In addition to the duplication, this gets in the way of the introduction of more tests, or to be able to run all the tests on all the output, which isn't the case at the moment, with the HDMI and DP tests and the VGA tests being different. Start by introducing a check parameter to the do_test_display function, that will tell which test method we want to use to compare the frames. Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> --- tests/kms_chamelium.c | 134 +++++++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 61 deletions(-) diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c index ebca5eefd222..8b9872a17044 100644 --- a/tests/kms_chamelium.c +++ b/tests/kms_chamelium.c @@ -526,12 +526,15 @@ static int chamelium_get_pattern_fb(data_t *data, drmModeModeInfo *mode, return fb_id; } -static void do_test_display_crc(data_t *data, struct chamelium_port *port, - igt_output_t *output, drmModeModeInfo *mode, - uint32_t fourcc, int count) +enum chamelium_check { + CHAMELIUM_CHECK_CRC, +}; + +static void do_test_display(data_t *data, struct chamelium_port *port, + igt_output_t *output, drmModeModeInfo *mode, + uint32_t fourcc, enum chamelium_check check, + int count) { - igt_crc_t *crc; - igt_crc_t *expected_crc; struct chamelium_fb_crc_async_data *fb_crc; struct igt_fb frame_fb, fb; int i, fb_id, captured_frame_count; @@ -544,39 +547,46 @@ static void do_test_display_crc(data_t *data, struct chamelium_port *port, frame_id = igt_fb_convert(&frame_fb, &fb, fourcc); igt_assert(frame_id > 0); - fb_crc = chamelium_calculate_fb_crc_async_start(data->drm_fd, - &fb); + if (check == CHAMELIUM_CHECK_CRC) + fb_crc = chamelium_calculate_fb_crc_async_start(data->drm_fd, + &fb); enable_output(data, port, output, mode, &frame_fb); - /* We want to keep the display running for a little bit, since - * there's always the potential the driver isn't able to keep - * the display running properly for very long - */ - chamelium_capture(data->chamelium, port, 0, 0, 0, 0, count); - crc = chamelium_read_captured_crcs(data->chamelium, - &captured_frame_count); + if (check == CHAMELIUM_CHECK_CRC) { + igt_crc_t *expected_crc; + igt_crc_t *crc; - igt_assert(captured_frame_count == count); + /* We want to keep the display running for a little bit, since + * there's always the potential the driver isn't able to keep + * the display running properly for very long + */ + chamelium_capture(data->chamelium, port, 0, 0, 0, 0, count); + crc = chamelium_read_captured_crcs(data->chamelium, + &captured_frame_count); - igt_debug("Captured %d frames\n", captured_frame_count); + igt_assert(captured_frame_count == count); - expected_crc = chamelium_calculate_fb_crc_async_finish(fb_crc); + igt_debug("Captured %d frames\n", captured_frame_count); - for (i = 0; i < captured_frame_count; i++) - chamelium_assert_crc_eq_or_dump(data->chamelium, - expected_crc, &crc[i], - &fb, i); + expected_crc = chamelium_calculate_fb_crc_async_finish(fb_crc); - free(expected_crc); - free(crc); + for (i = 0; i < captured_frame_count; i++) + chamelium_assert_crc_eq_or_dump(data->chamelium, + expected_crc, &crc[i], + &fb, i); + + free(expected_crc); + free(crc); + } igt_remove_fb(data->drm_fd, &frame_fb); igt_remove_fb(data->drm_fd, &fb); } -static void test_display_crc_one_mode(data_t *data, struct chamelium_port *port, - uint32_t fourcc, int count) +static void test_display_one_mode(data_t *data, struct chamelium_port *port, + uint32_t fourcc, enum chamelium_check check, + int count) { igt_output_t *output; drmModeConnector *connector; @@ -589,13 +599,15 @@ static void test_display_crc_one_mode(data_t *data, struct chamelium_port *port, primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); igt_assert(primary); - do_test_display_crc(data, port, output, &connector->modes[0], fourcc, count); + do_test_display(data, port, output, &connector->modes[0], fourcc, + check, count); drmModeFreeConnector(connector); } -static void test_display_crc_all_modes(data_t *data, struct chamelium_port *port, - uint32_t fourcc, int count) +static void test_display_all_modes(data_t *data, struct chamelium_port *port, + uint32_t fourcc, enum chamelium_check check, + int count) { igt_output_t *output; igt_plane_t *primary; @@ -612,7 +624,7 @@ static void test_display_crc_all_modes(data_t *data, struct chamelium_port *port for (i = 0; i < connector->count_modes; i++) { drmModeModeInfo *mode = &connector->modes[i]; - do_test_display_crc(data, port, output, mode, fourcc, count); + do_test_display(data, port, output, mode, fourcc, check, count); } drmModeFreeConnector(connector); @@ -873,16 +885,16 @@ igt_main edid_id, alt_edid_id); connector_subtest("dp-crc-single", DisplayPort) - test_display_crc_all_modes(&data, port, - DRM_FORMAT_XRGB8888, 1); + test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("dp-crc-fast", DisplayPort) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_XRGB8888, 1); + test_display_one_mode(&data, port, DRM_FORMAT_XRGB8888, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("dp-crc-multiple", DisplayPort) - test_display_crc_all_modes(&data, port, - DRM_FORMAT_XRGB8888, 3); + test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888, + CHAMELIUM_CHECK_CRC, 3); connector_subtest("dp-frame-dump", DisplayPort) test_display_frame_dump(&data, port); @@ -940,56 +952,56 @@ igt_main edid_id, alt_edid_id); connector_subtest("hdmi-crc-single", HDMIA) - test_display_crc_all_modes(&data, port, - DRM_FORMAT_XRGB8888, 1); + test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-fast", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_XRGB8888, 1); + test_display_one_mode(&data, port, DRM_FORMAT_XRGB8888, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-multiple", HDMIA) - test_display_crc_all_modes(&data, port, - DRM_FORMAT_XRGB8888, 3); + test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888, + CHAMELIUM_CHECK_CRC, 3); connector_subtest("hdmi-crc-argb8888", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_ARGB8888, 1); + test_display_one_mode(&data, port, DRM_FORMAT_ARGB8888, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-abgr8888", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_ABGR8888, 1); + test_display_one_mode(&data, port, DRM_FORMAT_ABGR8888, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-xrgb8888", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_XRGB8888, 1); + test_display_one_mode(&data, port, DRM_FORMAT_XRGB8888, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-xbgr8888", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_XBGR8888, 1); + test_display_one_mode(&data, port, DRM_FORMAT_XBGR8888, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-rgb888", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_RGB888, 1); + test_display_one_mode(&data, port, DRM_FORMAT_RGB888, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-bgr888", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_BGR888, 1); + test_display_one_mode(&data, port, DRM_FORMAT_BGR888, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-rgb565", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_RGB565, 1); + test_display_one_mode(&data, port, DRM_FORMAT_RGB565, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-bgr565", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_BGR565, 1); + test_display_one_mode(&data, port, DRM_FORMAT_BGR565, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-argb1555", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_ARGB1555, 1); + test_display_one_mode(&data, port, DRM_FORMAT_ARGB1555, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-crc-xrgb1555", HDMIA) - test_display_crc_one_mode(&data, port, - DRM_FORMAT_XRGB1555, 1); + test_display_one_mode(&data, port, DRM_FORMAT_XRGB1555, + CHAMELIUM_CHECK_CRC, 1); connector_subtest("hdmi-frame-dump", HDMIA) test_display_frame_dump(&data, port); -- 2.19.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH RESEND i-g-t 3/8] igt: tests: chamelium: Start to unify tests 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 3/8] igt: tests: chamelium: Start to unify tests Maxime Ripard @ 2018-12-06 14:15 ` Paul Kocialkowski 0 siblings, 0 replies; 15+ messages in thread From: Paul Kocialkowski @ 2018-12-06 14:15 UTC (permalink / raw) To: Maxime Ripard, igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni Hi, On Tue, 2018-12-04 at 11:25 +0100, Maxime Ripard wrote: > The various tests in kms_chamelium are really variants of one another > but share little code. > > In addition to the duplication, this gets in the way of the > introduction of more tests, or to be able to run all the tests on all > the output, which isn't the case at the moment, with the HDMI and DP > tests and the VGA tests being different. > > Start by introducing a check parameter to the do_test_display > function, that will tell which test method we want to use to compare > the frames. Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> > --- > tests/kms_chamelium.c | 134 +++++++++++++++++++++++------------------- > 1 file changed, 73 insertions(+), 61 deletions(-) > > diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c > index ebca5eefd222..8b9872a17044 100644 > --- a/tests/kms_chamelium.c > +++ b/tests/kms_chamelium.c > @@ -526,12 +526,15 @@ static int chamelium_get_pattern_fb(data_t *data, drmModeModeInfo *mode, > return fb_id; > } > > -static void do_test_display_crc(data_t *data, struct chamelium_port *port, > - igt_output_t *output, drmModeModeInfo *mode, > - uint32_t fourcc, int count) > +enum chamelium_check { > + CHAMELIUM_CHECK_CRC, > +}; > + > +static void do_test_display(data_t *data, struct chamelium_port *port, > + igt_output_t *output, drmModeModeInfo *mode, > + uint32_t fourcc, enum chamelium_check check, > + int count) > { > - igt_crc_t *crc; > - igt_crc_t *expected_crc; > struct chamelium_fb_crc_async_data *fb_crc; > struct igt_fb frame_fb, fb; > int i, fb_id, captured_frame_count; > @@ -544,39 +547,46 @@ static void do_test_display_crc(data_t *data, struct chamelium_port *port, > frame_id = igt_fb_convert(&frame_fb, &fb, fourcc); > igt_assert(frame_id > 0); > > - fb_crc = chamelium_calculate_fb_crc_async_start(data->drm_fd, > - &fb); > + if (check == CHAMELIUM_CHECK_CRC) > + fb_crc = chamelium_calculate_fb_crc_async_start(data->drm_fd, > + &fb); > > enable_output(data, port, output, mode, &frame_fb); > > - /* We want to keep the display running for a little bit, since > - * there's always the potential the driver isn't able to keep > - * the display running properly for very long > - */ > - chamelium_capture(data->chamelium, port, 0, 0, 0, 0, count); > - crc = chamelium_read_captured_crcs(data->chamelium, > - &captured_frame_count); > + if (check == CHAMELIUM_CHECK_CRC) { > + igt_crc_t *expected_crc; > + igt_crc_t *crc; > > - igt_assert(captured_frame_count == count); > + /* We want to keep the display running for a little bit, since > + * there's always the potential the driver isn't able to keep > + * the display running properly for very long > + */ > + chamelium_capture(data->chamelium, port, 0, 0, 0, 0, count); > + crc = chamelium_read_captured_crcs(data->chamelium, > + &captured_frame_count); > > - igt_debug("Captured %d frames\n", captured_frame_count); > + igt_assert(captured_frame_count == count); > > - expected_crc = chamelium_calculate_fb_crc_async_finish(fb_crc); > + igt_debug("Captured %d frames\n", captured_frame_count); > > - for (i = 0; i < captured_frame_count; i++) > - chamelium_assert_crc_eq_or_dump(data->chamelium, > - expected_crc, &crc[i], > - &fb, i); > + expected_crc = chamelium_calculate_fb_crc_async_finish(fb_crc); > > - free(expected_crc); > - free(crc); > + for (i = 0; i < captured_frame_count; i++) > + chamelium_assert_crc_eq_or_dump(data->chamelium, > + expected_crc, &crc[i], > + &fb, i); > + > + free(expected_crc); > + free(crc); > + } > > igt_remove_fb(data->drm_fd, &frame_fb); > igt_remove_fb(data->drm_fd, &fb); > } > > -static void test_display_crc_one_mode(data_t *data, struct chamelium_port *port, > - uint32_t fourcc, int count) > +static void test_display_one_mode(data_t *data, struct chamelium_port *port, > + uint32_t fourcc, enum chamelium_check check, > + int count) > { > igt_output_t *output; > drmModeConnector *connector; > @@ -589,13 +599,15 @@ static void test_display_crc_one_mode(data_t *data, struct chamelium_port *port, > primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); > igt_assert(primary); > > - do_test_display_crc(data, port, output, &connector->modes[0], fourcc, count); > + do_test_display(data, port, output, &connector->modes[0], fourcc, > + check, count); > > drmModeFreeConnector(connector); > } > > -static void test_display_crc_all_modes(data_t *data, struct chamelium_port *port, > - uint32_t fourcc, int count) > +static void test_display_all_modes(data_t *data, struct chamelium_port *port, > + uint32_t fourcc, enum chamelium_check check, > + int count) > { > igt_output_t *output; > igt_plane_t *primary; > @@ -612,7 +624,7 @@ static void test_display_crc_all_modes(data_t *data, struct chamelium_port *port > for (i = 0; i < connector->count_modes; i++) { > drmModeModeInfo *mode = &connector->modes[i]; > > - do_test_display_crc(data, port, output, mode, fourcc, count); > + do_test_display(data, port, output, mode, fourcc, check, count); > } > > drmModeFreeConnector(connector); > @@ -873,16 +885,16 @@ igt_main > edid_id, alt_edid_id); > > connector_subtest("dp-crc-single", DisplayPort) > - test_display_crc_all_modes(&data, port, > - DRM_FORMAT_XRGB8888, 1); > + test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("dp-crc-fast", DisplayPort) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_XRGB8888, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_XRGB8888, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("dp-crc-multiple", DisplayPort) > - test_display_crc_all_modes(&data, port, > - DRM_FORMAT_XRGB8888, 3); > + test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888, > + CHAMELIUM_CHECK_CRC, 3); > > connector_subtest("dp-frame-dump", DisplayPort) > test_display_frame_dump(&data, port); > @@ -940,56 +952,56 @@ igt_main > edid_id, alt_edid_id); > > connector_subtest("hdmi-crc-single", HDMIA) > - test_display_crc_all_modes(&data, port, > - DRM_FORMAT_XRGB8888, 1); > + test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-fast", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_XRGB8888, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_XRGB8888, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-multiple", HDMIA) > - test_display_crc_all_modes(&data, port, > - DRM_FORMAT_XRGB8888, 3); > + test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888, > + CHAMELIUM_CHECK_CRC, 3); > > connector_subtest("hdmi-crc-argb8888", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_ARGB8888, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_ARGB8888, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-abgr8888", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_ABGR8888, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_ABGR8888, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-xrgb8888", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_XRGB8888, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_XRGB8888, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-xbgr8888", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_XBGR8888, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_XBGR8888, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-rgb888", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_RGB888, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_RGB888, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-bgr888", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_BGR888, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_BGR888, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-rgb565", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_RGB565, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_RGB565, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-bgr565", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_BGR565, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_BGR565, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-argb1555", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_ARGB1555, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_ARGB1555, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-crc-xrgb1555", HDMIA) > - test_display_crc_one_mode(&data, port, > - DRM_FORMAT_XRGB1555, 1); > + test_display_one_mode(&data, port, DRM_FORMAT_XRGB1555, > + CHAMELIUM_CHECK_CRC, 1); > > connector_subtest("hdmi-frame-dump", HDMIA) > test_display_frame_dump(&data, port); -- Paul Kocialkowski, Bootlin (formerly Free Electrons) Embedded Linux and kernel engineering https://bootlin.com _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH RESEND i-g-t 4/8] igt: tests: chamelium: Convert VGA tests to do_test_display 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard ` (2 preceding siblings ...) 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 3/8] igt: tests: chamelium: Start to unify tests Maxime Ripard @ 2018-12-04 10:25 ` Maxime Ripard 2018-12-06 14:15 ` Paul Kocialkowski 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 5/8] igt: fb: Move i915 buffer allocation to a function of its own Maxime Ripard ` (5 subsequent siblings) 9 siblings, 1 reply; 15+ messages in thread From: Maxime Ripard @ 2018-12-04 10:25 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni The VGA tests were run so far as part of a separate function. However, the only difference between that function and the do_test_display function was the kind of comparison we wanted to use. Indeed, VGA being an analog output, we can't rely on a pixel perfect image, and thus only compare the CRCs, but we need to make some more advanced comparison. Let's add a new check method, add support for the analog check to do_test_display and remove the old version. Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> --- tests/kms_chamelium.c | 92 ++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 59 deletions(-) diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c index 8b9872a17044..80b279c4f1c2 100644 --- a/tests/kms_chamelium.c +++ b/tests/kms_chamelium.c @@ -527,6 +527,7 @@ static int chamelium_get_pattern_fb(data_t *data, drmModeModeInfo *mode, } enum chamelium_check { + CHAMELIUM_CHECK_ANALOG, CHAMELIUM_CHECK_CRC, }; @@ -578,6 +579,18 @@ static void do_test_display(data_t *data, struct chamelium_port *port, free(expected_crc); free(crc); + } else if (check == CHAMELIUM_CHECK_ANALOG) { + struct chamelium_frame_dump *dump; + + igt_assert(count == 1); + + dump = chamelium_port_dump_pixels(data->chamelium, port, 0, 0, + 0, 0); + chamelium_crop_analog_frame(dump, mode->hdisplay, + mode->vdisplay); + chamelium_assert_analog_frame_match_or_dump(data->chamelium, + port, dump, &fb); + chamelium_destroy_frame_dump(dump); } igt_remove_fb(data->drm_fd, &frame_fb); @@ -588,8 +601,9 @@ static void test_display_one_mode(data_t *data, struct chamelium_port *port, uint32_t fourcc, enum chamelium_check check, int count) { - igt_output_t *output; drmModeConnector *connector; + drmModeModeInfo *mode; + igt_output_t *output; igt_plane_t *primary; reset_state(data, port); @@ -599,8 +613,14 @@ static void test_display_one_mode(data_t *data, struct chamelium_port *port, primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); igt_assert(primary); - do_test_display(data, port, output, &connector->modes[0], fourcc, - check, count); + mode = &connector->modes[0]; + if (check == CHAMELIUM_CHECK_ANALOG) { + bool bridge = check_analog_bridge(data, port); + + igt_assert(!(bridge && prune_vga_mode(data, mode))); + } + + do_test_display(data, port, output, mode, fourcc, check, count); drmModeFreeConnector(connector); } @@ -612,6 +632,7 @@ static void test_display_all_modes(data_t *data, struct chamelium_port *port, igt_output_t *output; igt_plane_t *primary; drmModeConnector *connector; + bool bridge; int i; reset_state(data, port); @@ -621,9 +642,16 @@ static void test_display_all_modes(data_t *data, struct chamelium_port *port, primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); igt_assert(primary); + if (check == CHAMELIUM_CHECK_ANALOG) + bridge = check_analog_bridge(data, port); + for (i = 0; i < connector->count_modes; i++) { drmModeModeInfo *mode = &connector->modes[i]; + if (check == CHAMELIUM_CHECK_ANALOG && bridge && + prune_vga_mode(data, mode)) + continue; + do_test_display(data, port, output, mode, fourcc, check, count); } @@ -674,61 +702,6 @@ test_display_frame_dump(data_t *data, struct chamelium_port *port) drmModeFreeConnector(connector); } -static void -test_analog_frame_dump(data_t *data, struct chamelium_port *port) -{ - igt_output_t *output; - igt_plane_t *primary; - struct igt_fb fb; - struct chamelium_frame_dump *frame; - drmModeModeInfo *mode; - drmModeConnector *connector; - int fb_id, i; - bool bridge; - - reset_state(data, port); - - output = prepare_output(data, port); - connector = chamelium_port_get_connector(data->chamelium, port, false); - primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); - igt_assert(primary); - - bridge = check_analog_bridge(data, port); - - for (i = 0; i < connector->count_modes; i++) { - mode = &connector->modes[i]; - - if (bridge && prune_vga_mode(data, mode)) - continue; - - fb_id = igt_create_color_pattern_fb(data->drm_fd, - mode->hdisplay, mode->vdisplay, - DRM_FORMAT_XRGB8888, - LOCAL_DRM_FORMAT_MOD_NONE, - 0, 0, 0, &fb); - igt_assert(fb_id > 0); - - enable_output(data, port, output, mode, &fb); - - igt_debug("Reading frame dumps from Chamelium...\n"); - - frame = chamelium_port_dump_pixels(data->chamelium, port, 0, 0, - 0, 0); - - chamelium_crop_analog_frame(frame, mode->hdisplay, - mode->vdisplay); - - chamelium_assert_analog_frame_match_or_dump(data->chamelium, - port, frame, &fb); - - chamelium_destroy_frame_dump(frame); - - igt_remove_fb(data->drm_fd, &fb); - } - - drmModeFreeConnector(connector); -} - static void test_hpd_without_ddc(data_t *data, struct chamelium_port *port) { @@ -1040,7 +1013,8 @@ igt_main test_hpd_without_ddc(&data, port); connector_subtest("vga-frame-dump", VGA) - test_analog_frame_dump(&data, port); + test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888, + CHAMELIUM_CHECK_ANALOG, 1); } igt_subtest_group { -- 2.19.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH RESEND i-g-t 4/8] igt: tests: chamelium: Convert VGA tests to do_test_display 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 4/8] igt: tests: chamelium: Convert VGA tests to do_test_display Maxime Ripard @ 2018-12-06 14:15 ` Paul Kocialkowski 0 siblings, 0 replies; 15+ messages in thread From: Paul Kocialkowski @ 2018-12-06 14:15 UTC (permalink / raw) To: Maxime Ripard, igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni Hi, On Tue, 2018-12-04 at 11:25 +0100, Maxime Ripard wrote: > The VGA tests were run so far as part of a separate function. However, > the only difference between that function and the do_test_display > function was the kind of comparison we wanted to use. Indeed, VGA > being an analog output, we can't rely on a pixel perfect image, and > thus only compare the CRCs, but we need to make some more advanced > comparison. > > Let's add a new check method, add support for the analog check to > do_test_display and remove the old version. Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> > --- > tests/kms_chamelium.c | 92 ++++++++++++++++--------------------------- > 1 file changed, 33 insertions(+), 59 deletions(-) > > diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c > index 8b9872a17044..80b279c4f1c2 100644 > --- a/tests/kms_chamelium.c > +++ b/tests/kms_chamelium.c > @@ -527,6 +527,7 @@ static int chamelium_get_pattern_fb(data_t *data, drmModeModeInfo *mode, > } > > enum chamelium_check { > + CHAMELIUM_CHECK_ANALOG, > CHAMELIUM_CHECK_CRC, > }; > > @@ -578,6 +579,18 @@ static void do_test_display(data_t *data, struct chamelium_port *port, > > free(expected_crc); > free(crc); > + } else if (check == CHAMELIUM_CHECK_ANALOG) { > + struct chamelium_frame_dump *dump; > + > + igt_assert(count == 1); > + > + dump = chamelium_port_dump_pixels(data->chamelium, port, 0, 0, > + 0, 0); > + chamelium_crop_analog_frame(dump, mode->hdisplay, > + mode->vdisplay); > + chamelium_assert_analog_frame_match_or_dump(data->chamelium, > + port, dump, &fb); > + chamelium_destroy_frame_dump(dump); > } > > igt_remove_fb(data->drm_fd, &frame_fb); > @@ -588,8 +601,9 @@ static void test_display_one_mode(data_t *data, struct chamelium_port *port, > uint32_t fourcc, enum chamelium_check check, > int count) > { > - igt_output_t *output; > drmModeConnector *connector; > + drmModeModeInfo *mode; > + igt_output_t *output; > igt_plane_t *primary; > > reset_state(data, port); > @@ -599,8 +613,14 @@ static void test_display_one_mode(data_t *data, struct chamelium_port *port, > primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); > igt_assert(primary); > > - do_test_display(data, port, output, &connector->modes[0], fourcc, > - check, count); > + mode = &connector->modes[0]; > + if (check == CHAMELIUM_CHECK_ANALOG) { > + bool bridge = check_analog_bridge(data, port); > + > + igt_assert(!(bridge && prune_vga_mode(data, mode))); > + } > + > + do_test_display(data, port, output, mode, fourcc, check, count); > > drmModeFreeConnector(connector); > } > @@ -612,6 +632,7 @@ static void test_display_all_modes(data_t *data, struct chamelium_port *port, > igt_output_t *output; > igt_plane_t *primary; > drmModeConnector *connector; > + bool bridge; > int i; > > reset_state(data, port); > @@ -621,9 +642,16 @@ static void test_display_all_modes(data_t *data, struct chamelium_port *port, > primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); > igt_assert(primary); > > + if (check == CHAMELIUM_CHECK_ANALOG) > + bridge = check_analog_bridge(data, port); > + > for (i = 0; i < connector->count_modes; i++) { > drmModeModeInfo *mode = &connector->modes[i]; > > + if (check == CHAMELIUM_CHECK_ANALOG && bridge && > + prune_vga_mode(data, mode)) > + continue; > + > do_test_display(data, port, output, mode, fourcc, check, count); > } > > @@ -674,61 +702,6 @@ test_display_frame_dump(data_t *data, struct chamelium_port *port) > drmModeFreeConnector(connector); > } > > -static void > -test_analog_frame_dump(data_t *data, struct chamelium_port *port) > -{ > - igt_output_t *output; > - igt_plane_t *primary; > - struct igt_fb fb; > - struct chamelium_frame_dump *frame; > - drmModeModeInfo *mode; > - drmModeConnector *connector; > - int fb_id, i; > - bool bridge; > - > - reset_state(data, port); > - > - output = prepare_output(data, port); > - connector = chamelium_port_get_connector(data->chamelium, port, false); > - primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY); > - igt_assert(primary); > - > - bridge = check_analog_bridge(data, port); > - > - for (i = 0; i < connector->count_modes; i++) { > - mode = &connector->modes[i]; > - > - if (bridge && prune_vga_mode(data, mode)) > - continue; > - > - fb_id = igt_create_color_pattern_fb(data->drm_fd, > - mode->hdisplay, mode->vdisplay, > - DRM_FORMAT_XRGB8888, > - LOCAL_DRM_FORMAT_MOD_NONE, > - 0, 0, 0, &fb); > - igt_assert(fb_id > 0); > - > - enable_output(data, port, output, mode, &fb); > - > - igt_debug("Reading frame dumps from Chamelium...\n"); > - > - frame = chamelium_port_dump_pixels(data->chamelium, port, 0, 0, > - 0, 0); > - > - chamelium_crop_analog_frame(frame, mode->hdisplay, > - mode->vdisplay); > - > - chamelium_assert_analog_frame_match_or_dump(data->chamelium, > - port, frame, &fb); > - > - chamelium_destroy_frame_dump(frame); > - > - igt_remove_fb(data->drm_fd, &fb); > - } > - > - drmModeFreeConnector(connector); > -} > - > static void > test_hpd_without_ddc(data_t *data, struct chamelium_port *port) > { > @@ -1040,7 +1013,8 @@ igt_main > test_hpd_without_ddc(&data, port); > > connector_subtest("vga-frame-dump", VGA) > - test_analog_frame_dump(&data, port); > + test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888, > + CHAMELIUM_CHECK_ANALOG, 1); > } > > igt_subtest_group { -- Paul Kocialkowski, Bootlin (formerly Free Electrons) Embedded Linux and kernel engineering https://bootlin.com _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH RESEND i-g-t 5/8] igt: fb: Move i915 buffer allocation to a function of its own 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard ` (3 preceding siblings ...) 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 4/8] igt: tests: chamelium: Convert VGA tests to do_test_display Maxime Ripard @ 2018-12-04 10:25 ` Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 6/8] igt: fb: Separate YUV allocation from the rest Maxime Ripard ` (4 subsequent siblings) 9 siblings, 0 replies; 15+ messages in thread From: Maxime Ripard @ 2018-12-04 10:25 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni The create_bo_for_fb function has a rather big, non trivial block of code to allocate buffers in some non-trivial situation on the i915 driver. Since this is both non-trivial and driver specific, move that code into a function of its own so that we can rework that function later on. Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> --- lib/igt_fb.c | 89 +++++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/lib/igt_fb.c b/lib/igt_fb.c index 2462d6ba6fab..d96689aa5fe6 100644 --- a/lib/igt_fb.c +++ b/lib/igt_fb.c @@ -453,6 +453,52 @@ uint64_t igt_fb_tiling_to_mod(uint64_t tiling) } } +static int i915_create_gem_for_fb(struct igt_fb *fb) +{ + bool full_range = fb->color_range == IGT_COLOR_YCBCR_FULL_RANGE; + int fd = fb->fd; + void *ptr; + + fb->gem_handle = gem_create(fd, fb->size); + gem_set_tiling(fd, fb->gem_handle, + igt_fb_mod_to_tiling(fb->tiling), + fb->strides[0]); + + gem_set_domain(fd, fb->gem_handle, + I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT); + + /* Ensure the framebuffer is preallocated */ + ptr = gem_mmap__gtt(fd, fb->gem_handle, + fb->size, PROT_READ | PROT_WRITE); + igt_assert(*(uint32_t *)ptr == 0); + + switch (fb->drm_format) { + case DRM_FORMAT_NV12: + memset(ptr + fb->offsets[0], + full_range ? 0x00 : 0x10, + fb->strides[0] * fb->plane_height[0]); + memset(ptr + fb->offsets[1], + 0x80, + fb->strides[1] * fb->plane_height[1]); + break; + case DRM_FORMAT_YUYV: + case DRM_FORMAT_YVYU: + wmemset(ptr + fb->offsets[0], + full_range ? 0x80008000 : 0x80108010, + fb->strides[0] * fb->plane_height[0] / sizeof(wchar_t)); + break; + case DRM_FORMAT_UYVY: + case DRM_FORMAT_VYUY: + wmemset(ptr + fb->offsets[0], + full_range ? 0x00800080 : 0x10801080, + fb->strides[0] * fb->plane_height[0] / sizeof(wchar_t)); + break; + } + gem_munmap(ptr, fb->size); + + return fb->gem_handle; +} + /* helpers to create nice-looking framebuffers */ static int create_bo_for_fb(struct igt_fb *fb) { @@ -470,48 +516,7 @@ static int create_bo_for_fb(struct igt_fb *fb) fb->is_dumb = false; if (is_i915_device(fd)) { - void *ptr; - bool full_range = fb->color_range == IGT_COLOR_YCBCR_FULL_RANGE; - - fb->gem_handle = gem_create(fd, fb->size); - - gem_set_tiling(fd, fb->gem_handle, - igt_fb_mod_to_tiling(fb->tiling), - fb->strides[0]); - - gem_set_domain(fd, fb->gem_handle, - I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT); - - /* Ensure the framebuffer is preallocated */ - ptr = gem_mmap__gtt(fd, fb->gem_handle, - fb->size, PROT_READ | PROT_WRITE); - igt_assert(*(uint32_t *)ptr == 0); - - switch (fb->drm_format) { - case DRM_FORMAT_NV12: - memset(ptr + fb->offsets[0], - full_range ? 0x00 : 0x10, - fb->strides[0] * fb->plane_height[0]); - memset(ptr + fb->offsets[1], - 0x80, - fb->strides[1] * fb->plane_height[1]); - break; - case DRM_FORMAT_YUYV: - case DRM_FORMAT_YVYU: - wmemset(ptr + fb->offsets[0], - full_range ? 0x80008000 : 0x80108010, - fb->strides[0] * fb->plane_height[0] / sizeof(wchar_t)); - break; - case DRM_FORMAT_UYVY: - case DRM_FORMAT_VYUY: - wmemset(ptr + fb->offsets[0], - full_range ? 0x00800080 : 0x10801080, - fb->strides[0] * fb->plane_height[0] / sizeof(wchar_t)); - break; - } - gem_munmap(ptr, fb->size); - - return fb->gem_handle; + return i915_create_gem_for_fb(fb); } else { bool driver_has_gem_api = false; -- 2.19.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH RESEND i-g-t 6/8] igt: fb: Separate YUV allocation from the rest 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard ` (4 preceding siblings ...) 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 5/8] igt: fb: Move i915 buffer allocation to a function of its own Maxime Ripard @ 2018-12-04 10:25 ` Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 7/8] igt: fb: Fallback on KMS dumb buffer allocation for YUV buffers Maxime Ripard ` (3 subsequent siblings) 9 siblings, 0 replies; 15+ messages in thread From: Maxime Ripard @ 2018-12-04 10:25 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni Allocating YUV buffers is a different operation than allocating buffers with non-trivial setups. Let's separate the YUV buffer allocation to a case and function of its own. Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> --- lib/igt_fb.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/igt_fb.c b/lib/igt_fb.c index d96689aa5fe6..d6242a6652f1 100644 --- a/lib/igt_fb.c +++ b/lib/igt_fb.c @@ -499,12 +499,30 @@ static int i915_create_gem_for_fb(struct igt_fb *fb) return fb->gem_handle; } +static int create_yuv_bo_for_fb(struct igt_fb *fb) +{ + uint64_t size = calc_fb_size(fb); + int fd = fb->fd; + + /* respect the size requested by the caller */ + if (fb->size == 0) + fb->size = size; + + if (is_i915_device(fd)) + return i915_create_gem_for_fb(fb); + + /* We cannot allocate any other buffer type */ + igt_assert(true); +} + /* helpers to create nice-looking framebuffers */ static int create_bo_for_fb(struct igt_fb *fb) { int fd = fb->fd; - if (fb->tiling || fb->size || fb->strides[0] || igt_format_is_yuv(fb->drm_format)) { + if (igt_format_is_yuv(fb->drm_format)) { + return create_yuv_bo_for_fb(fb); + } else if (fb->tiling || fb->size || fb->strides[0]) { uint64_t size; size = calc_fb_size(fb); -- 2.19.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH RESEND i-g-t 7/8] igt: fb: Fallback on KMS dumb buffer allocation for YUV buffers 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard ` (5 preceding siblings ...) 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 6/8] igt: fb: Separate YUV allocation from the rest Maxime Ripard @ 2018-12-04 10:25 ` Maxime Ripard 2018-12-06 14:28 ` Paul Kocialkowski 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 8/8] igt: tests: chamelium: Add NV12 format Maxime Ripard ` (2 subsequent siblings) 9 siblings, 1 reply; 15+ messages in thread From: Maxime Ripard @ 2018-12-04 10:25 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni The current YUV buffer allocation only works on the i915 driver, since it uses some private ioctl. However, we can to use that code on other drivers that implement only KMS, so if the driver is something else than the i915 driver, let's allocate a dumb buffer. Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> --- lib/igt_fb.c | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/lib/igt_fb.c b/lib/igt_fb.c index d6242a6652f1..f2e6c89f3884 100644 --- a/lib/igt_fb.c +++ b/lib/igt_fb.c @@ -501,6 +501,8 @@ static int i915_create_gem_for_fb(struct igt_fb *fb) static int create_yuv_bo_for_fb(struct igt_fb *fb) { + unsigned int virtual_height; + unsigned int bpp; uint64_t size = calc_fb_size(fb); int fd = fb->fd; @@ -511,8 +513,37 @@ static int create_yuv_bo_for_fb(struct igt_fb *fb) if (is_i915_device(fd)) return i915_create_gem_for_fb(fb); - /* We cannot allocate any other buffer type */ - igt_assert(true); + switch (fb->drm_format) { + case DRM_FORMAT_NV12: + bpp = 8; + break; + + case DRM_FORMAT_UYVY: + case DRM_FORMAT_VYUY: + case DRM_FORMAT_YUYV: + case DRM_FORMAT_YVYU: + bpp = 16; + break; + + default: + igt_assert_f(false, "Unsupported YUV format\n"); + } + + switch (fb->drm_format) { + case DRM_FORMAT_NV12: + virtual_height = fb->height * 3 / 2; + break; + + default: + virtual_height = fb->height; + break; + } + + fb->is_dumb = true; + fb->gem_handle = kmstest_dumb_create(fd, fb->width, virtual_height, + bpp, NULL, &fb->size); + + return fb->gem_handle; } /* helpers to create nice-looking framebuffers */ -- 2.19.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH RESEND i-g-t 7/8] igt: fb: Fallback on KMS dumb buffer allocation for YUV buffers 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 7/8] igt: fb: Fallback on KMS dumb buffer allocation for YUV buffers Maxime Ripard @ 2018-12-06 14:28 ` Paul Kocialkowski 0 siblings, 0 replies; 15+ messages in thread From: Paul Kocialkowski @ 2018-12-06 14:28 UTC (permalink / raw) To: Maxime Ripard, igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni Hi, On Tue, 2018-12-04 at 11:25 +0100, Maxime Ripard wrote: > The current YUV buffer allocation only works on the i915 driver, since > it uses some private ioctl. However, we can to use that code on other > drivers that implement only KMS, so if the driver is something else > than the i915 driver, let's allocate a dumb buffer. > > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> > --- > lib/igt_fb.c | 35 +++++++++++++++++++++++++++++++++-- > 1 file changed, 33 insertions(+), 2 deletions(-) > > diff --git a/lib/igt_fb.c b/lib/igt_fb.c > index d6242a6652f1..f2e6c89f3884 100644 > --- a/lib/igt_fb.c > +++ b/lib/igt_fb.c > @@ -501,6 +501,8 @@ static int i915_create_gem_for_fb(struct igt_fb *fb) > > static int create_yuv_bo_for_fb(struct igt_fb *fb) > { > + unsigned int virtual_height; > + unsigned int bpp; > uint64_t size = calc_fb_size(fb); > int fd = fb->fd; > > @@ -511,8 +513,37 @@ static int create_yuv_bo_for_fb(struct igt_fb *fb) > if (is_i915_device(fd)) > return i915_create_gem_for_fb(fb); > > - /* We cannot allocate any other buffer type */ > - igt_assert(true); > + switch (fb->drm_format) { > + case DRM_FORMAT_NV12: > + bpp = 8; > + break; > + > + case DRM_FORMAT_UYVY: > + case DRM_FORMAT_VYUY: > + case DRM_FORMAT_YUYV: > + case DRM_FORMAT_YVYU: > + bpp = 16; > + break; It's probably not necessary to duplicate the bpp here since it's already described in the format_desc array, from which it gets copied to the fb->plane_bpp[i] before calling this function. You can probably reuse it from there directly. > + default: > + igt_assert_f(false, "Unsupported YUV format\n"); > + } > + > + switch (fb->drm_format) { > + case DRM_FORMAT_NV12: > + virtual_height = fb->height * 3 / 2; If this is the correct way to go for allocating two planes at once, perhaps there should be a comment about it to clarify the meaning of this operation? Also, this could probably be generalized to other formats with two (or three) planes by using each plane's bpp. What do yout think? Cheers, Paul > + break; > + > + default: > + virtual_height = fb->height; > + break; > + } > + > + fb->is_dumb = true; > + fb->gem_handle = kmstest_dumb_create(fd, fb->width, virtual_height, > + bpp, NULL, &fb->size); > + > + return fb->gem_handle; > } > > /* helpers to create nice-looking framebuffers */ -- Paul Kocialkowski, Bootlin (formerly Free Electrons) Embedded Linux and kernel engineering https://bootlin.com _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH RESEND i-g-t 8/8] igt: tests: chamelium: Add NV12 format 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard ` (6 preceding siblings ...) 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 7/8] igt: fb: Fallback on KMS dumb buffer allocation for YUV buffers Maxime Ripard @ 2018-12-04 10:25 ` Maxime Ripard 2018-12-07 9:18 ` Paul Kocialkowski 2018-12-04 12:40 ` [igt-dev] ✓ Fi.CI.BAT: success for igt: chamelium: Test YUV buffers using the Chamelium (rev2) Patchwork 2018-12-04 17:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 9 siblings, 1 reply; 15+ messages in thread From: Maxime Ripard @ 2018-12-04 10:25 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni The NV12 is a YUV format that are currently supported in IGT. We'll want to test those formats in addition to the RGB formats, so let's add some subtests. One thing worth noting is some hardware isn't able to output a pixel-perfect image, so we do the same kind of comparison than for VGA. Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> --- tests/kms_chamelium.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c index 80b279c4f1c2..8a9f6bfe9235 100644 --- a/tests/kms_chamelium.c +++ b/tests/kms_chamelium.c @@ -976,6 +976,10 @@ igt_main test_display_one_mode(&data, port, DRM_FORMAT_XRGB1555, CHAMELIUM_CHECK_CRC, 1); + connector_subtest("hdmi-crc-nv12", HDMIA) + test_display_one_mode(&data, port, DRM_FORMAT_NV12, + CHAMELIUM_CHECK_ANALOG, 1); + connector_subtest("hdmi-frame-dump", HDMIA) test_display_frame_dump(&data, port); } -- 2.19.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH RESEND i-g-t 8/8] igt: tests: chamelium: Add NV12 format 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 8/8] igt: tests: chamelium: Add NV12 format Maxime Ripard @ 2018-12-07 9:18 ` Paul Kocialkowski 0 siblings, 0 replies; 15+ messages in thread From: Paul Kocialkowski @ 2018-12-07 9:18 UTC (permalink / raw) To: Maxime Ripard, igt-dev; +Cc: Petri Latvala, eben, Thomas Petazzoni Hi, On Tue, 2018-12-04 at 11:25 +0100, Maxime Ripard wrote: > The NV12 is a YUV format that are currently supported in IGT. > > We'll want to test those formats in addition to the RGB formats, so > let's add some subtests. One thing worth noting is some hardware isn't > able to output a pixel-perfect image, so we do the same kind of > comparison than for VGA. > > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> > --- > tests/kms_chamelium.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c > index 80b279c4f1c2..8a9f6bfe9235 100644 > --- a/tests/kms_chamelium.c > +++ b/tests/kms_chamelium.c > @@ -976,6 +976,10 @@ igt_main > test_display_one_mode(&data, port, DRM_FORMAT_XRGB1555, > CHAMELIUM_CHECK_CRC, 1); > > + connector_subtest("hdmi-crc-nv12", HDMIA) Well, since the test does not rely on a CRC but on an error-trend comparison, maybe it should be named differently? Cheers, Paul > + test_display_one_mode(&data, port, DRM_FORMAT_NV12, > + CHAMELIUM_CHECK_ANALOG, 1); > + > connector_subtest("hdmi-frame-dump", HDMIA) > test_display_frame_dump(&data, port); > } -- Paul Kocialkowski, Bootlin (formerly Free Electrons) Embedded Linux and kernel engineering https://bootlin.com _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for igt: chamelium: Test YUV buffers using the Chamelium (rev2) 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard ` (7 preceding siblings ...) 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 8/8] igt: tests: chamelium: Add NV12 format Maxime Ripard @ 2018-12-04 12:40 ` Patchwork 2018-12-04 17:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 9 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2018-12-04 12:40 UTC (permalink / raw) To: Maxime Ripard; +Cc: igt-dev == Series Details == Series: igt: chamelium: Test YUV buffers using the Chamelium (rev2) URL : https://patchwork.freedesktop.org/series/53468/ State : success == Summary == CI Bug Log - changes from CI_DRM_5253 -> IGTPW_2116 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/53468/revisions/2/mbox/ Known issues ------------ Here are the changes found in IGTPW_2116 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_close_race@basic-threads: - fi-bsw-kefka: PASS -> FAIL [fdo#108656] - fi-bsw-n3050: PASS -> INCOMPLETE [fdo#108714] * igt@gem_exec_suspend@basic-s4-devices: - fi-ivb-3520m: PASS -> FAIL [fdo#108880] * igt@i915_selftest@live_hangcheck: - fi-bwr-2160: PASS -> DMESG-FAIL [fdo#108735] #### Possible fixes #### * igt@gem_ctx_create@basic-files: - fi-bsw-kefka: FAIL [fdo#108656] -> PASS [fdo#108656]: https://bugs.freedesktop.org/show_bug.cgi?id=108656 [fdo#108714]: https://bugs.freedesktop.org/show_bug.cgi?id=108714 [fdo#108735]: https://bugs.freedesktop.org/show_bug.cgi?id=108735 [fdo#108880]: https://bugs.freedesktop.org/show_bug.cgi?id=108880 Participating hosts (48 -> 42) ------------------------------ Missing (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-kbl-7560u Build changes ------------- * IGT: IGT_4738 -> IGTPW_2116 CI_DRM_5253: d29c92fb8c6f2523de72be55815c283b4cec577d @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_2116: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2116/ IGT_4738: 14c1b132c8f829637c55fb071a9a2e5ce00e7ed8 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Testlist changes == +igt@kms_chamelium@hdmi-crc-nv12 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2116/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for igt: chamelium: Test YUV buffers using the Chamelium (rev2) 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard ` (8 preceding siblings ...) 2018-12-04 12:40 ` [igt-dev] ✓ Fi.CI.BAT: success for igt: chamelium: Test YUV buffers using the Chamelium (rev2) Patchwork @ 2018-12-04 17:45 ` Patchwork 9 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2018-12-04 17:45 UTC (permalink / raw) To: Maxime Ripard; +Cc: igt-dev == Series Details == Series: igt: chamelium: Test YUV buffers using the Chamelium (rev2) URL : https://patchwork.freedesktop.org/series/53468/ State : success == Summary == CI Bug Log - changes from CI_DRM_5253_full -> IGTPW_2116_full ==================================================== Summary ------- **WARNING** Minor unknown changes coming with IGTPW_2116_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_2116_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://patchwork.freedesktop.org/api/1.0/series/53468/revisions/2/mbox/ Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_2116_full: ### IGT changes ### #### Possible regressions #### * {igt@kms_plane@pixel-format-pipe-a-planes-source-clamping}: - shard-apl: PASS -> FAIL * {igt@kms_plane@pixel-format-pipe-b-planes-source-clamping}: - shard-glk: PASS -> FAIL #### Warnings #### * {igt@kms_rotation_crc@multiplane-rotation-cropping-top}: - shard-kbl: DMESG-WARN [fdo#105604] -> DMESG-FAIL * igt@pm_rc6_residency@rc6-accuracy: - shard-kbl: PASS -> SKIP * igt@tools_test@sysfs_l3_parity: - shard-hsw: SKIP -> PASS Known issues ------------ Here are the changes found in IGTPW_2116_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c: - shard-apl: PASS -> DMESG-WARN [fdo#107956] * igt@kms_ccs@pipe-a-crc-sprite-planes-basic: - shard-kbl: PASS -> FAIL [fdo#107725] / [fdo#108145] * igt@kms_cursor_crc@cursor-128x42-onscreen: - shard-apl: PASS -> FAIL [fdo#103232] +2 * igt@kms_cursor_crc@cursor-64x64-dpms: - shard-kbl: PASS -> FAIL [fdo#103232] +2 * igt@kms_cursor_crc@cursor-size-change: - shard-glk: PASS -> FAIL [fdo#103232] +2 * igt@kms_flip@flip-vs-expired-vblank: - shard-glk: PASS -> FAIL [fdo#105363] * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt: - shard-kbl: PASS -> FAIL [fdo#103167] +1 * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt: - shard-apl: PASS -> FAIL [fdo#103167] +5 * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu: - shard-glk: PASS -> FAIL [fdo#103167] +11 * igt@kms_frontbuffer_tracking@fbc-2p-rte: - shard-glk: PASS -> FAIL [fdo#103167] / [fdo#105682] * igt@kms_plane@pixel-format-pipe-b-planes: - shard-kbl: PASS -> FAIL [fdo#103166] +2 - shard-apl: NOTRUN -> FAIL [fdo#103166] * igt@kms_plane@pixel-format-pipe-c-planes: - shard-apl: PASS -> FAIL [fdo#103166] +1 * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb: - shard-apl: PASS -> FAIL [fdo#108145] * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max: - shard-glk: PASS -> FAIL [fdo#108145] +2 * igt@kms_plane_multiple@atomic-pipe-a-tiling-y: - shard-glk: PASS -> FAIL [fdo#103166] +8 * igt@kms_setmode@basic: - shard-apl: PASS -> FAIL [fdo#99912] #### Possible fixes #### * igt@gem_exec_reuse@baggage: - shard-apl: INCOMPLETE [fdo#103927] -> PASS * igt@kms_available_modes_crc@available_mode_test_crc: - shard-apl: FAIL [fdo#106641] -> PASS * igt@kms_ccs@pipe-b-crc-sprite-planes-basic: - shard-kbl: FAIL [fdo#107725] / [fdo#108145] -> PASS * igt@kms_cursor_crc@cursor-128x42-sliding: - shard-kbl: FAIL [fdo#103232] -> PASS - shard-apl: FAIL [fdo#103232] -> PASS +1 * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff: - shard-apl: FAIL [fdo#103167] -> PASS * {igt@kms_plane@pixel-format-pipe-c-planes-source-clamping}: - shard-glk: FAIL -> PASS * igt@kms_plane_multiple@atomic-pipe-b-tiling-yf: - shard-kbl: FAIL [fdo#103166] -> PASS * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf: - shard-apl: FAIL [fdo#103166] -> PASS +2 * igt@kms_setmode@basic: - shard-kbl: FAIL [fdo#99912] -> PASS * igt@perf@blocking: - shard-hsw: FAIL [fdo#102252] -> PASS {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#102252]: https://bugs.freedesktop.org/show_bug.cgi?id=102252 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363 [fdo#105604]: https://bugs.freedesktop.org/show_bug.cgi?id=105604 [fdo#105682]: https://bugs.freedesktop.org/show_bug.cgi?id=105682 [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641 [fdo#107725]: https://bugs.freedesktop.org/show_bug.cgi?id=107725 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 Participating hosts (7 -> 5) ------------------------------ Missing (2): shard-skl shard-iclb Build changes ------------- * IGT: IGT_4738 -> IGTPW_2116 * Piglit: piglit_4509 -> None CI_DRM_5253: d29c92fb8c6f2523de72be55815c283b4cec577d @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_2116: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2116/ IGT_4738: 14c1b132c8f829637c55fb071a9a2e5ce00e7ed8 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2116/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2018-12-07 9:18 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-12-04 10:25 [igt-dev] [PATCH RESEND i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 1/8] chamelium: Fix inverted xr24 pattern paint dimensions Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 2/8] chamelium: Pass and use stride for xr24 pattern paint Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 3/8] igt: tests: chamelium: Start to unify tests Maxime Ripard 2018-12-06 14:15 ` Paul Kocialkowski 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 4/8] igt: tests: chamelium: Convert VGA tests to do_test_display Maxime Ripard 2018-12-06 14:15 ` Paul Kocialkowski 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 5/8] igt: fb: Move i915 buffer allocation to a function of its own Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 6/8] igt: fb: Separate YUV allocation from the rest Maxime Ripard 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 7/8] igt: fb: Fallback on KMS dumb buffer allocation for YUV buffers Maxime Ripard 2018-12-06 14:28 ` Paul Kocialkowski 2018-12-04 10:25 ` [igt-dev] [PATCH RESEND i-g-t 8/8] igt: tests: chamelium: Add NV12 format Maxime Ripard 2018-12-07 9:18 ` Paul Kocialkowski 2018-12-04 12:40 ` [igt-dev] ✓ Fi.CI.BAT: success for igt: chamelium: Test YUV buffers using the Chamelium (rev2) Patchwork 2018-12-04 17:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox