From: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
To: "Souza, Jose" <jose.souza@intel.com>,
"igt-dev@lists.freedesktop.org" <igt-dev@lists.freedesktop.org>
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, 09 May 2018 17:30:17 -0700 [thread overview]
Message-ID: <1525912217.3123.50.camel@intel.com> (raw)
In-Reply-To: <265d9bc0b2a9b0e95eeac7199581c28d06adea99.camel@intel.com>
On Wed, 2018-05-09 at 23:46 +0000, Souza, Jose wrote:
> 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!? =/
None as of now. I am thinking of extending the basic subtest to do a
flip and a cursor move.
Thanks for the reviews.
>
> >
> > ---
> > 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
next prev parent reply other threads:[~2018-05-10 0:05 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
2018-05-10 0:30 ` Dhinakaran Pandiyan [this message]
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=1525912217.3123.50.camel@intel.com \
--to=dhinakaran.pandiyan@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=jose.souza@intel.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox