summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-11-18 09:40:09 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2016-11-18 09:41:00 +0000
commit789e93f19c8a45d67ef28d218d4730f05f7063ec (patch)
tree284e3b01c96b8c2f0f86f00547261f3c50a7fdd1
parent9bbf642dc1f1b661ea970c8c3f66b1a4f8eaef44 (diff)
igt/gem_exec_reloc: Don't execute an empty object for basic-softpin
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--tests/gem_exec_reloc.c28
1 files 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