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 <praveen.paneri@xxxxxxxxx> > --- > 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 fullscreen_plane_subtest(const > struct test_mode *t) > prepare_subtest(t, pattern); > > rect = pattern->get_rect(¶ms->fb, 0); > - create_fb(t->format, rect.w, rect.h, > LOCAL_I915_FORMAT_MOD_X_TILED, > + create_fb(t->format, rect.w, rect.h, opt.tiling, > t->plane, &fullscreen_fb); > /* Call pick_color() again since PRI and SPR may not support > the same > * pixel formats. */ > @@ -2710,7 +2712,7 @@ static void scaledprimary_subtest(const struct > test_mode *t) > old_fb = params->fb.fb; > > create_fb(t->format, params->fb.fb->width, params->fb.fb- > >height, > - LOCAL_I915_FORMAT_MOD_X_TILED, > + opt.tiling, > t->plane, &new_fb); > fill_fb(&new_fb, COLOR_BLUE); > > @@ -2820,7 +2822,7 @@ static void modesetfrombusy_subtest(const > struct test_mode *t) > prepare_subtest(t, NULL); > > 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); > > start_busy_thread(params->fb.fb); > @@ -2925,7 +2927,7 @@ static void farfromfence_subtest(const struct > test_mode *t) > target = pick_target(t, params); > > create_fb(t->format, params->mode->hdisplay, max_height, > - LOCAL_I915_FORMAT_MOD_X_TILED, t->plane, > &tall_fb); > + opt.tiling, t->plane, &tall_fb); > > fill_fb(&tall_fb, COLOR_PRIM_BG); > > @@ -3000,7 +3002,7 @@ static void badstride_subtest(const struct > test_mode *t) > old_fb = params->fb.fb; > > create_fb(t->format, params->fb.fb->width + 4096, params- > >fb.fb->height, > - LOCAL_I915_FORMAT_MOD_X_TILED, t->plane, > &wide_fb); > + opt.tiling, t->plane, &wide_fb); > igt_assert(wide_fb.stride > 16384); > > fill_fb(&wide_fb, COLOR_PRIM_BG); > @@ -3067,7 +3069,7 @@ static void stridechange_subtest(const struct > test_mode *t) > old_fb = params->fb.fb; > > create_fb(t->format, params->fb.fb->width + 512, params- > >fb.fb->height, > - LOCAL_I915_FORMAT_MOD_X_TILED, t->plane, &new_fb); > + opt.tiling, t->plane, &new_fb); > fill_fb(&new_fb, COLOR_PRIM_BG); > > igt_assert(old_fb->stride != new_fb.stride); > @@ -3186,7 +3188,7 @@ static void basic_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); > fb1 = params->fb.fb; > > for (r = 0, method = 0; method < IGT_DRAW_METHOD_COUNT; > method++, r++) { > @@ -3255,6 +3257,10 @@ static int opt_handler(int option, int > option_index, void *data) > igt_assert_eq(opt.only_pipes, PIPE_COUNT); > opt.only_pipes = PIPE_DUAL; > break; > + case 'l': > + igt_assert_eq(strtol(optarg, NULL, 0), > I915_TILING_Y); ??? > + opt.tiling = > igt_fb_tiling_to_mod((uint64_t)strtol(optarg, NULL, 0)); This looks a little bit awkward. Please make the option just be a string: --tiling x, --tiling y, so later we can add --tiling yf and such. With this, we'll be able to avoid the igt_fb_tiling_to_mod call. > + break; > default: > igt_assert(false); > } > @@ -3274,7 +3280,8 @@ const char *help_str = > " --shared-fb-x offset Use 'offset' as the X offset for the > shared FB\n" > " --shared-fb-y offset Use 'offset' as the Y offset for the > shared FB\n" > " --1p-only Only run subtests that use 1 pipe\n" > -" --2p-only Only run subtests that use 2 > pipes\n"; > +" --2p-only Only run subtests that use 2 pipes\n" > +" --tiling give 2 for y-tiled, default is x- > tiled\n"; Keep the same coding style, please: no tabs are being used here. > > static const char *pipes_str(int pipes) > { > @@ -3413,6 +3420,7 @@ int main(int argc, char *argv[]) > { "shared-fb-y", 1, 0, 'y'}, > { "1p-only", 0, 0, '1'}, > { "2p-only", 0, 0, '2'}, > + { "tiling", 1, 0, 'l'}, > { 0, 0, 0, 0 } > }; > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx