From e7bdc5c91692fba3f74aea4dc6ec662c98d1fec3 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 19 Jan 2016 13:44:09 +0000 Subject: [PATCH] igt/gem_exec_alignment: Test all possible pot alignments Signed-off-by: Chris Wilson --- tests/gem_exec_alignment.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/gem_exec_alignment.c b/tests/gem_exec_alignment.c index 98f6f8af..768bbb53 100644 --- a/tests/gem_exec_alignment.c +++ b/tests/gem_exec_alignment.c @@ -50,6 +50,7 @@ igt_simple_main struct drm_i915_gem_exec_object2 execobj; struct drm_i915_gem_execbuffer2 execbuf; uint32_t batch = MI_BATCH_BUFFER_END; + uint64_t gtt_size; int non_pot; int fd; @@ -79,7 +80,21 @@ igt_simple_main if (!non_pot && execobj.alignment & -execobj.alignment) continue; + igt_debug("starting offset: %#llx, next alignment: %#llx\n", + (long long)execobj.offset, + (long long)execobj.alignment); gem_execbuf(fd, &execbuf); - igt_assert_eq(execobj.offset % execobj.alignment, 0); + igt_assert_eq_u64(execobj.offset % execobj.alignment, 0); + } + + gtt_size = gem_aperture_size(fd); + for (execobj.alignment = 4096; + execobj.alignment < gtt_size; + execobj.alignment <<= 1) { + igt_debug("starting offset: %#llx, next alignment: %#llx\n", + (long long)execobj.offset, + (long long)execobj.alignment); + gem_execbuf(fd, &execbuf); + igt_assert_eq_u64(execobj.offset % execobj.alignment, 0); } }