summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/drmtest.c14
-rw-r--r--lib/drmtest.h4
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/drmtest.c b/lib/drmtest.c
index 0f021902..f9b7a6f0 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -57,6 +57,20 @@ is_intel(int fd)
return IS_INTEL(devid);
}
+bool gem_uses_aliasing_ppgtt(int fd)
+{
+ struct drm_i915_getparam gp;
+ int val;
+
+ gp.param = 18; /* HAS_ALIASING_PPGTT */
+ gp.value = &val;
+
+ if (ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp, sizeof(gp)))
+ return 0;
+
+ return val;
+}
+
/* Ensure the gpu is idle by launching a nop execbuf and stalling for it. */
void gem_quiescent_gpu(int fd)
{
diff --git a/lib/drmtest.h b/lib/drmtest.h
index 9f194448..96fbf1ac 100644
--- a/lib/drmtest.h
+++ b/lib/drmtest.h
@@ -30,6 +30,7 @@
#include <unistd.h>
#include <assert.h>
#include <errno.h>
+#include <stdbool.h>
#include "xf86drm.h"
#include "intel_batchbuffer.h"
@@ -53,6 +54,9 @@ uint64_t gem_aperture_size(int fd);
uint64_t gem_mappable_aperture_size(void);
int gem_madvise(int fd, uint32_t handle, int state);
+/* feature test helpers */
+bool gem_uses_aliasing_ppgtt(int fd);
+
/* generally useful helpers */
void drmtest_fork_signal_helper(void);
void drmtest_stop_signal_helper(void);