mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-10 09:26:10 +00:00
igt/gem_exec_alignment: Remember to require 48b objects!
In order to actually use the high space we need to set the can-use-48bit flag. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
167fb9e7b2
commit
6cf9d911ab
@ -100,15 +100,18 @@ static void many(int fd)
|
||||
execobj = calloc(sizeof(*execobj), count + 1);
|
||||
igt_assert(execobj);
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
for (i = 0; i < count; i++) {
|
||||
execobj[i].handle = gem_create(fd, 4096);
|
||||
if ((gtt_size-1) >> 32)
|
||||
execobj[i].flags = 1<<3; /* EXEC_OBJECT_SUPPORTS_48B_ADDRESS */
|
||||
}
|
||||
execobj[i].handle = gem_create(fd, 4096);
|
||||
gem_write(fd, execobj[i].handle, 0, &bbe, sizeof(bbe));
|
||||
|
||||
memset(&execbuf, 0, sizeof(execbuf));
|
||||
execbuf.buffers_ptr = (uintptr_t)execobj;
|
||||
execbuf.buffer_count = count + 1;
|
||||
gem_execbuf(fd, &execbuf);
|
||||
igt_require(__gem_execbuf(fd, &execbuf) == 0);
|
||||
|
||||
for (alignment = 4096; alignment < gtt_size; alignment <<= 1) {
|
||||
for (i = 0; i < count; i++)
|
||||
@ -119,9 +122,10 @@ static void many(int fd)
|
||||
execbuf.buffers_ptr = (uintptr_t)(execobj + (factor - 1) * count / factor);
|
||||
}
|
||||
|
||||
igt_debug("testing %lld x alignment=%lld\n",
|
||||
(long long)execbuf.buffer_count,
|
||||
(long long)alignment);
|
||||
igt_debug("testing %lld x alignment=%#llx [%db]\n",
|
||||
(long long)execbuf.buffer_count - 1,
|
||||
(long long)alignment,
|
||||
find_last_bit(alignment));
|
||||
gem_execbuf(fd, &execbuf);
|
||||
for (i = 0; i < count; i++)
|
||||
igt_assert_eq_u64(execobj[i].alignment, alignment);
|
||||
@ -143,12 +147,18 @@ static void single(int fd)
|
||||
|
||||
memset(&execobj, 0, sizeof(execobj));
|
||||
execobj.handle = gem_create(fd, 4096);
|
||||
execobj.flags = 1<<3; /* EXEC_OBJECT_SUPPORTS_48B_ADDRESS */
|
||||
gem_write(fd, execobj.handle, 0, &batch, sizeof(batch));
|
||||
|
||||
memset(&execbuf, 0, sizeof(execbuf));
|
||||
execbuf.buffers_ptr = (uintptr_t)&execobj;
|
||||
execbuf.buffer_count = 1;
|
||||
|
||||
gtt_size = gem_aperture_size(fd);
|
||||
if (__gem_execbuf(fd, &execbuf)) {
|
||||
execobj.flags = 0;
|
||||
gtt_size = 1ull << 32;
|
||||
}
|
||||
gem_execbuf(fd, &execbuf);
|
||||
|
||||
execobj.alignment = 3*4096;
|
||||
@ -169,13 +179,13 @@ static void single(int fd)
|
||||
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",
|
||||
igt_debug("starting offset: %#llx, next alignment: %#llx [%db]\n",
|
||||
(long long)execobj.offset,
|
||||
(long long)execobj.alignment);
|
||||
(long long)execobj.alignment,
|
||||
find_last_bit(execobj.alignment));
|
||||
gem_execbuf(fd, &execbuf);
|
||||
igt_assert_eq_u64(execobj.offset % execobj.alignment, 0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user