* [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane
@ 2019-01-09 21:32 Mamta Shukla
2019-01-09 21:58 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane (rev2) Patchwork
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Mamta Shukla @ 2019-01-09 21:32 UTC (permalink / raw)
To: igt-dev, hwentland, manasi.d.navare, petri.latvala,
arkadiusz.hiler
Add test to check extreme alpha values i.e. fully opaque and fully transparent
for cursor plane and verify by calculating hardware and software CRC.
Signed-off-by: Mamta Shukla <mamtashukla555@gmail.com>
---
changes in v2:
1.Remove unnecessary new line.
2.Add functions to clear screen in test_cursor_alpha function.
tests/kms_cursor_crc.c | 80 ++++++++++++++++++++++++++++++++++++++----
1 file changed, 73 insertions(+), 7 deletions(-)
diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index 1514e7f2..8c1ecc2b 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -65,7 +65,7 @@ typedef struct {
#define TEST_DPMS (1<<0)
#define TEST_SUSPEND (1<<1)
-static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch)
+static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)
{
int wl, wr, ht, hb;
@@ -80,10 +80,10 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch)
return;
cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE);
/* 4 color rectangles in the corners, RGBY */
- igt_paint_color_alpha(cr, x, y, wl, ht, 1.0, 0.0, 0.0, 1.0);
- igt_paint_color_alpha(cr, x + wl, y, wr, ht, 0.0, 1.0, 0.0, 1.0);
- igt_paint_color_alpha(cr, x, y + ht, wl, hb, 0.0, 0.0, 1.0, 1.0);
- igt_paint_color_alpha(cr, x + wl, y + ht, wr, hb, 0.5, 0.5, 0.5, 1.0);
+ igt_paint_color_alpha(cr, x, y, wl, ht, 1.0, 0.0, 0.0, a);
+ igt_paint_color_alpha(cr, x + wl, y, wr, ht, 0.0, 1.0, 0.0, a);
+ igt_paint_color_alpha(cr, x, y + ht, wl, hb, 0.0, 0.0, 1.0, a);
+ igt_paint_color_alpha(cr, x + wl, y + ht, wr, hb, 0.5, 0.5, 0.5, a);
}
static void cursor_enable(data_t *data)
@@ -200,7 +200,7 @@ static void do_single_test(data_t *data, int x, int y)
/* Now render the same in software and collect crc */
cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
- draw_cursor(cr, x, y, data->curw, data->curh);
+ draw_cursor(cr, x, y, data->curw, data->curh, 1.0);
igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
igt_display_commit(display);
@@ -404,6 +404,64 @@ static void cleanup_crtc(data_t *data, igt_output_t *output)
igt_display_commit(display);
}
+static void test_cursor_alpha(data_t *data, double a)
+{
+ igt_display_t *display = &data->display;
+ igt_pipe_crc_t *pipe_crc = data->pipe_crc;
+ igt_crc_t crc, ref_crc;
+ cairo_t *cr;
+ uint32_t fb_id;
+ int curw=data->curw;
+ int curh=data->curh;
+
+ /*alpha cursor fb*/
+ fb_id = igt_create_color_fb(data->drm_fd, curw, curh,
+ DRM_FORMAT_ARGB8888,
+ LOCAL_DRM_FORMAT_MOD_NONE,
+ 1.0, 1.0, 1.0,
+ &data->fb);
+ igt_assert(fb_id);
+ cr = igt_get_cairo_ctx(data->drm_fd, &data->fb);
+ draw_cursor(cr, 0, 0, curw, curh, a);
+ igt_put_cairo_ctx(data->drm_fd, &data->fb, cr);
+
+ /*Hardware Test*/
+ cursor_enable(data);
+ igt_display_commit(display);
+ igt_wait_for_vblank(data->drm_fd, data->pipe);
+ igt_pipe_crc_collect_crc(pipe_crc, &crc);
+ cursor_disable(data);
+
+ /*Software Test*/
+ cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
+ igt_paint_color_alpha(cr, 0, 0, curw, curh, 1.0, 1.0, 1.0, a);
+ igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
+
+ igt_display_commit(display);
+ igt_wait_for_vblank(data->drm_fd, data->pipe);
+ igt_pipe_crc_collect_crc(pipe_crc, &ref_crc);
+ igt_assert_crc_equal(&crc, &ref_crc);
+
+ /*Clear Screen*/
+ cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
+ igt_paint_color(cr, 0, 0, data->screenw, data->screenh,
+ 0.0, 0.0, 0.0);
+ igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
+ igt_remove_fb(data->drm_fd, &data->fb);
+}
+
+static void test_cursor_transparent(data_t *data)
+{
+ test_cursor_alpha(data, 0.0);
+
+}
+
+static void test_cursor_opaque(data_t *data)
+{
+ test_cursor_alpha(data, 1.0);
+}
+
+
static void run_test(data_t *data, void (*testfunc)(data_t *), int cursor_w, int cursor_h)
{
igt_display_t *display = &data->display;
@@ -461,7 +519,7 @@ static void create_cursor_fb(data_t *data, int cur_w, int cur_h)
igt_assert(fb_id);
cr = igt_get_cairo_ctx(data->drm_fd, &data->fb);
- draw_cursor(cr, 0, 0, cur_w, cur_h);
+ draw_cursor(cr, 0, 0, cur_w, cur_h, 1.0);
igt_put_cairo_ctx(data->drm_fd, &data->fb, cr);
}
@@ -684,6 +742,14 @@ igt_main
igt_subtest_f("cursor-size-change")
run_test(&data, test_cursor_size, cursor_width, cursor_height);
+ igt_subtest_f("cursor-alpha-opaque") {
+ run_test(&data, test_cursor_opaque, cursor_width, cursor_height);
+ }
+
+ igt_subtest_f("cursor-alpha-transparent") {
+ run_test(&data, test_cursor_transparent, cursor_width, cursor_height);
+ }
+
run_test_generic(&data);
igt_fixture {
--
2.17.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 5+ messages in thread* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane (rev2) 2019-01-09 21:32 [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Mamta Shukla @ 2019-01-09 21:58 ` Patchwork 2019-01-09 23:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: Patchwork @ 2019-01-09 21:58 UTC (permalink / raw) To: Mamta Shukla; +Cc: igt-dev == Series Details == Series: tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane (rev2) URL : https://patchwork.freedesktop.org/series/54465/ State : success == Summary == CI Bug Log - changes from CI_DRM_5385 -> IGTPW_2209 ==================================================== Summary ------- **WARNING** Minor unknown changes coming with IGTPW_2209 need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_2209, 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/54465/revisions/2/ Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_2209: ### IGT changes ### #### Warnings #### * igt@pm_rpm@basic-pci-d3-state: - fi-byt-j1900: PASS -> SKIP Known issues ------------ Here are the changes found in IGTPW_2209 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@pm_rpm@basic-rte: - fi-byt-j1900: PASS -> FAIL [fdo#108800] #### Possible fixes #### * igt@i915_selftest@live_hangcheck: - fi-skl-gvtdvm: INCOMPLETE [fdo#105600] / [fdo#108744] -> PASS * igt@kms_frontbuffer_tracking@basic: - fi-byt-clapper: FAIL [fdo#103167] -> PASS * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence: - fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS +1 {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#105600]: https://bugs.freedesktop.org/show_bug.cgi?id=105600 [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362 [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744 [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800 [fdo#108915]: https://bugs.freedesktop.org/show_bug.cgi?id=108915 [fdo#109241]: https://bugs.freedesktop.org/show_bug.cgi?id=109241 Participating hosts (50 -> 44) ------------------------------ Additional (1): fi-icl-y Missing (7): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-pnv-d510 fi-bdw-samus Build changes ------------- * IGT: IGT_4757 -> IGTPW_2209 CI_DRM_5385: 346fc3a4144b7c1517135142e3a949f20103a896 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_2209: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2209/ IGT_4757: 738f43a54d626f08e250c926a5aeec53458fbd3c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Testlist changes == +igt@kms_cursor_crc@cursor-alpha-opaque +igt@kms_cursor_crc@cursor-alpha-transparent == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2209/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 5+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane (rev2) 2019-01-09 21:32 [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Mamta Shukla 2019-01-09 21:58 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane (rev2) Patchwork @ 2019-01-09 23:55 ` Patchwork 2019-01-12 22:56 ` [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Harry Wentland 2019-01-12 23:00 ` Wentland, Harry 3 siblings, 0 replies; 5+ messages in thread From: Patchwork @ 2019-01-09 23:55 UTC (permalink / raw) To: Mamta Shukla; +Cc: igt-dev == Series Details == Series: tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane (rev2) URL : https://patchwork.freedesktop.org/series/54465/ State : success == Summary == CI Bug Log - changes from CI_DRM_5385_full -> IGTPW_2209_full ==================================================== Summary ------- **WARNING** Minor unknown changes coming with IGTPW_2209_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_2209_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/54465/revisions/2/ Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_2209_full: ### IGT changes ### #### Warnings #### * igt@pm_rc6_residency@rc6-accuracy: - shard-snb: PASS -> SKIP #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@kms_cursor_crc@cursor-alpha-opaque}: - shard-kbl: NOTRUN -> FAIL +1 - shard-apl: NOTRUN -> FAIL +1 - shard-snb: NOTRUN -> FAIL +1 * {igt@kms_cursor_crc@cursor-alpha-transparent}: - shard-hsw: NOTRUN -> FAIL +1 - shard-glk: NOTRUN -> FAIL +1 Known issues ------------ Here are the changes found in IGTPW_2209_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_busy@extended-modeset-hang-newfb-render-b: - shard-glk: PASS -> DMESG-WARN [fdo#107956] * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-a: - shard-kbl: PASS -> DMESG-WARN [fdo#107956] * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a: - shard-apl: PASS -> DMESG-WARN [fdo#107956] * igt@kms_color@pipe-b-ctm-max: - shard-apl: PASS -> FAIL [fdo#108147] - shard-kbl: PASS -> FAIL [fdo#108147] * igt@kms_content_protection@atomic: - shard-kbl: NOTRUN -> FAIL [fdo#108597] * igt@kms_cursor_crc@cursor-64x21-sliding: - shard-apl: PASS -> FAIL [fdo#103232] +4 * igt@kms_cursor_crc@cursor-64x64-suspend: - shard-glk: PASS -> FAIL [fdo#103232] +3 * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible: - shard-hsw: PASS -> INCOMPLETE [fdo#103540] * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt: - shard-apl: PASS -> FAIL [fdo#103167] +4 * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move: - shard-glk: PASS -> FAIL [fdo#103167] +12 * igt@kms_plane@plane-position-covered-pipe-b-planes: - shard-kbl: PASS -> FAIL [fdo#103166] * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max: - shard-apl: PASS -> FAIL [fdo#108145] +1 * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max: - shard-glk: PASS -> FAIL [fdo#108145] +1 - shard-kbl: PASS -> FAIL [fdo#108145] * igt@kms_plane_multiple@atomic-pipe-c-tiling-none: - shard-glk: PASS -> FAIL [fdo#103166] +4 * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf: - shard-apl: PASS -> FAIL [fdo#103166] +5 * igt@kms_setmode@basic: - shard-kbl: PASS -> FAIL [fdo#99912] * igt@kms_sysfs_edid_timing: - shard-kbl: NOTRUN -> FAIL [fdo#100047] #### Possible fixes #### * igt@gem_persistent_relocs@forked-interruptible-thrashing: - shard-snb: INCOMPLETE [fdo#105411] -> PASS * igt@kms_available_modes_crc@available_mode_test_crc: - shard-apl: FAIL [fdo#106641] -> PASS * igt@kms_color@pipe-b-legacy-gamma: - shard-apl: FAIL [fdo#104782] -> PASS * igt@kms_cursor_crc@cursor-128x128-dpms: - shard-apl: FAIL [fdo#103232] -> PASS * igt@kms_cursor_crc@cursor-256x256-random: - shard-glk: FAIL [fdo#103232] -> PASS +1 * igt@kms_cursor_crc@cursor-256x256-suspend: - shard-apl: FAIL [fdo#103191] / [fdo#103232] -> PASS * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite: - shard-apl: FAIL [fdo#103167] -> PASS +1 * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move: - shard-kbl: FAIL [fdo#103167] -> PASS * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt: - shard-glk: FAIL [fdo#103167] -> PASS * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb: - shard-glk: FAIL [fdo#108145] -> PASS * igt@kms_plane_multiple@atomic-pipe-a-tiling-x: - shard-apl: FAIL [fdo#103166] -> PASS +1 - shard-kbl: FAIL [fdo#103166] -> PASS * igt@kms_plane_multiple@atomic-pipe-b-tiling-x: - shard-glk: FAIL [fdo#103166] -> PASS +1 #### Warnings #### * igt@kms_rotation_crc@multiplane-rotation-cropping-top: - shard-kbl: DMESG-FAIL [fdo#108950] -> DMESG-WARN [fdo#105604] {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#100047]: https://bugs.freedesktop.org/show_bug.cgi?id=100047 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540 [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782 [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411 [fdo#105604]: https://bugs.freedesktop.org/show_bug.cgi?id=105604 [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641 [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147 [fdo#108597]: https://bugs.freedesktop.org/show_bug.cgi?id=108597 [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950 [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_4757 -> IGTPW_2209 * Piglit: piglit_4509 -> None CI_DRM_5385: 346fc3a4144b7c1517135142e3a949f20103a896 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_2209: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2209/ IGT_4757: 738f43a54d626f08e250c926a5aeec53458fbd3c @ 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_2209/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane 2019-01-09 21:32 [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Mamta Shukla 2019-01-09 21:58 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane (rev2) Patchwork 2019-01-09 23:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork @ 2019-01-12 22:56 ` Harry Wentland 2019-01-12 23:00 ` Wentland, Harry 3 siblings, 0 replies; 5+ messages in thread From: Harry Wentland @ 2019-01-12 22:56 UTC (permalink / raw) To: Mamta Shukla, igt-dev, manasi.d.navare, petri.latvala, arkadiusz.hiler On 2019-01-09 4:32 p.m., Mamta Shukla wrote: > Add test to check extreme alpha values i.e. fully opaque and fully transparent > for cursor plane and verify by calculating hardware and software CRC. > > Signed-off-by: Mamta Shukla <mamtashukla555@gmail.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Harry > --- > changes in v2: > 1.Remove unnecessary new line. > 2.Add functions to clear screen in test_cursor_alpha function. > > > tests/kms_cursor_crc.c | 80 ++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 73 insertions(+), 7 deletions(-) > > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c > index 1514e7f2..8c1ecc2b 100644 > --- a/tests/kms_cursor_crc.c > +++ b/tests/kms_cursor_crc.c > @@ -65,7 +65,7 @@ typedef struct { > #define TEST_DPMS (1<<0) > #define TEST_SUSPEND (1<<1) > > -static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch) > +static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a) > { > int wl, wr, ht, hb; > > @@ -80,10 +80,10 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch) > return; > cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE); > /* 4 color rectangles in the corners, RGBY */ > - igt_paint_color_alpha(cr, x, y, wl, ht, 1.0, 0.0, 0.0, 1.0); > - igt_paint_color_alpha(cr, x + wl, y, wr, ht, 0.0, 1.0, 0.0, 1.0); > - igt_paint_color_alpha(cr, x, y + ht, wl, hb, 0.0, 0.0, 1.0, 1.0); > - igt_paint_color_alpha(cr, x + wl, y + ht, wr, hb, 0.5, 0.5, 0.5, 1.0); > + igt_paint_color_alpha(cr, x, y, wl, ht, 1.0, 0.0, 0.0, a); > + igt_paint_color_alpha(cr, x + wl, y, wr, ht, 0.0, 1.0, 0.0, a); > + igt_paint_color_alpha(cr, x, y + ht, wl, hb, 0.0, 0.0, 1.0, a); > + igt_paint_color_alpha(cr, x + wl, y + ht, wr, hb, 0.5, 0.5, 0.5, a); > } > > static void cursor_enable(data_t *data) > @@ -200,7 +200,7 @@ static void do_single_test(data_t *data, int x, int y) > > /* Now render the same in software and collect crc */ > cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb); > - draw_cursor(cr, x, y, data->curw, data->curh); > + draw_cursor(cr, x, y, data->curw, data->curh, 1.0); > igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr); > igt_display_commit(display); > > @@ -404,6 +404,64 @@ static void cleanup_crtc(data_t *data, igt_output_t *output) > igt_display_commit(display); > } > > +static void test_cursor_alpha(data_t *data, double a) > +{ > + igt_display_t *display = &data->display; > + igt_pipe_crc_t *pipe_crc = data->pipe_crc; > + igt_crc_t crc, ref_crc; > + cairo_t *cr; > + uint32_t fb_id; > + int curw=data->curw; > + int curh=data->curh; > + > + /*alpha cursor fb*/ > + fb_id = igt_create_color_fb(data->drm_fd, curw, curh, > + DRM_FORMAT_ARGB8888, > + LOCAL_DRM_FORMAT_MOD_NONE, > + 1.0, 1.0, 1.0, > + &data->fb); > + igt_assert(fb_id); > + cr = igt_get_cairo_ctx(data->drm_fd, &data->fb); > + draw_cursor(cr, 0, 0, curw, curh, a); > + igt_put_cairo_ctx(data->drm_fd, &data->fb, cr); > + > + /*Hardware Test*/ > + cursor_enable(data); > + igt_display_commit(display); > + igt_wait_for_vblank(data->drm_fd, data->pipe); > + igt_pipe_crc_collect_crc(pipe_crc, &crc); > + cursor_disable(data); > + > + /*Software Test*/ > + cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb); > + igt_paint_color_alpha(cr, 0, 0, curw, curh, 1.0, 1.0, 1.0, a); > + igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr); > + > + igt_display_commit(display); > + igt_wait_for_vblank(data->drm_fd, data->pipe); > + igt_pipe_crc_collect_crc(pipe_crc, &ref_crc); > + igt_assert_crc_equal(&crc, &ref_crc); > + > + /*Clear Screen*/ > + cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb); > + igt_paint_color(cr, 0, 0, data->screenw, data->screenh, > + 0.0, 0.0, 0.0); > + igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr); > + igt_remove_fb(data->drm_fd, &data->fb); > +} > + > +static void test_cursor_transparent(data_t *data) > +{ > + test_cursor_alpha(data, 0.0); > + > +} > + > +static void test_cursor_opaque(data_t *data) > +{ > + test_cursor_alpha(data, 1.0); > +} > + > + > static void run_test(data_t *data, void (*testfunc)(data_t *), int cursor_w, int cursor_h) > { > igt_display_t *display = &data->display; > @@ -461,7 +519,7 @@ static void create_cursor_fb(data_t *data, int cur_w, int cur_h) > igt_assert(fb_id); > > cr = igt_get_cairo_ctx(data->drm_fd, &data->fb); > - draw_cursor(cr, 0, 0, cur_w, cur_h); > + draw_cursor(cr, 0, 0, cur_w, cur_h, 1.0); > igt_put_cairo_ctx(data->drm_fd, &data->fb, cr); > } > > @@ -684,6 +742,14 @@ igt_main > igt_subtest_f("cursor-size-change") > run_test(&data, test_cursor_size, cursor_width, cursor_height); > > + igt_subtest_f("cursor-alpha-opaque") { > + run_test(&data, test_cursor_opaque, cursor_width, cursor_height); > + } > + > + igt_subtest_f("cursor-alpha-transparent") { > + run_test(&data, test_cursor_transparent, cursor_width, cursor_height); > + } > + > run_test_generic(&data); > > igt_fixture { > _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane 2019-01-09 21:32 [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Mamta Shukla ` (2 preceding siblings ...) 2019-01-12 22:56 ` [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Harry Wentland @ 2019-01-12 23:00 ` Wentland, Harry 3 siblings, 0 replies; 5+ messages in thread From: Wentland, Harry @ 2019-01-12 23:00 UTC (permalink / raw) To: Mamta Shukla, igt-dev@lists.freedesktop.org, hwentland@gmail.com, manasi.d.navare@intel.com, petri.latvala@intel.com, arkadiusz.hiler@intel.com On 2019-01-09 4:32 p.m., Mamta Shukla wrote: > Add test to check extreme alpha values i.e. fully opaque and fully transparent > for cursor plane and verify by calculating hardware and software CRC. > > Signed-off-by: Mamta Shukla <mamtashukla555@gmail.com> The RB from my gmail seems to still be stuck in transit so once more from my AMD account: Reviewed-by: Harry Wentland <harry.wentland@amd.com> I'll also merge it. Harry > --- > changes in v2: > 1.Remove unnecessary new line. > 2.Add functions to clear screen in test_cursor_alpha function. > > > tests/kms_cursor_crc.c | 80 ++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 73 insertions(+), 7 deletions(-) > > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c > index 1514e7f2..8c1ecc2b 100644 > --- a/tests/kms_cursor_crc.c > +++ b/tests/kms_cursor_crc.c > @@ -65,7 +65,7 @@ typedef struct { > #define TEST_DPMS (1<<0) > #define TEST_SUSPEND (1<<1) > > -static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch) > +static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a) > { > int wl, wr, ht, hb; > > @@ -80,10 +80,10 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch) > return; > cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE); > /* 4 color rectangles in the corners, RGBY */ > - igt_paint_color_alpha(cr, x, y, wl, ht, 1.0, 0.0, 0.0, 1.0); > - igt_paint_color_alpha(cr, x + wl, y, wr, ht, 0.0, 1.0, 0.0, 1.0); > - igt_paint_color_alpha(cr, x, y + ht, wl, hb, 0.0, 0.0, 1.0, 1.0); > - igt_paint_color_alpha(cr, x + wl, y + ht, wr, hb, 0.5, 0.5, 0.5, 1.0); > + igt_paint_color_alpha(cr, x, y, wl, ht, 1.0, 0.0, 0.0, a); > + igt_paint_color_alpha(cr, x + wl, y, wr, ht, 0.0, 1.0, 0.0, a); > + igt_paint_color_alpha(cr, x, y + ht, wl, hb, 0.0, 0.0, 1.0, a); > + igt_paint_color_alpha(cr, x + wl, y + ht, wr, hb, 0.5, 0.5, 0.5, a); > } > > static void cursor_enable(data_t *data) > @@ -200,7 +200,7 @@ static void do_single_test(data_t *data, int x, int y) > > /* Now render the same in software and collect crc */ > cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb); > - draw_cursor(cr, x, y, data->curw, data->curh); > + draw_cursor(cr, x, y, data->curw, data->curh, 1.0); > igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr); > igt_display_commit(display); > > @@ -404,6 +404,64 @@ static void cleanup_crtc(data_t *data, igt_output_t *output) > igt_display_commit(display); > } > > +static void test_cursor_alpha(data_t *data, double a) > +{ > + igt_display_t *display = &data->display; > + igt_pipe_crc_t *pipe_crc = data->pipe_crc; > + igt_crc_t crc, ref_crc; > + cairo_t *cr; > + uint32_t fb_id; > + int curw=data->curw; > + int curh=data->curh; > + > + /*alpha cursor fb*/ > + fb_id = igt_create_color_fb(data->drm_fd, curw, curh, > + DRM_FORMAT_ARGB8888, > + LOCAL_DRM_FORMAT_MOD_NONE, > + 1.0, 1.0, 1.0, > + &data->fb); > + igt_assert(fb_id); > + cr = igt_get_cairo_ctx(data->drm_fd, &data->fb); > + draw_cursor(cr, 0, 0, curw, curh, a); > + igt_put_cairo_ctx(data->drm_fd, &data->fb, cr); > + > + /*Hardware Test*/ > + cursor_enable(data); > + igt_display_commit(display); > + igt_wait_for_vblank(data->drm_fd, data->pipe); > + igt_pipe_crc_collect_crc(pipe_crc, &crc); > + cursor_disable(data); > + > + /*Software Test*/ > + cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb); > + igt_paint_color_alpha(cr, 0, 0, curw, curh, 1.0, 1.0, 1.0, a); > + igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr); > + > + igt_display_commit(display); > + igt_wait_for_vblank(data->drm_fd, data->pipe); > + igt_pipe_crc_collect_crc(pipe_crc, &ref_crc); > + igt_assert_crc_equal(&crc, &ref_crc); > + > + /*Clear Screen*/ > + cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb); > + igt_paint_color(cr, 0, 0, data->screenw, data->screenh, > + 0.0, 0.0, 0.0); > + igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr); > + igt_remove_fb(data->drm_fd, &data->fb); > +} > + > +static void test_cursor_transparent(data_t *data) > +{ > + test_cursor_alpha(data, 0.0); > + > +} > + > +static void test_cursor_opaque(data_t *data) > +{ > + test_cursor_alpha(data, 1.0); > +} > + > + > static void run_test(data_t *data, void (*testfunc)(data_t *), int cursor_w, int cursor_h) > { > igt_display_t *display = &data->display; > @@ -461,7 +519,7 @@ static void create_cursor_fb(data_t *data, int cur_w, int cur_h) > igt_assert(fb_id); > > cr = igt_get_cairo_ctx(data->drm_fd, &data->fb); > - draw_cursor(cr, 0, 0, cur_w, cur_h); > + draw_cursor(cr, 0, 0, cur_w, cur_h, 1.0); > igt_put_cairo_ctx(data->drm_fd, &data->fb, cr); > } > > @@ -684,6 +742,14 @@ igt_main > igt_subtest_f("cursor-size-change") > run_test(&data, test_cursor_size, cursor_width, cursor_height); > > + igt_subtest_f("cursor-alpha-opaque") { > + run_test(&data, test_cursor_opaque, cursor_width, cursor_height); > + } > + > + igt_subtest_f("cursor-alpha-transparent") { > + run_test(&data, test_cursor_transparent, cursor_width, cursor_height); > + } > + > run_test_generic(&data); > > igt_fixture { > _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-01-12 23:00 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-01-09 21:32 [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Mamta Shukla 2019-01-09 21:58 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane (rev2) Patchwork 2019-01-09 23:55 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2019-01-12 22:56 ` [igt-dev] [PATCH i-g-t, v2] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Harry Wentland 2019-01-12 23:00 ` Wentland, Harry
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox