diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-06-19 10:13:12 +0200 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-06-19 10:15:42 +0200 |
commit | 236d6bd2d36114fe402fe0e85d97b14cdf102963 (patch) | |
tree | 8c6eeac07f8da8352b018737a99c8bedfded97e9 /tests/gem_exec_big.c | |
parent | 1b1f4b16a25b6415187fd2b0906ae730e9ca8d23 (diff) |
tests/gem_exec_big: Re-add gem_sync
We need this to avoid hitting the slowpath and ending up with a
presumed_offset == -1. Regression reported by PRTS, bisected to
commit eb36fc993d7ae1988c80ba5b767989059c91d0ec
Author: Chris Wilson <chris@chris-wilson.co.uk>
AuthorDate: Mon Jun 16 10:49:16 2014 +0100
Commit: Chris Wilson <chris@chris-wilson.co.uk>
CommitDate: Mon Jun 16 10:51:02 2014 +0100
igt/gem_exec_big: Update to new igt_assert_eq
Use igt_assert_eq for better test output on failures.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
v2: igt_warn_on unexpected reloc offsets.
Cc: shuang.he@intel.com
Acked-by: Chris Wilson <chris@chris-wilson.co.uk> (on irc)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tests/gem_exec_big.c')
-rw-r--r-- | tests/gem_exec_big.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/gem_exec_big.c b/tests/gem_exec_big.c index 615295e9f..b82774fb8 100644 --- a/tests/gem_exec_big.c +++ b/tests/gem_exec_big.c @@ -84,8 +84,15 @@ static void exec(int fd, uint32_t handle, uint32_t reloc_ofs) i915_execbuffer2_set_context_id(execbuf, 0); execbuf.rsvd2 = 0; + /* Avoid hitting slowpaths in the reloc processing which might yield a + * presumed_offset of -1. Happens when the batch is still busy from the + * last round. */ + gem_sync(fd, handle); + gem_execbuf(fd, &execbuf); + igt_warn_on(gem_reloc[0].presumed_offset == -1); + gem_read(fd, handle, reloc_ofs, &tmp, 4); igt_assert_eq(tmp, gem_reloc[0].presumed_offset); } @@ -106,8 +113,11 @@ igt_simple_main handle = gem_create(fd, batch_size); gem_write(fd, handle, 0, batch, sizeof(batch)); - for (reloc_ofs = 4096; reloc_ofs < batch_size; reloc_ofs += 4096) + for (reloc_ofs = 4096; reloc_ofs < batch_size; reloc_ofs += 4096) { + igt_debug("batch_size %u, reloc_ofs %u\n", + batch_size, reloc_ofs); exec(fd, handle, reloc_ofs); + } } gem_close(fd, handle); |