Re: [Intel-gfx] [PATCH 6/7] igt/kms_frontbuffer_tracking: Add Y-tiling support
Em Sáb, 2017-03-18 às 00:45 +0530, Praveen Paneri escreveu: > Allow tests to create Y-tiled bufferes using a separate > argument to the test without increasing the number of > subtests. > > Signed-off-by: Praveen Paneri > --- > tests/kms_frontbuffer_tracking.c | 46 +++--- > -- > 1 file changed, 27 insertions(+), 19 deletions(-) > > diff --git a/tests/kms_frontbuffer_tracking.c > b/tests/kms_frontbuffer_tracking.c > index 03c7710..0597f10 100644 > --- a/tests/kms_frontbuffer_tracking.c > +++ b/tests/kms_frontbuffer_tracking.c > @@ -250,6 +250,7 @@ struct { > int only_pipes; > int shared_fb_x_offset; > int shared_fb_y_offset; > + uint64_t tiling; > } opt = { > .check_status = true, > .check_crc = true, > @@ -262,6 +263,7 @@ struct { > .only_pipes = PIPE_COUNT, > .shared_fb_x_offset = 500, > .shared_fb_y_offset = 500, > + .tiling = LOCAL_I915_FORMAT_MOD_X_TILED, > }; > > struct modeset_params { > @@ -576,7 +578,7 @@ static void create_fb(enum pixel_format pformat, > int width, int height, > if (plane == PLANE_CUR) > tiling_for_size = LOCAL_DRM_FORMAT_MOD_NONE; > else > - tiling_for_size = LOCAL_I915_FORMAT_MOD_X_TILED; > + tiling_for_size = opt.tiling; > > igt_calc_fb_size(drm.fd, width, height, bpp, > tiling_for_size, &size, > &stride); > @@ -708,7 +710,7 @@ static void create_shared_fb(enum pixel_format > format) > > big_h = prim_h + scnd_h + offs_h + opt.shared_fb_y_offset; > > - create_fb(format, big_w, big_h, > LOCAL_I915_FORMAT_MOD_X_TILED, > + create_fb(format, big_w, big_h, opt.tiling, > PLANE_PRI, &s->big); > } > > @@ -742,16 +744,16 @@ static void create_fbs(enum pixel_format > format) > > create_fb(format, prim_mode_params.mode->hdisplay, > prim_mode_params.mode->vdisplay, > - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_PRI, &s- > >prim_pri); > + opt.tiling, PLANE_PRI, &s->prim_pri); > create_fb(format, prim_mode_params.cursor.w, > prim_mode_params.cursor.h, > LOCAL_DRM_FORMAT_MOD_NONE, > PLANE_CUR, &s->prim_cur); > create_fb(format, prim_mode_params.sprite.w, > - prim_mode_params.sprite.h, > LOCAL_I915_FORMAT_MOD_X_TILED, > + prim_mode_params.sprite.h, opt.tiling, > PLANE_SPR, &s->prim_spr); > > create_fb(format, offscreen_fb.w, offscreen_fb.h, > - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_PRI, &s- > >offscreen); > + opt.tiling, PLANE_PRI, &s->offscreen); > > create_shared_fb(format); > > @@ -760,11 +762,11 @@ static void create_fbs(enum pixel_format > format) > > create_fb(format, scnd_mode_params.mode->hdisplay, > scnd_mode_params.mode->vdisplay, > - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_PRI, &s- > >scnd_pri); > + opt.tiling, PLANE_PRI, &s->scnd_pri); > create_fb(format, scnd_mode_params.cursor.w, > scnd_mode_params.cursor.h, > LOCAL_DRM_FORMAT_MOD_NONE, PLANE_CUR, &s- > >scnd_cur); > create_fb(format, scnd_mode_params.sprite.w, > scnd_mode_params.sprite.h, > - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_SPR, &s- > >scnd_spr); > + opt.tiling, PLANE_SPR, &s->scnd_spr); > } > > static bool set_mode_for_params(struct modeset_params *params) > @@ -1241,7 +1243,7 @@ static void init_blue_crc(enum pixel_format > format, bool mandatory_sink_crc) > > create_fb(format, prim_mode_params.mode->hdisplay, > prim_mode_params.mode->vdisplay, > - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_PRI, &blue); > + opt.tiling, PLANE_PRI, &blue); > > fill_fb(&blue, COLOR_PRIM_BG); > > @@ -1276,7 +1278,7 @@ static void init_crcs(enum pixel_format format, > for (r = 0; r < pattern->n_rects; r++) > create_fb(format, prim_mode_params.mode->hdisplay, > prim_mode_params.mode->vdisplay, > - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_PRI, > &tmp_fbs[r]); > + opt.tiling, PLANE_PRI, &tmp_fbs[r]); > > for (r = 0; r < pattern->n_rects; r++) > fill_fb(&tmp_fbs[r], COLOR_PRIM_BG); > @@ -2374,7 +2376,7 @@ static void flip_subtest(const struct test_mode > *t) > prepare_subtest(t, pattern); > > create_fb(t->format, params->fb.fb->width, params->fb.fb- > >height, > - LOCAL_I915_FORMAT_MOD_X_TILED, t->plane, &fb2); > + opt.tiling, t->plane, &fb2); > fill_fb(&fb2, bg_color); > orig_fb = params->fb.fb; > > @@ -2420,7 +2422,7 @@ static void fliptrack_subtest(const struct > test_mode *t, enum flip_type type) > prepare_subtest(t, pattern); > > create_fb(t->format, params->fb.fb->width, params->fb.fb- > >height, > - LOCAL_
[Intel-gfx] [PATCH 6/7] igt/kms_frontbuffer_tracking: Add Y-tiling support
Allow tests to create Y-tiled bufferes using a separate argument to the test without increasing the number of subtests. Signed-off-by: Praveen Paneri --- tests/kms_frontbuffer_tracking.c | 46 +++- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c index 03c7710..0597f10 100644 --- a/tests/kms_frontbuffer_tracking.c +++ b/tests/kms_frontbuffer_tracking.c @@ -250,6 +250,7 @@ struct { int only_pipes; int shared_fb_x_offset; int shared_fb_y_offset; + uint64_t tiling; } opt = { .check_status = true, .check_crc = true, @@ -262,6 +263,7 @@ struct { .only_pipes = PIPE_COUNT, .shared_fb_x_offset = 500, .shared_fb_y_offset = 500, + .tiling = LOCAL_I915_FORMAT_MOD_X_TILED, }; struct modeset_params { @@ -576,7 +578,7 @@ static void create_fb(enum pixel_format pformat, int width, int height, if (plane == PLANE_CUR) tiling_for_size = LOCAL_DRM_FORMAT_MOD_NONE; else - tiling_for_size = LOCAL_I915_FORMAT_MOD_X_TILED; + tiling_for_size = opt.tiling; igt_calc_fb_size(drm.fd, width, height, bpp, tiling_for_size, &size, &stride); @@ -708,7 +710,7 @@ static void create_shared_fb(enum pixel_format format) big_h = prim_h + scnd_h + offs_h + opt.shared_fb_y_offset; - create_fb(format, big_w, big_h, LOCAL_I915_FORMAT_MOD_X_TILED, + create_fb(format, big_w, big_h, opt.tiling, PLANE_PRI, &s->big); } @@ -742,16 +744,16 @@ static void create_fbs(enum pixel_format format) create_fb(format, prim_mode_params.mode->hdisplay, prim_mode_params.mode->vdisplay, - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_PRI, &s->prim_pri); + opt.tiling, PLANE_PRI, &s->prim_pri); create_fb(format, prim_mode_params.cursor.w, prim_mode_params.cursor.h, LOCAL_DRM_FORMAT_MOD_NONE, PLANE_CUR, &s->prim_cur); create_fb(format, prim_mode_params.sprite.w, - prim_mode_params.sprite.h, LOCAL_I915_FORMAT_MOD_X_TILED, + prim_mode_params.sprite.h, opt.tiling, PLANE_SPR, &s->prim_spr); create_fb(format, offscreen_fb.w, offscreen_fb.h, - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_PRI, &s->offscreen); + opt.tiling, PLANE_PRI, &s->offscreen); create_shared_fb(format); @@ -760,11 +762,11 @@ static void create_fbs(enum pixel_format format) create_fb(format, scnd_mode_params.mode->hdisplay, scnd_mode_params.mode->vdisplay, - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_PRI, &s->scnd_pri); + opt.tiling, PLANE_PRI, &s->scnd_pri); create_fb(format, scnd_mode_params.cursor.w, scnd_mode_params.cursor.h, LOCAL_DRM_FORMAT_MOD_NONE, PLANE_CUR, &s->scnd_cur); create_fb(format, scnd_mode_params.sprite.w, scnd_mode_params.sprite.h, - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_SPR, &s->scnd_spr); + opt.tiling, PLANE_SPR, &s->scnd_spr); } static bool set_mode_for_params(struct modeset_params *params) @@ -1241,7 +1243,7 @@ static void init_blue_crc(enum pixel_format format, bool mandatory_sink_crc) create_fb(format, prim_mode_params.mode->hdisplay, prim_mode_params.mode->vdisplay, - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_PRI, &blue); + opt.tiling, PLANE_PRI, &blue); fill_fb(&blue, COLOR_PRIM_BG); @@ -1276,7 +1278,7 @@ static void init_crcs(enum pixel_format format, for (r = 0; r < pattern->n_rects; r++) create_fb(format, prim_mode_params.mode->hdisplay, prim_mode_params.mode->vdisplay, - LOCAL_I915_FORMAT_MOD_X_TILED, PLANE_PRI, &tmp_fbs[r]); + opt.tiling, PLANE_PRI, &tmp_fbs[r]); for (r = 0; r < pattern->n_rects; r++) fill_fb(&tmp_fbs[r], COLOR_PRIM_BG); @@ -2374,7 +2376,7 @@ static void flip_subtest(const struct test_mode *t) prepare_subtest(t, pattern); create_fb(t->format, params->fb.fb->width, params->fb.fb->height, - LOCAL_I915_FORMAT_MOD_X_TILED, t->plane, &fb2); + opt.tiling, t->plane, &fb2); fill_fb(&fb2, bg_color); orig_fb = params->fb.fb; @@ -2420,7 +2422,7 @@ static void fliptrack_subtest(const struct test_mode *t, enum flip_type type) prepare_subtest(t, pattern); create_fb(t->format, params->fb.fb->width, params->fb.fb->height, - LOCAL_I915_FORMAT_MOD_X_TILED, t->plane, &fb2); + opt.tiling, t->plane, &fb2); fill_fb(&fb2, COLOR_PRIM_BG); orig_fb = params->fb.fb; @@ -2631,7 +2633,7 @@ static void fullscre