Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Dec 2019 04:15:56 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r520462 - in head/multimedia/libva-intel-media-driver: . files
Message-ID:  <201912200415.xBK4FuK2086305@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Fri Dec 20 04:15:56 2019
New Revision: 520462
URL: https://svnweb.freebsd.org/changeset/ports/520462

Log:
  multimedia/libva-intel-media-driver: try harder with userptr

Added:
  head/multimedia/libva-intel-media-driver/files/patch-userptr   (contents, props changed)
Modified:
  head/multimedia/libva-intel-media-driver/Makefile   (contents, props changed)

Modified: head/multimedia/libva-intel-media-driver/Makefile
==============================================================================
--- head/multimedia/libva-intel-media-driver/Makefile	Fri Dec 20 04:15:46 2019	(r520461)
+++ head/multimedia/libva-intel-media-driver/Makefile	Fri Dec 20 04:15:56 2019	(r520462)
@@ -3,6 +3,7 @@
 PORTNAME=	media-driver
 DISTVERSIONPREFIX=	intel-media-
 DISTVERSION=	19.4.0
+PORTREVISION=	1
 CATEGORIES=	multimedia
 PKGNAMEPREFIX=	libva-intel-
 

Added: head/multimedia/libva-intel-media-driver/files/patch-userptr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/libva-intel-media-driver/files/patch-userptr	Fri Dec 20 04:15:56 2019	(r520462)
@@ -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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201912200415.xBK4FuK2086305>