All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Souza, Jose" <jose.souza@intel.com>
To: "igt-dev@lists.freedesktop.org" <igt-dev@lists.freedesktop.org>,
	"Pandiyan, Dhinakaran" <dhinakaran.pandiyan@intel.com>
Cc: "Vivi, Rodrigo" <rodrigo.vivi@intel.com>
Subject: Re: [igt-dev] [PATCH i-g-t 13/14] tests/psr: Eliminate storing pointers for igt_plane_type.
Date: Wed, 9 May 2018 23:46:13 +0000	[thread overview]
Message-ID: <265d9bc0b2a9b0e95eeac7199581c28d06adea99.camel@intel.com> (raw)
In-Reply-To: <20180509173746.23405-14-dhinakaran.pandiyan@intel.com>

On Wed, 2018-05-09 at 10:37 -0700, Dhinakaran Pandiyan wrote:
> After the initial plane setup, only the test plane is required. One
> exception is clean_up where the primary is required, but a call to
> igt_output_get_plane_type() can get us that.
> 
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>

Reviewed-by: Jose Roberto de Souza <jose.souza@intel.com>

So we don't have a test that test at the same time changs in primary,
sprite and cursor!? =/

> ---
>  tests/kms_psr_sink_crc.c | 73 +++++++++++++++++++++-----------------
> ----------
>  1 file changed, 32 insertions(+), 41 deletions(-)
> 
> diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
> index de905d2e..152ea045 100644
> --- a/tests/kms_psr_sink_crc.c
> +++ b/tests/kms_psr_sink_crc.c
> @@ -62,14 +62,13 @@ static const char *op_str(enum operations op)
>  typedef struct {
>  	int drm_fd;
>  	int debugfs_fd;
> -	int test_plane;
>  	enum operations op;
>  	uint32_t devid;
>  	uint32_t crtc_id;
>  	igt_display_t display;
>  	drm_intel_bufmgr *bufmgr;
>  	struct igt_fb fb_green, fb_white;
> -	igt_plane_t *primary, *sprite, *cursor;
> +	igt_plane_t *test_plane;
>  	int mod_size;
>  	int mod_stride;
>  	drmModeModeInfo *mode;
> @@ -265,7 +264,7 @@ static bool drrs_disabled(data_t *data)
>  static void run_test(data_t *data)
>  {
>  	uint32_t handle = data->fb_white.gem_handle;
> -	igt_plane_t *test_plane;
> +	igt_plane_t *test_plane = data->test_plane;
>  	void *ptr;
>  	char ref_crc[CRC_LEN];
>  	char crc[CRC_LEN];
> @@ -281,18 +280,13 @@ static void run_test(data_t *data)
>  	assert_or_manual(is_green(ref_crc), "screen GREEN");
>  
>  	/* Setting a secondary fb/plane */
> -	switch (data->test_plane) {
> -	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);
>  
>  	/* Confirm it is not Green anymore */
>  	igt_assert(wait_psr_entry(data));
>  	get_sink_crc(data, ref_crc);
> -	if (data->test_plane == DRM_PLANE_TYPE_PRIMARY)
> +	if (test_plane->type == 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");
> @@ -351,21 +345,22 @@ 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 == DRM_PLANE_TYPE_OVERLAY)
> -		igt_plane_set_fb(data->sprite, NULL);
> -	if (data->test_plane == DRM_PLANE_TYPE_CURSOR)
> -		igt_plane_set_fb(data->cursor, NULL);
> +	igt_plane_t *primary;
>  
> +	primary = igt_output_get_plane_type(data->output,
> +					    DRM_PLANE_TYPE_PRIMARY);
> +	igt_plane_set_fb(primary, NULL);
> +	igt_plane_set_fb(data->test_plane, NULL);
>  	igt_display_commit(&data->display);
>  
>  	igt_remove_fb(data->drm_fd, &data->fb_green);
>  	igt_remove_fb(data->drm_fd, &data->fb_white);
>  }
>  
> -static void setup_test_plane(data_t *data)
> +static void setup_test_plane(data_t *data, int test_plane)
>  {
>  	uint32_t white_h, white_v;
> +	igt_plane_t *primary, *sprite, *cursor;
>  
>  	igt_create_color_fb(data->drm_fd,
>  			    data->mode->hdisplay, data->mode-
> >vdisplay,
> @@ -374,8 +369,10 @@ static void setup_test_plane(data_t *data)
>  			    0.0, 1.0, 0.0,
>  			    &data->fb_green);
>  
> -	data->primary = igt_output_get_plane_type(data->output,
> DRM_PLANE_TYPE_PRIMARY);
> -	igt_plane_set_fb(data->primary, NULL);
> +	primary = igt_output_get_plane_type(data->output,
> +					    DRM_PLANE_TYPE_PRIMARY);
> +	igt_plane_set_fb(primary, NULL);
> +	data->test_plane = primary;
>  
>  	white_h = data->mode->hdisplay;
>  	white_v = data->mode->vdisplay;
> @@ -384,16 +381,14 @@ static void setup_test_plane(data_t *data)
>  	data->mod_size = white_h * white_v;
>  	data->mod_stride = white_h * 4;
>  
> -	switch (data->test_plane) {
> +	switch (test_plane) {
>  	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
> -		 */
> +		sprite = igt_output_get_plane_type(data->output,
> +						   DRM_PLANE_TYPE_OV
> ERLAY);
> +		igt_plane_set_fb(sprite, NULL);
>  		white_h = white_h/2;
>  		white_v = white_v/2;
> +		data->test_plane = sprite;
>  	case DRM_PLANE_TYPE_PRIMARY:
>  		igt_create_color_fb(data->drm_fd,
>  				    white_h, white_v,
> @@ -403,20 +398,21 @@ static void setup_test_plane(data_t *data)
>  				    &data->fb_white);
>  		break;
>  	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);
> +		cursor = igt_output_get_plane_type(data->output,
> +						   DRM_PLANE_TYPE_CU
> RSOR);
> +		igt_plane_set_fb(cursor, NULL);
>  		create_cursor_fb(data);
> -		igt_plane_set_position(data->cursor, 0, 0);
> +		igt_plane_set_position(cursor, 0, 0);
>  
>  		/* Cursor is 64 x 64, ignoring pitch and bbp again
> */
>  		data->mod_size = 64 * 64;
> +		data->test_plane = cursor;
>  		break;
>  	}
>  
>  	igt_display_commit(&data->display);
>  
> -	igt_plane_set_fb(data->primary, &data->fb_green);
> +	igt_plane_set_fb(primary, &data->fb_green);
>  	igt_display_commit(&data->display);
>  }
>  
> @@ -477,13 +473,13 @@ int main(int argc, char *argv[])
>  	}
>  
>  	igt_subtest("basic") {
> -		setup_test_plane(&data);
> +		setup_test_plane(&data, DRM_PLANE_TYPE_PRIMARY);
>  		igt_assert(wait_psr_entry(&data));
>  		test_cleanup(&data);
>  	}
>  
>  	igt_subtest("no_drrs") {
> -		setup_test_plane(&data);
> +		setup_test_plane(&data, DRM_PLANE_TYPE_PRIMARY);
>  		igt_assert(wait_psr_entry(&data));
>  		igt_assert(drrs_disabled(&data));
>  		test_cleanup(&data);
> @@ -491,9 +487,8 @@ int main(int argc, char *argv[])
>  
>  	for (op = PAGE_FLIP; op <= RENDER; op++) {
>  		igt_subtest_f("primary_%s", op_str(op)) {
> -			data.test_plane = DRM_PLANE_TYPE_PRIMARY;
>  			data.op = op;
> -			setup_test_plane(&data);
> +			setup_test_plane(&data,
> DRM_PLANE_TYPE_PRIMARY);
>  			igt_assert(wait_psr_entry(&data));
>  			run_test(&data);
>  			test_cleanup(&data);
> @@ -502,9 +497,8 @@ 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 = DRM_PLANE_TYPE_OVERLAY;
>  			data.op = op;
> -			setup_test_plane(&data);
> +			setup_test_plane(&data,
> DRM_PLANE_TYPE_OVERLAY);
>  			igt_assert(wait_psr_entry(&data));
>  			run_test(&data);
>  			test_cleanup(&data);
> @@ -513,9 +507,8 @@ 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 = DRM_PLANE_TYPE_CURSOR;
>  			data.op = op;
> -			setup_test_plane(&data);
> +			setup_test_plane(&data,
> DRM_PLANE_TYPE_CURSOR);
>  			igt_assert(wait_psr_entry(&data));
>  			run_test(&data);
>  			test_cleanup(&data);
> @@ -523,9 +516,8 @@ int main(int argc, char *argv[])
>  	}
>  
>  	igt_subtest_f("dpms") {
> -		data.test_plane = DRM_PLANE_TYPE_PRIMARY;
>  		data.op = RENDER;
> -		setup_test_plane(&data);
> +		setup_test_plane(&data, DRM_PLANE_TYPE_PRIMARY);
>  		igt_assert(wait_psr_entry(&data));
>  		dpms_off_on(data);
>  		run_test(&data);
> @@ -533,9 +525,8 @@ int main(int argc, char *argv[])
>  	}
>  
>  	igt_subtest_f("suspend") {
> -		data.test_plane = DRM_PLANE_TYPE_CURSOR;
>  		data.op = PLANE_ONOFF;
> -		setup_test_plane(&data);
> +		setup_test_plane(&data, DRM_PLANE_TYPE_CURSOR);
>  		igt_assert(wait_psr_entry(&data));
>  		igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
>  					      SUSPEND_TEST_NONE);
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2018-05-09 23:46 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-09 17:37 [igt-dev] [PATCH i-g-t 00/14] PSR test improvements Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 01/14] tests/psr: Print the reason for skipping when sink lacks PSR support Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 02/14] tests/psr: Remove "psr_" prefix from basic and drrs subtests Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 03/14] tests/psr: Rename psr_active() to psr_enabled() Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 04/14] tests/psr: Store the debugfs file descriptor Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 05/14] tests/psr: Assert sink CRC length and make use of igt_sysfs_read() Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 06/14] tests/psr: Optimize check for green frame Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 07/14] tests/psr: Kill MMAP_GTT_WAITING Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 08/14] tests/psr: Merge PSR dpms and suspend variants Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 09/14] tests/psr: Remove delay between dpms toggle Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 10/14] tests/psr: Check for drrs status only after checking for PSR Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 11/14] tests/sink_crc_basic: Debug print CRC values Dhinakaran Pandiyan
2018-05-09 23:46   ` Souza, Jose
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 12/14] tests/psr: Get rid of global variable running_with_psr_disabled Dhinakaran Pandiyan
2018-05-09 23:12   ` Souza, Jose
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 13/14] tests/psr: Eliminate storing pointers for igt_plane_type Dhinakaran Pandiyan
2018-05-09 23:46   ` Souza, Jose [this message]
2018-05-10  0:30     ` Dhinakaran Pandiyan
2018-05-09 17:37 ` [igt-dev] [PATCH i-g-t 14/14] tests/psr: Pass data_t pointer to dpms_off_on Dhinakaran Pandiyan
2018-05-09 23:34   ` Souza, Jose
2018-05-09 19:24 ` [igt-dev] ✓ Fi.CI.BAT: success for PSR test improvements Patchwork
2018-05-09 22:32 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2018-05-14 17:38 ` [igt-dev] [PATCH i-g-t 00/14] " Dhinakaran Pandiyan
2018-05-15  7:34   ` Petri Latvala
2018-05-15 22:29     ` Dhinakaran Pandiyan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=265d9bc0b2a9b0e95eeac7199581c28d06adea99.camel@intel.com \
    --to=jose.souza@intel.com \
    --cc=dhinakaran.pandiyan@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=rodrigo.vivi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.