From daf380d489a8baf62a54638997b0e0096fe13e73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 24 Apr 2022 07:19:13 -0400 Subject: [PATCH] radeonsi/test_image_copy: simplify texture size generation Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- .../radeonsi/si_test_image_copy_region.c | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_test_image_copy_region.c b/src/gallium/drivers/radeonsi/si_test_image_copy_region.c index 7aa47115c58..e34c195ea57 100644 --- a/src/gallium/drivers/radeonsi/si_test_image_copy_region.c +++ b/src/gallium/drivers/radeonsi/si_test_image_copy_region.c @@ -153,19 +153,10 @@ static const char *array_mode_to_string(struct si_screen *sscreen, struct radeon } } -static unsigned generate_max_tex_side(unsigned max_tex_side) +static unsigned random_max_tex_size(void) { - switch (rand() % 4) { - case 0: - /* Try to hit large sizes in 1/4 of the cases. */ - return max_tex_side; - case 1: - /* Try to hit 1D tiling in 1/4 of the cases. */ - return 128; - default: - /* Try to hit common sizes in 2/4 of the cases. */ - return 2048; - } + /* Try to hit microtiling in 1/2 of the cases. */ + return rand() & 1 ? 128 : 4096; } void si_test_image_copy_region(struct si_screen *sscreen) @@ -174,11 +165,9 @@ void si_test_image_copy_region(struct si_screen *sscreen) struct pipe_context *ctx = screen->context_create(screen, NULL, 0); struct si_context *sctx = (struct si_context *)ctx; uint64_t max_alloc_size; - unsigned i, iterations, num_partial_copies, max_tex_side; + unsigned i, iterations, num_partial_copies; unsigned num_pass = 0, num_fail = 0; - max_tex_side = screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_2D_SIZE); - /* Max 128 MB allowed for both textures. */ max_alloc_size = 128 * 1024 * 1024; @@ -211,7 +200,7 @@ void si_test_image_copy_region(struct si_screen *sscreen) tsrc.format = tdst.format = choose_format(); - max_tex_side_gen = generate_max_tex_side(max_tex_side); + max_tex_side_gen = random_max_tex_size(); max_tex_layers = rand() % 4 ? 1 : 5; tsrc.width0 = (rand() % max_tex_side_gen) + 1; @@ -221,7 +210,7 @@ void si_test_image_copy_region(struct si_screen *sscreen) if (tsrc.format == PIPE_FORMAT_G8R8_B8R8_UNORM) tsrc.width0 = align(tsrc.width0, 2); - max_tex_side_gen = generate_max_tex_side(max_tex_side); + max_tex_side_gen = random_max_tex_size(); max_tex_layers = rand() % 4 ? 1 : 5; tdst.width0 = (rand() % max_tex_side_gen) + 1;