summaryrefslogtreecommitdiff
path: root/tests/prime_vgem.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-06-20 20:11:37 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2016-06-20 20:12:13 +0100
commit5020029c1907fd2d999d34cfcba3704d8bbcea13 (patch)
tree35350554c51e03cf41136b350835053965efe7f2 /tests/prime_vgem.c
parente4c24c048d8310955d984f24cec8e0dd5128e110 (diff)
igt/prime_vgem: Add a tight coherency check between vgem/gtt mmap
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tests/prime_vgem.c')
-rw-r--r--tests/prime_vgem.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
index 2753fce9..6ccadcbd 100644
--- a/tests/prime_vgem.c
+++ b/tests/prime_vgem.c
@@ -90,7 +90,7 @@ static void test_gtt(int vgem, int i915)
{
struct vgem_bo scratch;
uint32_t handle;
- uint32_t *ptr;
+ uint32_t *ptr, *gtt;
int dmabuf, i;
scratch.width = 1024;
@@ -119,6 +119,18 @@ static void test_gtt(int vgem, int i915)
igt_assert_eq(ptr[1024*i], ~i);
munmap(ptr, scratch.size);
+
+ ptr = vgem_mmap(vgem, &scratch, PROT_WRITE);
+ gtt = gem_mmap__gtt(i915, handle, scratch.size, PROT_WRITE);
+ for (i = 0; i < 1024; i++) {
+ gtt[1024*i] = i;
+ igt_assert_eq(ptr[1024*i], i);
+ ptr[1024*i] = ~i;
+ igt_assert_eq(gtt[1024*i], ~i);
+ }
+ munmap(gtt, scratch.size);
+ munmap(ptr, scratch.size);
+
gem_close(i915, handle);
gem_close(vgem, scratch.handle);
}