[Intel-gfx] [PATCH i-g-t v2 23/33] tests/kms_psr_sink_crc: Add support for dynamic number of planes

Mika Kahola mika.kahola at intel.com
Thu Jan 26 11:00:28 UTC 2017


Reviewed-by: Mika Kahola <mika.kahola at intel.com>

On Tue, 2017-01-24 at 18:33 -0500, Robert Foss wrote:
> Add changes reflecting the new support for dynamic number of planes
> per pipe.
> 
> Signed-off-by: Robert Foss <robert.foss at collabora.com>
> ---
>  tests/kms_psr_sink_crc.c | 52 +++++++++++++++++++++-----------------
> ----------
>  1 file changed, 23 insertions(+), 29 deletions(-)
> 
> diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
> index 926b8578..8f6bdc0d 100644
> --- a/tests/kms_psr_sink_crc.c
> +++ b/tests/kms_psr_sink_crc.c
> @@ -34,12 +34,6 @@ bool running_with_psr_disabled;
>  
>  #define CRC_BLACK "000000000000"
>  
> -enum planes {
> -	PRIMARY,
> -	SPRITE,
> -	CURSOR,
> -};
> -
>  enum operations {
>  	PAGE_FLIP,
>  	MMAP_GTT,
> @@ -69,7 +63,7 @@ static const char *op_str(enum operations op)
>  
>  typedef struct {
>  	int drm_fd;
> -	enum planes test_plane;
> +	int test_plane;
>  	enum operations op;
>  	uint32_t devid;
>  	uint32_t crtc_id;
> @@ -313,9 +307,9 @@ static void run_test(data_t *data)
>  
>  	/* Setting a secondary fb/plane */
>  	switch (data->test_plane) {
> -	case PRIMARY: default: test_plane = data->primary; break;
> -	case SPRITE: test_plane = data->sprite; break;
> -	case CURSOR: test_plane = data->cursor; break;
> +	case DRM_PLANE_TYPE_PRIMARY: default: test_plane = data-
> >primary; break;
> +	case DRM_PLANE_TYPE_OVERLAY: test_plane = data->sprite;
> break;
> +	case DRM_PLANE_TYPE_CURSOR: test_plane = data->cursor;
> break;
>  	}
>  	igt_plane_set_fb(test_plane, &data->fb_white);
>  	igt_display_commit(&data->display);
> @@ -323,7 +317,7 @@ static void run_test(data_t *data)
>  	/* Confirm it is not Green anymore */
>  	igt_assert(wait_psr_entry(data));
>  	get_sink_crc(data, ref_crc);
> -	if (data->test_plane == PRIMARY)
> +	if (data->test_plane == DRM_PLANE_TYPE_PRIMARY)
>  		assert_or_manual(!is_green(ref_crc), "screen
> WHITE");
>  	else
>  		assert_or_manual(!is_green(ref_crc), "GREEN
> background with WHITE box");
> @@ -355,7 +349,7 @@ static void run_test(data_t *data)
>  		/* Printing white on white so the screen shouldn't
> change */
>  		memset(ptr, 0xff, data->mod_size);
>  		get_sink_crc(data, crc);
> -		if (data->test_plane == PRIMARY)
> +		if (data->test_plane == DRM_PLANE_TYPE_PRIMARY)
>  			assert_or_manual(strcmp(ref_crc, crc) == 0,
> "screen WHITE");
>  		else
>  			assert_or_manual(strcmp(ref_crc, crc) == 0,
> @@ -406,9 +400,9 @@ static void run_test(data_t *data)
>  
>  static void test_cleanup(data_t *data) {
>  	igt_plane_set_fb(data->primary, NULL);
> -	if (data->test_plane == SPRITE)
> +	if (data->test_plane == DRM_PLANE_TYPE_OVERLAY)
>  		igt_plane_set_fb(data->sprite, NULL);
> -	if (data->test_plane == CURSOR)
> +	if (data->test_plane == DRM_PLANE_TYPE_CURSOR)
>  		igt_plane_set_fb(data->cursor, NULL);
>  
>  	igt_display_commit(&data->display);
> @@ -428,7 +422,7 @@ static void setup_test_plane(data_t *data)
>  			    0.0, 1.0, 0.0,
>  			    &data->fb_green);
>  
> -	data->primary = igt_output_get_plane(data->output,
> IGT_PLANE_PRIMARY);
> +	data->primary = igt_output_get_plane_type(data->output,
> DRM_PLANE_TYPE_PRIMARY);
>  	igt_plane_set_fb(data->primary, NULL);
>  
>  	white_h = data->mode->hdisplay;
> @@ -439,16 +433,16 @@ static void setup_test_plane(data_t *data)
>  	data->mod_stride = white_h * 4;
>  
>  	switch (data->test_plane) {
> -	case SPRITE:
> -		data->sprite = igt_output_get_plane(data->output,
> -						    IGT_PLANE_2);
> +	case DRM_PLANE_TYPE_OVERLAY:
> +		data->sprite = igt_output_get_plane_type(data-
> >output,
> +						    DRM_PLANE_TYPE_O
> VERLAY);
>  		igt_plane_set_fb(data->sprite, NULL);
>  		/* To make it different for human eyes let's make
>  		 * sprite visible in only one quarter of the primary
>  		 */
>  		white_h = white_h/2;
>  		white_v = white_v/2;
> -	case PRIMARY:
> +	case DRM_PLANE_TYPE_PRIMARY:
>  		igt_create_color_fb(data->drm_fd,
>  				    white_h, white_v,
>  				    DRM_FORMAT_XRGB8888,
> @@ -456,9 +450,9 @@ static void setup_test_plane(data_t *data)
>  				    1.0, 1.0, 1.0,
>  				    &data->fb_white);
>  		break;
> -	case CURSOR:
> -		data->cursor = igt_output_get_plane(data->output,
> -						    IGT_PLANE_CURSOR
> );
> +	case DRM_PLANE_TYPE_CURSOR:
> +		data->cursor = igt_output_get_plane_type(data-
> >output,
> +						    DRM_PLANE_TYPE_C
> URSOR);
>  		igt_plane_set_fb(data->cursor, NULL);
>  		create_cursor_fb(data);
>  		igt_plane_set_position(data->cursor, 0, 0);
> @@ -535,7 +529,7 @@ int main(int argc, char *argv[])
>  
>  	for (op = PAGE_FLIP; op <= RENDER; op++) {
>  		igt_subtest_f("primary_%s", op_str(op)) {
> -			data.test_plane = PRIMARY;
> +			data.test_plane = DRM_PLANE_TYPE_PRIMARY;
>  			data.op = op;
>  			setup_test_plane(&data);
>  			igt_assert(wait_psr_entry(&data));
> @@ -546,7 +540,7 @@ int main(int argc, char *argv[])
>  
>  	for (op = MMAP_GTT; op <= PLANE_ONOFF; op++) {
>  		igt_subtest_f("sprite_%s", op_str(op)) {
> -			data.test_plane = SPRITE;
> +			data.test_plane = DRM_PLANE_TYPE_OVERLAY;
>  			data.op = op;
>  			setup_test_plane(&data);
>  			igt_assert(wait_psr_entry(&data));
> @@ -557,7 +551,7 @@ int main(int argc, char *argv[])
>  
>  	for (op = MMAP_GTT; op <= PLANE_ONOFF; op++) {
>  		igt_subtest_f("cursor_%s", op_str(op)) {
> -			data.test_plane = CURSOR;
> +			data.test_plane = DRM_PLANE_TYPE_CURSOR;
>  			data.op = op;
>  			setup_test_plane(&data);
>  			igt_assert(wait_psr_entry(&data));
> @@ -567,7 +561,7 @@ int main(int argc, char *argv[])
>  	}
>  
>  	igt_subtest_f("dpms_off_psr_active") {
> -		data.test_plane = PRIMARY;
> +		data.test_plane = DRM_PLANE_TYPE_PRIMARY;
>  		data.op = RENDER;
>  		setup_test_plane(&data);
>  		igt_assert(wait_psr_entry(&data));
> @@ -579,7 +573,7 @@ int main(int argc, char *argv[])
>  	}
>  
>  	igt_subtest_f("dpms_off_psr_exit") {
> -		data.test_plane = SPRITE;
> +		data.test_plane = DRM_PLANE_TYPE_OVERLAY;
>  		data.op = PLANE_ONOFF;
>  		setup_test_plane(&data);
>  
> @@ -591,7 +585,7 @@ int main(int argc, char *argv[])
>  	}
>  
>  	igt_subtest_f("suspend_psr_active") {
> -		data.test_plane = PRIMARY;
> +		data.test_plane = DRM_PLANE_TYPE_PRIMARY;
>  		data.op = PAGE_FLIP;
>  		setup_test_plane(&data);
>  		igt_assert(wait_psr_entry(&data));
> @@ -604,7 +598,7 @@ int main(int argc, char *argv[])
>  	}
>  
>  	igt_subtest_f("suspend_psr_exit") {
> -		data.test_plane = CURSOR;
> +		data.test_plane = DRM_PLANE_TYPE_CURSOR;
>  		data.op = PLANE_ONOFF;
>  		setup_test_plane(&data);
>  
-- 
Mika Kahola - Intel OTC



More information about the Intel-gfx mailing list