[igt-dev] [PATCH i-g-t, v3, 1/2] tests/kms_cursor_crc.c: Improve test_cursor_alpha()

Rodrigo Siqueira rodrigosiqueiramelo at gmail.com
Sun Feb 3 20:26:17 UTC 2019


On 02/03, Mamta Shukla wrote:
> In the kms_cursor_crc, the subtest to check exterme alpha values failed due
> to different CRCs observed in hardware and software rendering. This patch fixes
> CRC mismatch error in cursor-alpha-opaque and cursor-alpha-transparent subtests
> by improving the order in which cursor was rendered in hardware test. Changes
> made in test_cursor_alpha() to ensure cursor rendering in hardware test and
> acquire CRC value:
> - Add drmModeSetCursor() to set cursor image.
> - Remove igt_display_commit() to reduce the chance of getting crc values cleared
>   before it is acquired.
> - Add igt_remove_fb() to remove locally created framebuffer after disabling the
>   cursor plane in HW test
> 
>   Also, aligned this function with test_cursor_size and after these changes
>   got passing results for alpha blending support added in VKMS CRC API.
> 
> Signed-off-by: Mamta Shukla <mamtashukla555 at gmail.com>
> Reviewed-by: Harry Wentland <harry.wentland at amd.com>
> ---
> changes in v2:
> -Modify commit message
> -Add spaces around '='
> 
> No changes in v3.
> 
>  tests/kms_cursor_crc.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> index 3c9856d9..144b44b0 100644
> --- a/tests/kms_cursor_crc.c
> +++ b/tests/kms_cursor_crc.c
> @@ -411,26 +411,28 @@ static void test_cursor_alpha(data_t *data, double a)
>  	igt_crc_t crc, ref_crc;
>  	cairo_t *cr;
>  	uint32_t fb_id;
> -	int curw=data->curw;
> -	int curh=data->curh;
> +	int curw = data->curw;
> +	int curh = data->curh;
> +	int ret;
>  
>  	/*alpha cursor fb*/
> -	fb_id = igt_create_color_fb(data->drm_fd, curw, curh,
> +	fb_id = igt_create_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_paint_color_alpha(cr, 0, 0, curw, curh, 1.0, 1.0, 1.0, a);
>  	igt_put_cairo_ctx(data->drm_fd, &data->fb, cr);
>  
>  	/*Hardware Test*/
>  	cursor_enable(data);
> -	igt_display_commit(display);
> +	ret = drmModeSetCursor(data->drm_fd, data->output->config.crtc->crtc_id, data->fb.gem_handle, curw, curh);
> +	igt_assert_eq(ret, 0);
>  	igt_wait_for_vblank(data->drm_fd, data->pipe);
>  	igt_pipe_crc_collect_crc(pipe_crc, &crc);
>  	cursor_disable(data);
> +	igt_remove_fb(data->drm_fd, &data->fb);
>  
>  	/*Software Test*/
>  	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
> @@ -447,7 +449,6 @@ static void test_cursor_alpha(data_t *data, double a)
>  	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)
> -- 
> 2.17.1
> 

Reviewed-by: Rodrigo Siqueira <rodrigosiqueiramelo at gmail.com>

-- 
Rodrigo Siqueira
https://siqueira.tech
Graduate Student
Department of Computer Science
University of São Paulo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/igt-dev/attachments/20190203/0bcc5140/attachment-0001.sig>


More information about the igt-dev mailing list