[Intel-gfx] [PATCH i-g-t] igt: Add LOCAL defines for distro compatibility

Arkadiusz Hiler arkadiusz.hiler at intel.com
Tue Jul 11 11:48:23 UTC 2017


Each Linux distro takes a different spin on providing kernel's uapi
headers (especialy the *drm*.h).

You can get them with linux-headers, you can get them with libdrm.
Sometime you can even get them twice, from both sources.

Sometimes the headers match your kernel version, sometimes you end up
stuck with headers matching the kernel that the given release of the
distro came out with.

This makes things harder for code that does not depend on libdrm, as we
cannot have sane ./configure-time checks.

So let's define LOCAL_ version for FENCE and EXECBUFFER2_WB defines
until all the stable distros catch up (+/- some epsilon).

Cc: Petri Latvala <petri.latvala at intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
---
 benchmarks/gem_exec_tracer.c | 10 ++++++++--
 tools/aubdump.c              |  5 ++++-
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/benchmarks/gem_exec_tracer.c b/benchmarks/gem_exec_tracer.c
index d958985..a49c11a 100644
--- a/benchmarks/gem_exec_tracer.c
+++ b/benchmarks/gem_exec_tracer.c
@@ -138,6 +138,9 @@ fail_if(int cond, const char *format, ...)
 	abort();
 }
 
+#define LOCAL_I915_EXEC_FENCE_IN              (1<<16)
+#define LOCAL_I915_EXEC_FENCE_OUT             (1<<17)
+
 static void
 trace_exec(struct trace *trace,
 	   const struct drm_i915_gem_execbuffer2 *execbuffer2)
@@ -146,7 +149,7 @@ trace_exec(struct trace *trace,
 	const struct drm_i915_gem_exec_object2 *exec_objects =
 		to_ptr(typeof(*exec_objects), execbuffer2->buffers_ptr);
 
-	fail_if(execbuffer2->flags & (I915_EXEC_FENCE_IN | I915_EXEC_FENCE_OUT),
+	fail_if(execbuffer2->flags & (LOCAL_I915_EXEC_FENCE_IN | LOCAL_I915_EXEC_FENCE_OUT),
 		"fences not supported yet\n");
 
 	flockfile(trace->file);
@@ -268,6 +271,9 @@ static int is_i915(int fd)
 	return strcmp(name, "i915") == 0;
 }
 
+#define LOCAL_IOCTL_I915_GEM_EXECBUFFER2_WR \
+    DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER2, struct drm_i915_gem_execbuffer2)
+
 int
 ioctl(int fd, unsigned long request, ...)
 {
@@ -326,7 +332,7 @@ ioctl(int fd, unsigned long request, ...)
 
 	switch (request) {
 	case DRM_IOCTL_I915_GEM_EXECBUFFER2:
-	case DRM_IOCTL_I915_GEM_EXECBUFFER2_WR:
+	case LOCAL_IOCTL_I915_GEM_EXECBUFFER2_WR:
 		trace_exec(t, argp);
 		break;
 
diff --git a/tools/aubdump.c b/tools/aubdump.c
index eccea74..610526c 100644
--- a/tools/aubdump.c
+++ b/tools/aubdump.c
@@ -578,6 +578,9 @@ maybe_init(void)
 	fail_if(bos == NULL, "intel_aubdump: out of memory\n");
 }
 
+#define LOCAL_IOCTL_I915_GEM_EXECBUFFER2_WR \
+    DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER2, struct drm_i915_gem_execbuffer2)
+
 int
 ioctl(int fd, unsigned long request, ...)
 {
@@ -633,7 +636,7 @@ ioctl(int fd, unsigned long request, ...)
 		}
 
 		case DRM_IOCTL_I915_GEM_EXECBUFFER2:
-		case DRM_IOCTL_I915_GEM_EXECBUFFER2_WR: {
+		case LOCAL_IOCTL_I915_GEM_EXECBUFFER2_WR: {
 			dump_execbuffer2(fd, argp);
 			if (device_override)
 				return 0;
-- 
2.9.4



More information about the Intel-gfx mailing list