* [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane
@ 2018-12-24 18:14 Mamta Shukla
2018-12-27 8:16 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Mamta Shukla @ 2018-12-24 18:14 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>
---
tests/kms_cursor_crc.c | 77 ++++++++++++++++++++++++++++++++++++++----
1 file changed, 70 insertions(+), 7 deletions(-)
diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index 1514e7f2..7f581ca0 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,61 @@ 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);
+ 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 +516,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 +739,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
2018-12-24 18:14 [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Mamta Shukla
@ 2018-12-27 8:16 ` Patchwork
2018-12-27 9:30 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-01-07 22:11 ` [igt-dev] [PATCH i-g-t] " Manasi Navare
2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-12-27 8:16 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
URL : https://patchwork.freedesktop.org/series/54465/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_5341 -> IGTPW_2178
====================================================
Summary
-------
**WARNING**
Minor unknown changes coming with IGTPW_2178 need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_2178, 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/1/mbox/
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_2178:
### IGT changes ###
#### Warnings ####
* igt@pm_rpm@basic-pci-d3-state:
- fi-bsw-n3050: PASS -> SKIP
Known issues
------------
Here are the changes found in IGTPW_2178 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_create@basic-files:
- fi-bsw-n3050: PASS -> FAIL [fdo#108656]
* igt@gem_exec_suspend@basic-s4-devices:
- fi-kbl-7500u: PASS -> DMESG-WARN [fdo#105128] / [fdo#107139]
* igt@kms_frontbuffer_tracking@basic:
- fi-byt-clapper: PASS -> FAIL [fdo#103167]
* igt@pm_rpm@basic-rte:
- fi-bsw-n3050: PASS -> FAIL [fdo#108800]
#### Possible fixes ####
* igt@gem_ctx_create@basic-files:
- fi-bsw-kefka: FAIL [fdo#108656] -> PASS
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: FAIL [fdo#108767] -> PASS
* igt@kms_frontbuffer_tracking@basic:
- fi-icl-u3: FAIL [fdo#103167] -> PASS
* igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS
#### Warnings ####
* igt@i915_selftest@live_contexts:
- fi-icl-u3: INCOMPLETE [fdo#108315] -> DMESG-FAIL [fdo#108569]
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
[fdo#105128]: https://bugs.freedesktop.org/show_bug.cgi?id=105128
[fdo#107139]: https://bugs.freedesktop.org/show_bug.cgi?id=107139
[fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
[fdo#108315]: https://bugs.freedesktop.org/show_bug.cgi?id=108315
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#108656]: https://bugs.freedesktop.org/show_bug.cgi?id=108656
[fdo#108767]: https://bugs.freedesktop.org/show_bug.cgi?id=108767
[fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
Participating hosts (49 -> 42)
------------------------------
Missing (7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-y
Build changes
-------------
* IGT: IGT_4753 -> IGTPW_2178
CI_DRM_5341: 35ab0477f054cebc4370691690f27fb0589aa2f8 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_2178: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2178/
IGT_4753: 0bc683ea2dcf270b5287ffb4a6510fdff44e9390 @ 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_2178/
_______________________________________________
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
2018-12-24 18:14 [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Mamta Shukla
2018-12-27 8:16 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
@ 2018-12-27 9:30 ` Patchwork
2019-01-07 22:11 ` [igt-dev] [PATCH i-g-t] " Manasi Navare
2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-12-27 9:30 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
URL : https://patchwork.freedesktop.org/series/54465/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_5341_full -> IGTPW_2178_full
====================================================
Summary
-------
**WARNING**
Minor unknown changes coming with IGTPW_2178_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_2178_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/1/mbox/
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_2178_full:
### IGT changes ###
#### Possible regressions ####
* {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
- shard-glk: NOTRUN -> FAIL +1
#### Warnings ####
* igt@pm_rc6_residency@rc6-accuracy:
- shard-snb: PASS -> SKIP
Known issues
------------
Here are the changes found in IGTPW_2178_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_fence@basic-await-default:
- shard-hsw: PASS -> FAIL [fdo#108888]
* igt@gem_tiled_swapping@non-threaded:
- shard-apl: PASS -> INCOMPLETE [fdo#103927] +1
* igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
- shard-apl: PASS -> FAIL [fdo#106510] / [fdo#108145]
* igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
- shard-glk: PASS -> FAIL [fdo#108145]
* igt@kms_cursor_crc@cursor-128x128-suspend:
- shard-apl: PASS -> FAIL [fdo#103191] / [fdo#103232]
* igt@kms_cursor_crc@cursor-128x42-onscreen:
- shard-kbl: PASS -> FAIL [fdo#103232]
* igt@kms_cursor_crc@cursor-256x256-sliding:
- shard-glk: PASS -> FAIL [fdo#103232] +1
* igt@kms_cursor_crc@cursor-64x21-sliding:
- shard-apl: PASS -> FAIL [fdo#103232] +3
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff:
- shard-apl: PASS -> FAIL [fdo#103167] +2
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render:
- shard-kbl: PASS -> FAIL [fdo#103167] +1
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
- shard-glk: PASS -> FAIL [fdo#103167] +9
* igt@kms_frontbuffer_tracking@fbc-2p-rte:
- shard-glk: PASS -> FAIL [fdo#103167] / [fdo#105682]
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-cpu:
- shard-snb: SKIP -> INCOMPLETE [fdo#105411]
* igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
- shard-glk: PASS -> FAIL [fdo#108948]
* igt@kms_plane@plane-position-covered-pipe-a-planes:
- shard-glk: PASS -> FAIL [fdo#103166] +8
* igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
- shard-apl: PASS -> FAIL [fdo#103166] +3
* igt@kms_universal_plane@universal-plane-pipe-b-functional:
- shard-kbl: PASS -> FAIL [fdo#103166] +1
#### Possible fixes ####
* igt@kms_available_modes_crc@available_mode_test_crc:
- shard-apl: FAIL [fdo#106641] -> PASS
* igt@kms_busy@extended-pageflip-hang-newfb-render-c:
- shard-apl: DMESG-WARN [fdo#107956] -> PASS
* igt@kms_color@pipe-a-ctm-max:
- shard-apl: FAIL [fdo#108147] -> PASS
* igt@kms_cursor_crc@cursor-128x128-onscreen:
- shard-apl: FAIL [fdo#103232] -> PASS +3
- shard-glk: FAIL [fdo#103232] -> PASS +1
* igt@kms_cursor_crc@cursor-128x128-sliding:
- shard-kbl: FAIL [fdo#103232] -> PASS +1
* igt@kms_cursor_crc@cursor-64x64-suspend:
- shard-apl: FAIL [fdo#103191] / [fdo#103232] -> PASS
* igt@kms_flip@2x-busy-flip:
- shard-hsw: DMESG-WARN [fdo#102614] -> 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-spr-indfb-fullscreen:
- shard-glk: FAIL [fdo#103167] -> PASS +1
* igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
- shard-apl: FAIL [fdo#108948] -> PASS
* igt@kms_plane@plane-position-covered-pipe-c-planes:
- shard-apl: FAIL [fdo#103166] -> PASS +1
* igt@kms_plane_alpha_blend@pipe-b-constant-alpha-max:
- shard-glk: FAIL [fdo#108145] -> PASS +2
* igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
- shard-glk: FAIL [fdo#103166] -> PASS
- shard-kbl: FAIL [fdo#103166] -> PASS
* igt@kms_vblank@pipe-b-wait-forked-hang:
- shard-snb: INCOMPLETE [fdo#105411] -> PASS
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
[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#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
[fdo#105682]: https://bugs.freedesktop.org/show_bug.cgi?id=105682
[fdo#106510]: https://bugs.freedesktop.org/show_bug.cgi?id=106510
[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#108888]: https://bugs.freedesktop.org/show_bug.cgi?id=108888
[fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
Participating hosts (7 -> 5)
------------------------------
Missing (2): shard-skl shard-iclb
Build changes
-------------
* IGT: IGT_4753 -> IGTPW_2178
* Piglit: piglit_4509 -> None
CI_DRM_5341: 35ab0477f054cebc4370691690f27fb0589aa2f8 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_2178: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2178/
IGT_4753: 0bc683ea2dcf270b5287ffb4a6510fdff44e9390 @ 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_2178/
_______________________________________________
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] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane
2018-12-24 18:14 [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Mamta Shukla
2018-12-27 8:16 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2018-12-27 9:30 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2019-01-07 22:11 ` Manasi Navare
2019-01-09 19:04 ` Mamta Shukla
2 siblings, 1 reply; 5+ messages in thread
From: Manasi Navare @ 2019-01-07 22:11 UTC (permalink / raw)
To: Mamta Shukla; +Cc: igt-dev, hwentland, petri.latvala
Overall the functionality looks good, just some minor coding style nits below:
On Mon, Dec 24, 2018 at 11:44:16PM +0530, 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>
> ---
> tests/kms_cursor_crc.c | 77 ++++++++++++++++++++++++++++++++++++++----
> 1 file changed, 70 insertions(+), 7 deletions(-)
>
> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> index 1514e7f2..7f581ca0 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,61 @@ 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);
> +
Unnecessary new line
> + 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);
The other subtest test_cursor_size clears the screen at the end, may be you
should consider doing that as well
> + igt_remove_fb(data->drm_fd, &data->fb);
I think the igt_remove_fb is probably not needed here since the run_test_generic calls
this in igt_fixture at the end.
Please double check if you still need this call.
Apart from this everything else looks good to me.
Regards
Manasi
> +
> +}
> +
> +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 +516,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 +739,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 [flat|nested] 5+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane
2019-01-07 22:11 ` [igt-dev] [PATCH i-g-t] " Manasi Navare
@ 2019-01-09 19:04 ` Mamta Shukla
0 siblings, 0 replies; 5+ messages in thread
From: Mamta Shukla @ 2019-01-09 19:04 UTC (permalink / raw)
To: Manasi Navare; +Cc: igt-dev, Harry Wentland, petri.latvala
Thank you for the feedback.
On Tue, Jan 8, 2019 at 3:38 AM Manasi Navare <manasi.d.navare@intel.com> wrote:
>
> Overall the functionality looks good, just some minor coding style nits below:
>
> On Mon, Dec 24, 2018 at 11:44:16PM +0530, 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>
> > ---
> > tests/kms_cursor_crc.c | 77 ++++++++++++++++++++++++++++++++++++++----
> > 1 file changed, 70 insertions(+), 7 deletions(-)
> >
> > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> > index 1514e7f2..7f581ca0 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,61 @@ 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);
> > +
>
> Unnecessary new line
>
> > + 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);
>
> The other subtest test_cursor_size clears the screen at the end, may be you
> should consider doing that as well
Added in the next revision.
> > + igt_remove_fb(data->drm_fd, &data->fb);
>
> I think the igt_remove_fb is probably not needed here since the run_test_generic calls
> this in igt_fixture at the end.
> Please double check if you still need this call.
This is needed because I have called these tests from main using
run_test call for a fixed size of cursor.
So I think for the framebuffer created explicitly in the function
test_cursor_alpha , igt_remove_fb needed.
> Apart from this everything else looks good to me.
>
> Regards
> Manasi
>
> > +
> > +}
> > +
> > +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 +516,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 +739,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
> >
---
Mamta
_______________________________________________
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-09 19:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-24 18:14 [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Add test to check extreme alpha values for cursor plane Mamta Shukla
2018-12-27 8:16 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2018-12-27 9:30 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-01-07 22:11 ` [igt-dev] [PATCH i-g-t] " Manasi Navare
2019-01-09 19:04 ` Mamta Shukla
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.