aboutsummaryrefslogtreecommitdiff
path: root/x11-drivers
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2021-07-01 18:40:17 +0000
committerWarner Losh <imp@FreeBSD.org>2021-07-01 19:01:14 +0000
commitca4de4fd36ff7ca59898ab2910213f060458f528 (patch)
treeeff4f6b1ee7f6cd0aea190d4310743c89c3f2950 /x11-drivers
parentaefe98d1b9afc39fb8f492b678ec86dbc33c5578 (diff)
downloadports-ca4de4fd36ff7ca59898ab2910213f060458f528.tar.gz
ports-ca4de4fd36ff7ca59898ab2910213f060458f528.zip
x11-drivers/xf86-video-intel: work around execbuffer2 test failure
Work around execbuffer2 test failure. I was not able to enable DRI3 with SNA. It turned out DRM_IOCTL_I915_GEM_EXECBUFFER2 ioctl returns a different error code, i.e., ENOENT instead of EFAULT. Allow both to return true. PR: 256354 Approved by: x11 (manu)
Diffstat (limited to 'x11-drivers')
-rw-r--r--x11-drivers/xf86-video-intel/Makefile1
-rw-r--r--x11-drivers/xf86-video-intel/files/patch-src_sna_kgem.c24
2 files changed, 25 insertions, 0 deletions
diff --git a/x11-drivers/xf86-video-intel/Makefile b/x11-drivers/xf86-video-intel/Makefile
index 08a3ba6d4856..ff1b17eed08a 100644
--- a/x11-drivers/xf86-video-intel/Makefile
+++ b/x11-drivers/xf86-video-intel/Makefile
@@ -3,6 +3,7 @@
PORTNAME= xf86-video-intel
DISTVERSION= 2.99.917-916
DISTVERSIONSUFFIX= -g${GL_COMMIT:C/(.{12}).*/\1/}
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= x11-drivers
diff --git a/x11-drivers/xf86-video-intel/files/patch-src_sna_kgem.c b/x11-drivers/xf86-video-intel/files/patch-src_sna_kgem.c
new file mode 100644
index 000000000000..f71962e56a63
--- /dev/null
+++ b/x11-drivers/xf86-video-intel/files/patch-src_sna_kgem.c
@@ -0,0 +1,24 @@
+--- src/sna/kgem.c.orig 2021-01-15 20:59:05 UTC
++++ src/sna/kgem.c
+@@ -1189,13 +1189,18 @@ static int gem_param(struct kgem *kgem, int name)
+ static bool test_has_execbuffer2(struct kgem *kgem)
+ {
+ struct drm_i915_gem_execbuffer2 execbuf;
++ int ret;
+
+ memset(&execbuf, 0, sizeof(execbuf));
+ execbuf.buffer_count = 1;
+
+- return do_ioctl(kgem->fd,
+- DRM_IOCTL_I915_GEM_EXECBUFFER2,
+- &execbuf) == -EFAULT;
++ ret = do_ioctl(kgem->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf);
++#ifdef __FreeBSD__
++ /* XXX FreeBSD returns ENOENT instead of EFAULT. */
++ if (ret == -ENOENT)
++ return true;
++#endif
++ return ret == -EFAULT;
+ }
+
+ static bool test_has_no_reloc(struct kgem *kgem)