diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2019-12-20 04:15:56 +0000 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2019-12-20 04:15:56 +0000 |
commit | 18789087a0a884a3f5f3e46f57bbc8307ee4ba75 (patch) | |
tree | d44561a22e2ea434c7f8df6a9ccdc599b662e2ac /multimedia | |
parent | 465e50c225b8bb47bf8b089d1a3eaf669a94151b (diff) | |
download | ports-18789087a0a884a3f5f3e46f57bbc8307ee4ba75.tar.gz ports-18789087a0a884a3f5f3e46f57bbc8307ee4ba75.zip |
Notes
Diffstat (limited to 'multimedia')
-rw-r--r-- | multimedia/libva-intel-media-driver/Makefile | 1 | ||||
-rw-r--r-- | multimedia/libva-intel-media-driver/files/patch-userptr | 31 |
2 files changed, 32 insertions, 0 deletions
diff --git a/multimedia/libva-intel-media-driver/Makefile b/multimedia/libva-intel-media-driver/Makefile index 8d7b2aa7e2e6..e335e3227054 100644 --- a/multimedia/libva-intel-media-driver/Makefile +++ b/multimedia/libva-intel-media-driver/Makefile @@ -3,6 +3,7 @@ PORTNAME= media-driver DISTVERSIONPREFIX= intel-media- DISTVERSION= 19.4.0 +PORTREVISION= 1 CATEGORIES= multimedia PKGNAMEPREFIX= libva-intel- diff --git a/multimedia/libva-intel-media-driver/files/patch-userptr b/multimedia/libva-intel-media-driver/files/patch-userptr new file mode 100644 index 000000000000..0be32504c772 --- /dev/null +++ b/multimedia/libva-intel-media-driver/files/patch-userptr @@ -0,0 +1,31 @@ +Try unsynchronized userptr if regular one fails. +https://github.com/FreeBSDDesktop/kms-drm/issues/197 + +--- media_driver/linux/common/os/i915/mos_bufmgr.c.orig 2019-12-10 08:54:00 UTC ++++ media_driver/linux/common/os/i915/mos_bufmgr.c +@@ -945,10 +945,15 @@ mos_gem_bo_alloc_userptr(struct mos_bufmgr *bufmgr, + userptr.user_size = size; + userptr.flags = 0; + ++retry: + ret = drmIoctl(bufmgr_gem->fd, + DRM_IOCTL_I915_GEM_USERPTR, + &userptr); + if (ret != 0) { ++ if (errno == ENODEV && userptr.flags == 0) { ++ userptr.flags = I915_USERPTR_UNSYNCHRONIZED; ++ goto retry; ++ } + MOS_DBG("bo_create_userptr: " + "ioctl failed with user ptr %p size 0x%lx, " + "user flags 0x%lx\n", addr, size, flags); +@@ -1021,6 +1026,9 @@ retry: + if (errno == ENODEV && userptr.flags == 0) { + userptr.flags = I915_USERPTR_UNSYNCHRONIZED; + goto retry; ++ } ++ if (geteuid() != 0) { ++ fprintf(stderr, "%s", "ioctl(I915_GEM_USERPTR) failed. Try running as root but expect poor stability.\n"); + } + free(ptr); + return false; |