[Intel-gfx] [PATCH igt 1/2] igt/gem_exec_reloc: Trivial test for softpin ABI
Michał Winiarski
michal.winiarski at intel.com
Fri Nov 18 09:39:41 UTC 2016
On Thu, Nov 17, 2016 at 01:48:35PM +0000, Chris Wilson wrote:
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Reviewed-by: Michał Winiarski <michal.winiarski at intel.com>
-Michał
> ---
> tests/gem_exec_reloc.c | 35 +++++++++++++++++++++++++++++++++++
> 1 file changed, 35 insertions(+)
>
> diff --git a/tests/gem_exec_reloc.c b/tests/gem_exec_reloc.c
> index c56fb43..e6db8e6 100644
> --- a/tests/gem_exec_reloc.c
> +++ b/tests/gem_exec_reloc.c
> @@ -528,6 +528,38 @@ static void basic_noreloc(int fd)
> gem_close(fd, obj.handle);
> }
>
> +static void basic_softpin(int fd)
> +{
> + struct drm_i915_gem_exec_object2 obj;
> + 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(&execbuf, 0, sizeof(execbuf));
> + execbuf.buffers_ptr = (uintptr_t)&obj;
> + execbuf.buffer_count = 1;
> + gem_execbuf(fd, &execbuf);
> +
> + trash = obj.handle;
> + offset = obj.offset;
> +
> + obj.handle = gem_create(fd, 4096);
> + obj.flags = EXEC_OBJECT_PINNED;
> +
> + gem_execbuf(fd, &execbuf);
> + igt_assert_eq_u64(obj.offset, offset);
> +
> + gem_close(fd, obj.handle);
> + gem_close(fd, trash);
> +}
> +
> igt_main
> {
> uint64_t size;
> @@ -545,6 +577,9 @@ igt_main
> igt_subtest("basic-noreloc")
> basic_noreloc(fd);
>
> + igt_subtest("basic-softpin")
> + basic_softpin(fd);
> +
> for (size = 4096; size <= 4ull*1024*1024*1024; size <<= 1) {
> igt_subtest_f("mmap-%u", find_last_set(size) - 1)
> from_mmap(fd, size, MEM);
> --
> 2.10.2
More information about the Intel-gfx
mailing list