From 789e93f19c8a45d67ef28d218d4730f05f7063ec Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 18 Nov 2016 09:40:09 +0000 Subject: igt/gem_exec_reloc: Don't execute an empty object for basic-softpin Signed-off-by: Chris Wilson --- tests/gem_exec_reloc.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/tests/gem_exec_reloc.c b/tests/gem_exec_reloc.c index e6db8e61..17cb1bf7 100644 --- a/tests/gem_exec_reloc.c +++ b/tests/gem_exec_reloc.c @@ -530,34 +530,36 @@ static void basic_noreloc(int fd) static void basic_softpin(int fd) { - struct drm_i915_gem_exec_object2 obj; + struct drm_i915_gem_exec_object2 obj[2]; struct drm_i915_gem_execbuffer2 execbuf; uint64_t offset; - uint32_t trash; uint32_t bbe = MI_BATCH_BUFFER_END; igt_require(gem_has_softpin(fd)); - memset(&obj, 0, sizeof(obj)); - obj.handle = gem_create(fd, 4096); - gem_write(fd, obj.handle, 0, &bbe, sizeof(bbe)); + memset(obj, 0, sizeof(obj)); + obj[1].handle = gem_create(fd, 4096); + gem_write(fd, obj[1].handle, 0, &bbe, sizeof(bbe)); memset(&execbuf, 0, sizeof(execbuf)); - execbuf.buffers_ptr = (uintptr_t)&obj; + execbuf.buffers_ptr = (uintptr_t)&obj[1]; execbuf.buffer_count = 1; gem_execbuf(fd, &execbuf); - trash = obj.handle; - offset = obj.offset; + offset = obj[1].offset; - obj.handle = gem_create(fd, 4096); - obj.flags = EXEC_OBJECT_PINNED; + obj[0].handle = gem_create(fd, 4096); + obj[0].offset = obj[1].offset; + obj[0].flags = EXEC_OBJECT_PINNED; + + execbuf.buffers_ptr = (uintptr_t)&obj[0]; + execbuf.buffer_count = 2; gem_execbuf(fd, &execbuf); - igt_assert_eq_u64(obj.offset, offset); + igt_assert_eq_u64(obj[0].offset, offset); - gem_close(fd, obj.handle); - gem_close(fd, trash); + gem_close(fd, obj[0].handle); + gem_close(fd, obj[1].handle); } igt_main -- cgit v1.2.3