mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-13 02:46:23 +00:00
kms_frontbuffer_tracking: use all drawing methods on multidraw_subtest
Instead of having a single pair of methods per subtest. Having this in pairs is not very useful since we end doing all the drawing methods per subtest anyway. This saves a few modesets, which makes eDP slightly faster - about 22s on my local machine. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
This commit is contained in:
parent
b53bcf789b
commit
f62a683acd
@ -1893,7 +1893,7 @@ static void draw_subtest(const struct test_mode *t)
|
|||||||
* METHOD
|
* METHOD
|
||||||
* This is just like the draw subtest, but now we keep alternating between two
|
* This is just like the draw subtest, but now we keep alternating between two
|
||||||
* drawing methods. Each time we run multidraw_subtest we will test all the
|
* drawing methods. Each time we run multidraw_subtest we will test all the
|
||||||
* possible pairs containing t->method.
|
* possible pairs of drawing methods.
|
||||||
*
|
*
|
||||||
* EXPECTED RESULTS
|
* EXPECTED RESULTS
|
||||||
* The same as the draw subtest.
|
* The same as the draw subtest.
|
||||||
@ -1912,7 +1912,7 @@ static void multidraw_subtest(const struct test_mode *t)
|
|||||||
struct draw_pattern_info *pattern;
|
struct draw_pattern_info *pattern;
|
||||||
struct modeset_params *params = pick_params(t);
|
struct modeset_params *params = pick_params(t);
|
||||||
struct fb_region *target;
|
struct fb_region *target;
|
||||||
enum igt_draw_method m, used_method;
|
enum igt_draw_method m1, m2, used_method;
|
||||||
|
|
||||||
switch (t->plane) {
|
switch (t->plane) {
|
||||||
case PLANE_PRI:
|
case PLANE_PRI:
|
||||||
@ -1929,33 +1929,38 @@ static void multidraw_subtest(const struct test_mode *t)
|
|||||||
prepare_subtest(t, pattern);
|
prepare_subtest(t, pattern);
|
||||||
target = pick_target(t, params);
|
target = pick_target(t, params);
|
||||||
|
|
||||||
for (m = 0; m < IGT_DRAW_METHOD_COUNT; m++) {
|
for (m1 = 0; m1 < IGT_DRAW_METHOD_COUNT; m1++) {
|
||||||
if (m == t->method)
|
for (m2 = 0; m2 < IGT_DRAW_METHOD_COUNT; m2++) {
|
||||||
continue;
|
if (m1 == m2)
|
||||||
|
continue;
|
||||||
|
|
||||||
igt_debug("Method %s\n", igt_draw_get_method_name(m));
|
igt_debug("Methods %s and %s\n",
|
||||||
for (r = 0; r < pattern->n_rects; r++) {
|
igt_draw_get_method_name(m1),
|
||||||
used_method = (r % 2 == 0) ? t->method : m;
|
igt_draw_get_method_name(m2));
|
||||||
|
for (r = 0; r < pattern->n_rects; r++) {
|
||||||
|
used_method = (r % 2 == 0) ? m1 : m2;
|
||||||
|
|
||||||
igt_debug("Used method %s\n",
|
igt_debug("Used method %s\n",
|
||||||
igt_draw_get_method_name(used_method));
|
igt_draw_get_method_name(used_method));
|
||||||
|
|
||||||
draw_rect(pattern, target, used_method, r);
|
draw_rect(pattern, target, used_method, r);
|
||||||
update_wanted_crc(t, &pattern->crcs[t->format][r]);
|
update_wanted_crc(t,
|
||||||
|
&pattern->crcs[t->format][r]);
|
||||||
|
|
||||||
assertions = used_method != IGT_DRAW_MMAP_GTT ?
|
assertions = used_method != IGT_DRAW_MMAP_GTT ?
|
||||||
ASSERT_LAST_ACTION_CHANGED :
|
ASSERT_LAST_ACTION_CHANGED :
|
||||||
ASSERT_NO_ACTION_CHANGE;
|
ASSERT_NO_ACTION_CHANGE;
|
||||||
if (op_disables_psr(t, used_method))
|
if (op_disables_psr(t, used_method))
|
||||||
assertions |= ASSERT_PSR_DISABLED;
|
assertions |= ASSERT_PSR_DISABLED;
|
||||||
|
|
||||||
do_assertions(assertions);
|
do_assertions(assertions);
|
||||||
|
}
|
||||||
|
|
||||||
|
fill_fb_region(target, COLOR_PRIM_BG);
|
||||||
|
|
||||||
|
update_wanted_crc(t, &blue_crcs[t->format].crc);
|
||||||
|
do_assertions(ASSERT_NO_ACTION_CHANGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
fill_fb_region(target, COLOR_PRIM_BG);
|
|
||||||
|
|
||||||
update_wanted_crc(t, &blue_crcs[t->format].crc);
|
|
||||||
do_assertions(ASSERT_NO_ACTION_CHANGE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2873,16 +2878,16 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
TEST_MODE_ITER_BEGIN(t)
|
TEST_MODE_ITER_BEGIN(t)
|
||||||
if (t.screen != SCREEN_PRIM ||
|
if (t.screen != SCREEN_PRIM ||
|
||||||
|
t.method != IGT_DRAW_BLT ||
|
||||||
(!opt.show_hidden && t.plane != PLANE_PRI) ||
|
(!opt.show_hidden && t.plane != PLANE_PRI) ||
|
||||||
(!opt.show_hidden && t.fbs != FBS_INDIVIDUAL))
|
(!opt.show_hidden && t.fbs != FBS_INDIVIDUAL))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
igt_subtest_f("%s-%s-%s-%s-multidraw-%s",
|
igt_subtest_f("%s-%s-%s-%s-multidraw",
|
||||||
feature_str(t.feature),
|
feature_str(t.feature),
|
||||||
pipes_str(t.pipes),
|
pipes_str(t.pipes),
|
||||||
plane_str(t.plane),
|
plane_str(t.plane),
|
||||||
fbs_str(t.fbs),
|
fbs_str(t.fbs))
|
||||||
igt_draw_get_method_name(t.method))
|
|
||||||
multidraw_subtest(&t);
|
multidraw_subtest(&t);
|
||||||
TEST_MODE_ITER_END
|
TEST_MODE_ITER_END
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user