From bfa23b47a57a89eb8adcde32ffe2849f0d2aac2e Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sun, 5 Jun 2011 21:34:07 +0100 Subject: [PATCH] gem_stress: Add extra passes to intial render copyfunc verification ...and allow for cpu maps! --- tests/gem_stress.c | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/tests/gem_stress.c b/tests/gem_stress.c index 722d08b..a67fc15 100644 --- a/tests/gem_stress.c +++ b/tests/gem_stress.c @@ -740,27 +740,40 @@ static void check_render_copyfunc(void) { struct scratch_buf src, dst; uint32_t *ptr; - int i, j; + int i, j, pass; init_buffer(&src, options.scratch_buf_size); init_buffer(&dst, options.scratch_buf_size); - memset(src.data, 0xff, options.scratch_buf_size); - for (j = 0; j < TILE_SIZE; j++) { - ptr = (uint32_t*)((char *)src.data + j * src.stride); - for (i = 0; i < TILE_SIZE; i++) - ptr[i] = j * TILE_SIZE + i; - } + for (pass = 0; pass < 16; pass++) { + int sx = random() % (buf_width(&src)-TILE_SIZE); + int sy = random() % (buf_height(&src)-TILE_SIZE); + int dx = random() % (buf_width(&dst)-TILE_SIZE); + int dy = random() % (buf_height(&dst)-TILE_SIZE); - render_copyfunc(&src, 0, 0, &dst, 0, 0, 0); + if (options.use_cpu_maps) + set_to_cpu_domain(&src, 1); - for (j = 0; j < TILE_SIZE; j++) { - ptr = (uint32_t*)((char *)dst.data + j * dst.stride); - for (i = 0; i < TILE_SIZE; i++) - if (ptr[i] != j * TILE_SIZE + i) { - printf("render copyfunc mismatch at (%d, %d): found %d, expected %d\n", - i, j, ptr[i], j*TILE_SIZE + i); - } + memset(src.data, 0xff, options.scratch_buf_size); + for (j = 0; j < TILE_SIZE; j++) { + ptr = (uint32_t*)((char *)src.data + sx*4 + (sy+j) * src.stride); + for (i = 0; i < TILE_SIZE; i++) + ptr[i] = j * TILE_SIZE + i; + } + + render_copyfunc(&src, sx, sy, &dst, dx, dy, 0); + + if (options.use_cpu_maps) + set_to_cpu_domain(&dst, 0); + + for (j = 0; j < TILE_SIZE; j++) { + ptr = (uint32_t*)((char *)dst.data + dx*4 + (dy+j) * dst.stride); + for (i = 0; i < TILE_SIZE; i++) + if (ptr[i] != j * TILE_SIZE + i) { + printf("render copyfunc mismatch at (%d, %d): found %d, expected %d\n", + i, j, ptr[i], j*TILE_SIZE + i); + } + } } } -- 2.7.4