tests/gem_gtt_concurrent_blit: convert to subtest infrastructure

Same treatment as for gem_cpu_concurrent_blit.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Daniel Vetter 2012-11-28 12:35:03 +01:00
parent 2a9e128b18
commit a2778575d5
2 changed files with 36 additions and 24 deletions

View File

@ -18,6 +18,7 @@ TESTS_progs_M = \
gem_cpu_concurrent_blit \
gem_cs_tlb \
gem_flink \
gem_gtt_concurrent_blit \
flip_test \
$(NULL)
@ -25,7 +26,6 @@ TESTS_progs = \
getversion \
getclient \
getstats \
gem_gtt_concurrent_blit \
gem_exec_nop \
gem_exec_big \
gem_exec_blt \

View File

@ -96,11 +96,13 @@ main(int argc, char **argv)
drm_intel_bufmgr *bufmgr;
struct intel_batchbuffer *batch;
int num_buffers = 128, max;
drm_intel_bo *src[128], *dst[128], *dummy;
drm_intel_bo *src[128], *dst[128], *dummy = NULL;
int width = 512, height = 512;
int fd;
int i;
drmtest_subtest_init(argc, argv);
fd = drm_open_any();
max = gem_aperture_size (fd) / (1024 * 1024) / 2;
@ -111,35 +113,45 @@ main(int argc, char **argv)
drm_intel_bufmgr_gem_enable_reuse(bufmgr);
batch = intel_batchbuffer_alloc(bufmgr, intel_get_drm_devid(fd));
for (i = 0; i < num_buffers; i++) {
src[i] = create_bo(bufmgr, i, width, height);
dst[i] = create_bo(bufmgr, ~i, width, height);
if (!drmtest_only_list_subtests()) {
for (i = 0; i < num_buffers; i++) {
src[i] = create_bo(bufmgr, i, width, height);
dst[i] = create_bo(bufmgr, ~i, width, height);
}
dummy = create_bo(bufmgr, 0, width, height);
}
dummy = create_bo(bufmgr, 0, width, height);
/* try to overwrite the source values */
for (i = 0; i < num_buffers; i++)
intel_copy_bo(batch, dst[i], src[i], width, height);
for (i = num_buffers; i--; )
set_bo(src[i], 0xdeadbeef, width, height);
for (i = 0; i < num_buffers; i++)
cmp_bo(dst[i], i, width, height);
if (drmtest_run_subtest("overwrite-source")) {
for (i = 0; i < num_buffers; i++)
intel_copy_bo(batch, dst[i], src[i], width, height);
for (i = num_buffers; i--; )
set_bo(src[i], 0xdeadbeef, width, height);
for (i = 0; i < num_buffers; i++)
cmp_bo(dst[i], i, width, height);
}
/* try to read the results before the copy completes */
for (i = 0; i < num_buffers; i++)
intel_copy_bo(batch, dst[i], src[i], width, height);
for (i = num_buffers; i--; )
cmp_bo(dst[i], 0xdeadbeef, width, height);
if (drmtest_run_subtest("early-read")) {
for (i = num_buffers; i--; )
set_bo(src[i], 0xdeadbeef, width, height);
for (i = 0; i < num_buffers; i++)
intel_copy_bo(batch, dst[i], src[i], width, height);
for (i = num_buffers; i--; )
cmp_bo(dst[i], 0xdeadbeef, width, height);
}
/* and finally try to trick the kernel into loosing the pending write */
for (i = num_buffers; i--; )
set_bo(src[i], 0xabcdabcd, width, height);
for (i = 0; i < num_buffers; i++)
intel_copy_bo(batch, dst[i], src[i], width, height);
for (i = num_buffers; i--; )
intel_copy_bo(batch, dummy, dst[i], width, height);
for (i = num_buffers; i--; )
cmp_bo(dst[i], 0xabcdabcd, width, height);
if (drmtest_run_subtest("gpu-read-after-write")) {
for (i = num_buffers; i--; )
set_bo(src[i], 0xabcdabcd, width, height);
for (i = 0; i < num_buffers; i++)
intel_copy_bo(batch, dst[i], src[i], width, height);
for (i = num_buffers; i--; )
intel_copy_bo(batch, dummy, dst[i], width, height);
for (i = num_buffers; i--; )
cmp_bo(dst[i], 0xabcdabcd, width, height);
}
return 0;
}