summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/drmtest.c19
-rw-r--r--lib/drmtest.h3
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/drmtest.c b/lib/drmtest.c
index d526f38b..376e4ac5 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -169,3 +169,22 @@ void gem_read(int fd, uint32_t handle, uint32_t offset, void *buf, uint32_t leng
assert(ret == 0);
}
+void gem_set_domain(int fd, uint32_t handle,
+ uint32_t read_domains, uint32_t write_domain)
+{
+ struct drm_i915_gem_set_domain set_domain;
+ int ret;
+
+ set_domain.handle = handle;
+ set_domain.read_domains = read_domains;
+ set_domain.write_domain = write_domain;
+
+ ret = drmIoctl(fd, DRM_IOCTL_I915_GEM_SET_DOMAIN, &set_domain);
+ assert(ret == 0);
+}
+
+void gem_sync(int fd, uint32_t handle)
+{
+ gem_set_domain(fd, handle, I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT);
+}
+
diff --git a/lib/drmtest.h b/lib/drmtest.h
index 299570fd..794e08bc 100644
--- a/lib/drmtest.h
+++ b/lib/drmtest.h
@@ -41,3 +41,6 @@ void gem_set_tiling(int fd, uint32_t handle, int tiling, int stride);
void gem_close(int fd, uint32_t handle);
void gem_write(int fd, uint32_t handle, uint32_t offset, const void *buf, uint32_t size);
void gem_read(int fd, uint32_t handle, uint32_t offset, void *buf, uint32_t size);
+void gem_set_domain(int fd, uint32_t handle,
+ uint32_t read_domains, uint32_t write_domain);
+void gem_sync(int fd, uint32_t handle);