Em Sex, 2017-04-28 às 20:07 +0530, Praveen Paneri escreveu: > Allow tests to create Y-tiled bufferes using a separate > argument to the test without increasing the number of > subtests. > > v2: Changed tiling option to string (Paulo) I had some minor nitpicks for this patch: reshuffling parameters between lines and the way we handle the new argument and its help message. Instead of requesting those trivial changes and creating yet another review round-trip I just went ahead and implemented them as v3. I hope you're fine with this approach. The patch can be applied without the rest of the patches in the series, so I applied it & pushed to IGT with my nitpicks and R-B. > > Signed-off-by: Praveen Paneri <praveen.paneri@xxxxxxxxx> > --- > tests/kms_frontbuffer_tracking.c | 48 ++++++++++++++++++++++++---- > ------------ > 1 file changed, 29 insertions(+), 19 deletions(-) > > diff --git a/tests/kms_frontbuffer_tracking.c > b/tests/kms_frontbuffer_tracking.c > index 7cea4de..62ae33a 100644 > --- a/tests/kms_frontbuffer_tracking.c > +++ b/tests/kms_frontbuffer_tracking.c > @@ -252,6 +252,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, > @@ -264,6 +265,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 { > @@ -578,7 +580,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); > @@ -710,7 +712,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); > } > > @@ -744,16 +746,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); > > @@ -762,11 +764,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) > @@ -1252,7 +1254,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); > > @@ -1287,7 +1289,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); > @@ -2386,7 +2388,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; > > @@ -2432,7 +2434,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; > > @@ -2643,7 +2645,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. */ > @@ -2722,7 +2724,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); > > @@ -2832,7 +2834,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); > @@ -2937,7 +2939,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); > > @@ -3012,7 +3014,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); > @@ -3079,7 +3081,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); > @@ -3198,7 +3200,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++) { > @@ -3267,6 +3269,12 @@ 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': > + if (!strncmp(optarg, "y", 1)) > + opt.tiling = LOCAL_I915_FORMAT_MOD_Y_TILED; > + else > + opt.tiling = LOCAL_I915_FORMAT_MOD_X_TILED; > + break; > default: > igt_assert(false); > } > @@ -3286,7 +3294,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 Select tiling mode-'x' or 'y'\n"; > > static const char *pipes_str(int pipes) > { > @@ -3425,6 +3434,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