All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.