diff options
-rw-r--r-- | lib/drmtest.c | 16 | ||||
-rw-r--r-- | lib/drmtest.h | 4 | ||||
-rw-r--r-- | tests/gem_stress.c | 17 |
3 files changed, 22 insertions, 15 deletions
diff --git a/lib/drmtest.c b/lib/drmtest.c index 521a38a2..cc946411 100644 --- a/lib/drmtest.c +++ b/lib/drmtest.c @@ -332,6 +332,22 @@ void drmtest_stop_signal_helper(void) signal_helper = -1; } +/* other helpers */ +void drmtest_permute_array(void *array, unsigned size, + void (*exchange_func)(void *array, + unsigned i, + unsigned j)) +{ + int i; + + for (i = size - 1; i > 1; i--) { + /* yes, not perfectly uniform, who cares */ + long l = random() % (i +1); + if (i != l) + exchange_func(array, i, l); + } +} + /* mappable aperture trasher helper */ drm_intel_bo **trash_bos; int num_trash_bos; diff --git a/lib/drmtest.h b/lib/drmtest.h index 3a3bc9aa..23d6f089 100644 --- a/lib/drmtest.h +++ b/lib/drmtest.h @@ -55,6 +55,10 @@ uint64_t gem_mappable_aperture_size(void); /* generally useful helpers */ void drmtest_fork_signal_helper(void); void drmtest_stop_signal_helper(void); +void drmtest_permute_array(void *array, unsigned size, + void (*exchange_func)(void *array, + unsigned i, + unsigned j)); /* helpers based upon the libdrm buffer manager */ void drmtest_init_aperture_trashers(drm_intel_bufmgr *bufmgr); diff --git a/tests/gem_stress.c b/tests/gem_stress.c index 00ebfbd9..3acaaa49 100644 --- a/tests/gem_stress.c +++ b/tests/gem_stress.c @@ -492,19 +492,6 @@ static void init_buffer(struct scratch_buf *buf, unsigned size) buf->num_tiles = options.tiles_per_buf; } -static void permute_array(void *array, unsigned size, - void (*exchange_func)(void *array, unsigned i, unsigned j)) -{ - int i; - - for (i = size - 1; i > 1; i--) { - /* yes, not perfectly uniform, who cares */ - long l = random() % (i +1); - if (i != l) - exchange_func(array, i, l); - } -} - static void exchange_buf(void *array, unsigned i, unsigned j) { struct scratch_buf *buf_arr, tmp; @@ -521,7 +508,7 @@ static void init_set(unsigned set) long int r; int i; - permute_array(buffers[set], num_buffers, exchange_buf); + drmtest_permute_array(buffers[set], num_buffers, exchange_buf); if (current_set == 1 && options.gpu_busy_load == 0) { gpu_busy_load++; @@ -924,7 +911,7 @@ int main(int argc, char **argv) for (j = 0; j < num_total_tiles; j++) current_permutation[j] = j; - permute_array(current_permutation, num_total_tiles, exchange_uint); + drmtest_permute_array(current_permutation, num_total_tiles, exchange_uint); copy_tiles(current_permutation); |