svn commit: r484213 - in head/multimedia: . gmmlib gmmlib/files libva-intel-media-driver libva-intel-media-driver/files

Jan Beich jbeich at FreeBSD.org
Mon Nov 5 19:58:50 UTC 2018


Author: jbeich
Date: Mon Nov  5 19:58:46 2018
New Revision: 484213
URL: https://svnweb.freebsd.org/changeset/ports/484213

Log:
  multimedia/libva-intel-media-driver: add new port
  
  Another VAAPI driver for Intel GPUs. Mainly for CannonLake or later
  but the support starts from Broadwell. Also required by MediaSDK.
  
  https://github.com/intel/media-driver

Added:
  head/multimedia/gmmlib/
  head/multimedia/gmmlib/Makefile   (contents, props changed)
  head/multimedia/gmmlib/distinfo   (contents, props changed)
  head/multimedia/gmmlib/files/
  head/multimedia/gmmlib/files/patch-gcc-atomics   (contents, props changed)
  head/multimedia/gmmlib/files/patch-limits   (contents, props changed)
  head/multimedia/gmmlib/files/patch-thread-id   (contents, props changed)
  head/multimedia/gmmlib/pkg-descr   (contents, props changed)
  head/multimedia/gmmlib/pkg-plist   (contents, props changed)
  head/multimedia/libva-intel-media-driver/
  head/multimedia/libva-intel-media-driver/Makefile   (contents, props changed)
  head/multimedia/libva-intel-media-driver/distinfo   (contents, props changed)
  head/multimedia/libva-intel-media-driver/files/
  head/multimedia/libva-intel-media-driver/files/patch-clang   (contents, props changed)
  head/multimedia/libva-intel-media-driver/files/patch-fbres   (contents, props changed)
  head/multimedia/libva-intel-media-driver/files/patch-glibc   (contents, props changed)
  head/multimedia/libva-intel-media-driver/files/patch-i386-atomics   (contents, props changed)
  head/multimedia/libva-intel-media-driver/files/patch-memalign   (contents, props changed)
  head/multimedia/libva-intel-media-driver/files/patch-thread-id   (contents, props changed)
  head/multimedia/libva-intel-media-driver/pkg-descr   (contents, props changed)
Modified:
  head/multimedia/Makefile   (contents, props changed)

Modified: head/multimedia/Makefile
==============================================================================
--- head/multimedia/Makefile	Mon Nov  5 19:55:42 2018	(r484212)
+++ head/multimedia/Makefile	Mon Nov  5 19:58:46 2018	(r484213)
@@ -86,6 +86,7 @@
     SUBDIR += gmerlin
     SUBDIR += gmerlin-avdecoder
     SUBDIR += gmimms
+    SUBDIR += gmmlib
     SUBDIR += gmp-api
     SUBDIR += gmtk
     SUBDIR += gnome-mplayer
@@ -229,6 +230,7 @@
     SUBDIR += libva
     SUBDIR += libva-intel-driver
     SUBDIR += libva-intel-hybrid-driver
+    SUBDIR += libva-intel-media-driver
     SUBDIR += libva-utils
     SUBDIR += libva-vdpau-driver
     SUBDIR += libvdpau

Added: head/multimedia/gmmlib/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/gmmlib/Makefile	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,34 @@
+# $FreeBSD$
+
+PORTNAME=	gmmlib
+DISTVERSIONPREFIX=	intel-${PORTNAME}-
+DISTVERSION=	18.3.0
+CATEGORIES=	multimedia
+
+MAINTAINER=	jbeich at FreeBSD.org
+COMMENT=	Intel Graphics Memory Management Library
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.md
+
+ONLY_FOR_ARCHS=	amd64 i386
+ONLY_FOR_ARCHS_REASON=	Only Intel GPUs on x86 are supported
+
+USES=		cmake:outsource compiler:c++11-lib
+USE_GITHUB=	yes
+USE_LDCONFIG=	yes
+GH_ACCOUNT=	intel
+CMAKE_OFF=	RUN_TEST_SUITE
+CMAKE_ARGS=	-DBUILD_TYPE:STRING="${CMAKE_BUILD_TYPE}" \
+		-DGMMLIB_MARCH:STRING="${CPUTYPE}"
+
+post-patch:
+# Silence -Wmacro-redefined
+	@${REINPLACE_CMD} -e '/__fastcall/d' \
+		${WRKSRC}/Source/inc/portable_compiler.h
+
+post-install:
+# Clean up after PATTERN-based install
+	@${FIND} ${STAGEDIR}${PREFIX}/include -type d -empty -delete
+
+.include <bsd.port.mk>

Added: head/multimedia/gmmlib/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/gmmlib/distinfo	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1538161179
+SHA256 (intel-gmmlib-intel-gmmlib-18.3.0_GH0.tar.gz) = e3114d7ddd429f1b9aa43a1b1d0086d881fbf4d90e4a90ab8577c369d2e3a5e1
+SIZE (intel-gmmlib-intel-gmmlib-18.3.0_GH0.tar.gz) = 620491

Added: head/multimedia/gmmlib/files/patch-gcc-atomics
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/gmmlib/files/patch-gcc-atomics	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,82 @@
+__sync* are GCC/Clang atomic builtins supported on any platform
+
+--- Source/GmmLib/Platform/GmmPlatforms.h.orig	2018-09-28 18:59:39 UTC
++++ Source/GmmLib/Platform/GmmPlatforms.h
+@@ -69,7 +69,7 @@ namespace GmmLib {
+         {
+ #if defined(__GMM_KMD__) || _WIN32
+             InterlockedIncrement((LONG *)&RefCount);
+-#elif defined(__linux__)
++#elif defined(__GNUC__)
+             __sync_fetch_and_add(&RefCount, 1);
+ #endif
+             //TODO[Android]
+@@ -79,7 +79,7 @@ namespace GmmLib {
+         {
+ #if defined(__GMM_KMD__) || _WIN32
+             return(InterlockedDecrement((LONG *)&RefCount));
+-#elif defined(__linux__)
++#elif defined(__GNUC__)
+             return(__sync_sub_and_fetch(&RefCount, 1));
+ #endif
+             //TODO[Android]
+--- Source/GmmLib/inc/External/Common/GmmCachePolicyCommon.h.orig	2018-09-28 18:59:39 UTC
++++ Source/GmmLib/inc/External/Common/GmmCachePolicyCommon.h
+@@ -57,7 +57,7 @@ namespace GmmLib
+             {
+                 #if defined(__GMM_KMD__) || _WIN32
+                     InterlockedIncrement((LONG *)&RefCount);
+-                #elif defined(__linux__)
++                #elif defined(__GNUC__)
+                     __sync_fetch_and_add(&RefCount, 1);
+                 #endif
+                 //TODO[Android]
+@@ -67,7 +67,7 @@ namespace GmmLib
+             {
+                 #if defined(__GMM_KMD__) || _WIN32
+                     return(InterlockedDecrement((LONG *)&RefCount));
+-                #elif defined(__linux__)
++                #elif defined(__GNUC__)
+                     return(__sync_sub_and_fetch(&RefCount, 1));
+                 #endif
+                 //TODO[Android]
+--- Source/GmmLib/inc/External/Common/GmmInfo.h.orig	2018-09-28 18:59:39 UTC
++++ Source/GmmLib/inc/External/Common/GmmInfo.h
+@@ -128,7 +128,7 @@ namespace GmmLib
+         {
+ #if defined(_WIN32)
+             return(InterlockedIncrement((LONG *)&RefCount) - 1);  //InterLockedIncrement() returns incremented value
+-#elif defined(__linux__)
++#elif defined(__GNUC__)
+             return(__sync_fetch_and_add(&RefCount, 1));
+ #endif
+         }
+@@ -150,7 +150,7 @@ namespace GmmLib
+                 }
+ #if defined(_WIN32)
+             } while (!(InterlockedCompareExchange((LONG *)&RefCount, TargetValue, CurrentValue) == CurrentValue));
+-#elif defined(__linux__)
++#elif defined(__GNUC__)
+             } while (!__sync_bool_compare_and_swap(&RefCount, CurrentValue, TargetValue));
+ #endif
+ 
+--- Source/GmmLib/inc/Internal/Common/Texture/GmmTextureCalc.h.orig	2018-09-28 18:59:39 UTC
++++ Source/GmmLib/inc/Internal/Common/Texture/GmmTextureCalc.h
+@@ -146,7 +146,7 @@ namespace GmmLib
+             {
+                 #if defined(__GMM_KMD__) || _WIN32
+                     InterlockedIncrement((LONG *)&RefCount);
+-                #elif defined(__linux__)
++                #elif defined(__GNUC__)
+                     __sync_fetch_and_add(&RefCount, 1);
+                 #endif
+                     //TODO[Android]
+@@ -156,7 +156,7 @@ namespace GmmLib
+             {
+                 #if defined(__GMM_KMD__) || _WIN32
+                     return(InterlockedDecrement((LONG *)&RefCount));
+-                #elif defined(__linux__)
++                #elif defined(__GNUC__)
+                     return(__sync_sub_and_fetch(&RefCount, 1));
+                 #endif
+                     //TODO[Android]

Added: head/multimedia/gmmlib/files/patch-limits
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/gmmlib/files/patch-limits	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,14 @@
+Source/GmmLib/Utility/GmmLog/GmmLog.cpp:36:10: fatal error: 'linux/limits.h' file not found
+#include <linux/limits.h>
+         ^~~~~~~~~~~~~~~~
+
+--- Source/GmmLib/Utility/GmmLog/GmmLog.cpp.orig	2018-09-28 18:59:39 UTC
++++ Source/GmmLib/Utility/GmmLog/GmmLog.cpp
+@@ -33,7 +33,6 @@ OTHER DEALINGS IN THE SOFTWARE.
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <fstream>
+-#include <linux/limits.h>
+ #endif
+ 
+ /// Logger instance shared by all of GmmLib within a process

Added: head/multimedia/gmmlib/files/patch-thread-id
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/gmmlib/files/patch-thread-id	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,39 @@
+Add more BSDs and update to modern way to get thread ID
+
+--- Source/GmmLib/Utility/GmmLog/spdlog/details/os.h.orig	2018-09-28 18:59:39 UTC
++++ Source/GmmLib/Utility/GmmLog/spdlog/details/os.h
+@@ -39,9 +39,15 @@
+ #include <unistd.h>
+ #include <chrono>
+ 
+-#elif __FreeBSD__
+-#include <sys/thr.h> //Use thr_self() syscall under FreeBSD to get thread id
++#elif defined(__DragonFly__)
++#include <unistd.h>      // for lwp_gettid
+ 
++#elif defined(__FreeBSD__)
++#include <pthread_np.h>  // for pthread_getthreadid_np
++
++#elif defined(__NetBSD__)
++#include <lwp.h>         // for _lwp_self
++
+ #else
+ #include <thread>
+ 
+@@ -302,10 +308,12 @@ inline size_t thread_id()
+ #  define SYS_gettid __NR_gettid
+ # endif
+     return  static_cast<size_t>(syscall(SYS_gettid));
+-#elif __FreeBSD__
+-    long tid;
+-    thr_self(&tid);
+-    return static_cast<size_t>(tid);
++#elif defined(__DragonFly__)
++    return static_cast<size_t>(lwp_gettid());
++#elif defined(__FreeBSD__)
++    return static_cast<size_t>(pthread_getthreadid_np());
++#elif defined(__NetBSD__)
++    return static_cast<size_t>(_lwp_self());
+ #else //Default to standard C++11 (OSX and other Unix)
+     return static_cast<size_t>(std::hash<std::thread::id>()(std::this_thread::get_id()));
+ #endif

Added: head/multimedia/gmmlib/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/gmmlib/pkg-descr	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,5 @@
+The Intel Graphics Memory Management Library provides device specific
+and buffer management for the Intel Graphics Compute Runtime for
+OpenCL and the Intel Media Driver for VAAPI.
+
+WWW: https://github.com/intel/gmmlib

Added: head/multimedia/gmmlib/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/gmmlib/pkg-plist	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,96 @@
+include/igdgmm/GmmLib/CachePolicy/GmmCachePolicyConditionals.h
+include/igdgmm/GmmLib/CachePolicy/GmmCachePolicyResourceUsageDefinitions.h
+include/igdgmm/GmmLib/CachePolicy/GmmCachePolicyUndefineConditionals.h
+include/igdgmm/GmmLib/CachePolicy/GmmGen10CachePolicy.h
+include/igdgmm/GmmLib/CachePolicy/GmmGen11CachePolicy.h
+include/igdgmm/GmmLib/CachePolicy/GmmGen8CachePolicy.h
+include/igdgmm/GmmLib/CachePolicy/GmmGen9CachePolicy.h
+include/igdgmm/GmmLib/Platform/GmmPlatforms.h
+include/igdgmm/GmmLib/Texture/GmmTexture.h
+include/igdgmm/GmmLib/Utility/CpuSwizzleBlt/CpuSwizzleBlt.c
+include/igdgmm/GmmLib/Utility/CpuSwizzleBlt/assert.h
+include/igdgmm/GmmLib/Utility/GmmLog/GmmLog.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/async_logger.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/common.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/async_log_helper.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/async_logger_impl.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/file_helper.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/format.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/line_logger_fwd.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/line_logger_impl.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/log_msg.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/logger_impl.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/mpmc_bounded_q.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/null_mutex.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/os.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/pattern_formatter_impl.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/registry.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/details/spdlog_impl.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/fmt/bundled/format.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/fmt/bundled/ostream.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/fmt/bundled/printf.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/fmt/fmt.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/fmt/ostr.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/formatter.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/logger.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/android_sink.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/ansicolor_sink.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/base_sink.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/dist_sink.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/file_sinks.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/msvc_sink.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/null_sink.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/ostream_sink.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/sink.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/stdout_sinks.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/syslog_sink.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/sinks/wincolor_sink.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/spdlog.h
+include/igdgmm/GmmLib/Utility/GmmLog/spdlog/tweakme.h
+include/igdgmm/GmmLib/Utility/GmmUtility.h
+include/igdgmm/GmmLib/inc/External/Common/CachePolicy/GmmCachePolicyGen10.h
+include/igdgmm/GmmLib/inc/External/Common/CachePolicy/GmmCachePolicyGen11.h
+include/igdgmm/GmmLib/inc/External/Common/CachePolicy/GmmCachePolicyGen8.h
+include/igdgmm/GmmLib/inc/External/Common/CachePolicy/GmmCachePolicyGen9.h
+include/igdgmm/GmmLib/inc/External/Common/GmmCachePolicy.h
+include/igdgmm/GmmLib/inc/External/Common/GmmCachePolicyCommon.h
+include/igdgmm/GmmLib/inc/External/Common/GmmCachePolicyExt.h
+include/igdgmm/GmmLib/inc/External/Common/GmmClientContext.h
+include/igdgmm/GmmLib/inc/External/Common/GmmCommonExt.h
+include/igdgmm/GmmLib/inc/External/Common/GmmConst.h
+include/igdgmm/GmmLib/inc/External/Common/GmmDebug.h
+include/igdgmm/GmmLib/inc/External/Common/GmmFormatTable.h
+include/igdgmm/GmmLib/inc/External/Common/GmmGttExt.h
+include/igdgmm/GmmLib/inc/External/Common/GmmInfo.h
+include/igdgmm/GmmLib/inc/External/Common/GmmInfoExt.h
+include/igdgmm/GmmLib/inc/External/Common/GmmInternal.h
+include/igdgmm/GmmLib/inc/External/Common/GmmLibDll.h
+include/igdgmm/GmmLib/inc/External/Common/GmmLibDllName.h
+include/igdgmm/GmmLib/inc/External/Common/GmmMemAllocator.hpp
+include/igdgmm/GmmLib/inc/External/Common/GmmPlatformExt.h
+include/igdgmm/GmmLib/inc/External/Common/GmmProto.h
+include/igdgmm/GmmLib/inc/External/Common/GmmResourceFlags.h
+include/igdgmm/GmmLib/inc/External/Common/GmmResourceInfo.h
+include/igdgmm/GmmLib/inc/External/Common/GmmResourceInfoCommon.h
+include/igdgmm/GmmLib/inc/External/Common/GmmResourceInfoExt.h
+include/igdgmm/GmmLib/inc/External/Common/GmmTextureExt.h
+include/igdgmm/GmmLib/inc/External/Common/GmmUtil.h
+include/igdgmm/GmmLib/inc/External/Linux/GmmResourceInfoLin.h
+include/igdgmm/GmmLib/inc/GmmLib.h
+include/igdgmm/igdgmm.h
+include/igdgmm/inc/common/gfxmacro.h
+include/igdgmm/inc/common/gfxplatform.h
+include/igdgmm/inc/common/gtsysinfo.h
+include/igdgmm/inc/common/igfxfmid.h
+include/igdgmm/inc/common/sku_wa.h
+include/igdgmm/inc/portable_compiler.h
+include/igdgmm/inc/umKmInc/UmKmDmaPerfTimer.h
+include/igdgmm/inc/umKmInc/UmKmEnum.h
+include/igdgmm/inc/umKmInc/sharedata.h
+include/igdgmm/util/g_gfxDebug.h
+include/igdgmm/util/gfxDebug.h
+lib/libgmm_umd.a
+lib/libigdgmm.so
+lib/libigdgmm.so.1
+lib/libigdgmm.so.1.0.0
+libdata/pkgconfig/igdgmm.pc

Added: head/multimedia/libva-intel-media-driver/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/libva-intel-media-driver/Makefile	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,44 @@
+# $FreeBSD$
+
+PORTNAME=	media-driver
+DISTVERSIONPREFIX=	intel-media-
+DISTVERSION=	18.3.0
+CATEGORIES=	multimedia
+PKGNAMEPREFIX=	libva-intel-
+
+MAINTAINER=	jbeich at FreeBSD.org
+COMMENT=	Intel Media Driver for VAAPI
+
+LICENSE=	MIT BSD3CLAUSE
+LICENSE_COMB=	multi
+LICENSE_FILE=	${WRKSRC}/LICENSE.md
+
+ONLY_FOR_ARCHS=	amd64 i386
+ONLY_FOR_ARCHS_REASON=	Only Intel GPUs on x86 are supported
+
+LIB_DEPENDS=	libpciaccess.so:devel/libpciaccess \
+		libigdgmm.so:multimedia/gmmlib \
+		libva.so:multimedia/libva
+
+USES=		cmake:outsource compiler:c++11-lib pkgconfig
+USE_GITHUB=	yes
+GH_ACCOUNT=	intel
+ARCH_SUFX=	${ARCH:S/i386/32/:S/amd//}
+CMAKE_OFF=	MEDIA_BUILD_FATAL_WARNINGS MEDIA_RUN_TEST_SUITE
+CMAKE_ARGS=	-DBUILD_TYPE:STRING="${CMAKE_BUILD_TYPE}" \
+		-DARCH:STRING="${ARCH_SUFX}" \
+		-DUFO_MARCH:STRING="${CPUTYPE}"
+PLIST_FILES=	etc/profile.d/intel-media.sh \
+		lib/dri/iHD_drv_video.so \
+		lib/igfxcmrt${ARCH_SUFX}.so
+
+post-patch:
+	@${REINPLACE_CMD} -e '/install.*igfxcmrt/s/64/${ARCH_SUFX}/' \
+		${WRKSRC}/CMakeLists.txt
+	@${REINPLACE_CMD} -e '/-D__linux__/d' \
+		${WRKSRC}/media_driver/cmake/linux/media_compile_flags_linux.cmake
+# Silence -Wmacro-redefined
+	@${REINPLACE_CMD} -e '/__fastcall/d' \
+		${WRKSRC}/media_driver/linux/common/cm/cm_mem_os.h
+
+.include <bsd.port.mk>

Added: head/multimedia/libva-intel-media-driver/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/libva-intel-media-driver/distinfo	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1538429992
+SHA256 (intel-media-driver-intel-media-18.3.0_GH0.tar.gz) = df9af1cc796b4123508aacaf19d040cc5d8c5742c05199f45c9a3905ed8d1b52
+SIZE (intel-media-driver-intel-media-18.3.0_GH0.tar.gz) = 14422845

Added: head/multimedia/libva-intel-media-driver/files/patch-clang
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/libva-intel-media-driver/files/patch-clang	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,15 @@
+media_driver/linux/common/os/mos_utilities_specific.c:2617:12: error: cast from pointer to smaller type 'uint32_t' (aka 'unsigned int') loses information
+    return (uint32_t)pthread_self();
+           ^~~~~~~~~~~~~~~~~~~~~~~~
+
+--- media_driver/linux/common/os/mos_utilities_specific.c.orig	2018-10-01 21:39:52 UTC
++++ media_driver/linux/common/os/mos_utilities_specific.c
+@@ -2614,7 +2614,7 @@ uint32_t MOS_GetThreadId(
+ 
+ uint32_t MOS_GetCurrentThreadId()
+ {
+-    return (uint32_t)pthread_self();
++    return (uintptr_t)pthread_self();
+ }
+ 
+ MOS_STATUS MOS_WaitThread(

Added: head/multimedia/libva-intel-media-driver/files/patch-fbres
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/libva-intel-media-driver/files/patch-fbres	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,63 @@
+Get framebuffer resolution on more platforms
+
+--- media_driver/linux/common/codec/ddi/media_libva_decoder.cpp.orig	2018-10-01 21:39:52 UTC
++++ media_driver/linux/common/codec/ddi/media_libva_decoder.cpp
+@@ -45,7 +45,38 @@
+ #include <X11/Xutil.h>
+ #endif
+ 
++#if defined(__linux__)
+ #include <linux/fb.h>
++#define DEFAULT_FBDEV "/dev/graphics/fb0"
++#elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__sun)
++#include <sys/fbio.h>
++# if defined(__sun)
++#define DEFAULT_FBDEV "/dev/fb"
++# else
++#define DEFAULT_FBDEV "/dev/ttyv0"
++# endif
++#define FBIOGET_VSCREENINFO FBIOGTYPE
++#define fb_var_screeninfo fbtype
++#define xres fb_width
++#define yres fb_height
++#elif defined(__NetBSD__) || defined(__OpenBSD__)
++#include <dev/wscons/wsconsio.h>
++# if defined(__OpenBSD__)
++#define DEFAULT_FBDEV "/dev/ttyC0"
++# else
++#define DEFAULT_FBDEV "/dev/ttyE0"
++# endif
++#define FBIOGET_VSCREENINFO WSDISPLAYIO_GINFO
++#define fb_var_screeninfo wsdisplay_fbinfo
++#define xres width
++#define yres height
++#else
++#define FBIOGET_VSCREENINFO 0
++struct fb_var_screeninfo {
++    uint32_t xres;
++    uint32_t yres;
++};
++#endif
+ 
+ typedef MediaDdiFactory<DdiMediaDecode, DDI_DECODE_CONFIG_ATTR> DdiDecodeFactory;
+ static int32_t DdiDecode_GetDisplayInfo(VADriverContextP ctx)
+@@ -56,7 +70,7 @@ static int32_t DdiDecode_GetDisplayInfo(VADriverContex
+     vsinfo.xres                           = 0;
+     vsinfo.yres                           = 0;
+ 
+-    fd = open("/dev/graphics/fb0",O_RDONLY);
++    fd = open(DEFAULT_FBDEV,O_RDONLY);
+     if(fd > 0)
+     {
+         if(ioctl(fd, FBIOGET_VSCREENINFO, &vsinfo) < 0)
+--- media_driver/linux/common/ddi/media_libva.cpp.orig	2018-10-01 21:39:52 UTC
++++ media_driver/linux/common/ddi/media_libva.cpp
+@@ -36,8 +36,6 @@
+ #include <X11/Xutil.h>
+ #endif
+ 
+-#include <linux/fb.h>
+-
+ #include "media_libva_util.h"
+ #include "media_libva_decoder.h"
+ #include "media_libva_encoder.h"

Added: head/multimedia/libva-intel-media-driver/files/patch-glibc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/libva-intel-media-driver/files/patch-glibc	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,45 @@
+makedev() is defined in <sys/types.h> on BSDs and <sys/mkdev.h> on Solaris
+
+--- media_driver/linux/common/os/libdrm/xf86drm.c.orig	2018-10-01 21:39:52 UTC
++++ media_driver/linux/common/os/libdrm/xf86drm.c
+@@ -47,13 +47,15 @@
+ #include <signal.h>
+ #include <time.h>
+ #include <sys/types.h>
++#if defined(__GLIBC__) || defined(__linux__)
+ #include <sys/sysmacros.h>
++#endif
+ #include <sys/stat.h>
+ #define stat_t struct stat
+ #include <sys/ioctl.h>
+ #include <sys/time.h>
+ #include <stdarg.h>
+-#ifdef HAVE_SYS_MKDEV_H
++#ifdef __sun
+ # include <sys/mkdev.h> /* defines major(), minor(), and makedev() on Solaris */
+ #endif
+ 
+--- media_driver/linux/ult/libdrm_mock/xf86drm_mock.c.orig	2018-10-01 21:39:52 UTC
++++ media_driver/linux/ult/libdrm_mock/xf86drm_mock.c
+@@ -47,16 +47,20 @@
+ #include <signal.h>
+ #include <time.h>
+ #include <sys/types.h>
++#if defined(__GLIBC__) || defined(__linux__)
+ #include <sys/sysmacros.h>
++#endif
+ #include <sys/stat.h>
+ #define stat_t struct stat
+ #include <sys/ioctl.h>
+ #include <sys/time.h>
+ #include <stdarg.h>
+-#ifdef HAVE_SYS_MKDEV_H
++#ifdef __sun
+ # include <sys/mkdev.h> /* defines major(), minor(), and makedev() on Solaris */
+ #endif
++#ifdef __GLIBC__
+ #include <sys/sysmacros.h>
++#endif
+ 
+ /* Not all systems have MAP_FAILED defined */
+ #ifndef MAP_FAILED

Added: head/multimedia/libva-intel-media-driver/files/patch-i386-atomics
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/libva-intel-media-driver/files/patch-i386-atomics	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,18 @@
+media_driver/CMakeFiles/iHD_drv_video_OBJ.dir/linux/common/os/mos_context_specific.cpp.o: In function `OsContextSpecific::SetSliceCount(unsigned int*)':
+media_driver/linux/common/os/mos_context_specific.cpp:441: undefined reference to `__atomic_load_8'
+media_driver/linux/common/os/mos_context_specific.cpp:444: undefined reference to `__atomic_store_8'
+c++: error: linker command failed with exit code 1 (use -v to see invocation)
+
+--- media_driver/linux/common/os/mos_context_specific.cpp.orig	2018-10-01 21:39:52 UTC
++++ media_driver/linux/common/os/mos_context_specific.cpp
+@@ -437,6 +437,10 @@ void OsContextSpecific::SetSliceCount(uint32_t *pSlice
+ 
+         for (int sliceCountShm = m_gtSystemInfo.SliceCount; sliceCountShm > 0; sliceCountShm--)
+         {
++#if defined(__clang__) && defined(__i386__)
++#define	__atomic_load_n(ptr, order) __sync_fetch_and_add(ptr, 0)
++#define	__atomic_store_n(ptr, val, order) __sync_swap(ptr, val)
++#endif
+             uint64_t* pTimestampShm = (uint64_t*)m_sseuShm + sliceCountShm;
+             uint64_t   timestampShm = __atomic_load_n(pTimestampShm, __ATOMIC_SEQ_CST);
+             if (sliceNum == sliceCountShm)

Added: head/multimedia/libva-intel-media-driver/files/patch-memalign
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/libva-intel-media-driver/files/patch-memalign	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,52 @@
+memalign is Linux-specific, so use C11 aligned_alloc instead
+
+--- media_driver/agnostic/common/os/mos_utilities.c.orig	2018-10-01 21:39:52 UTC
++++ media_driver/agnostic/common/os/mos_utilities.c
+@@ -33,7 +33,6 @@
+ #endif
+ #include <fcntl.h>     //open
+ 
+-#include <malloc.h>    // For memalign
+ #include <string.h>    // memset
+ #include <stdlib.h>    // atoi atol
+ #include <math.h>
+--- media_driver/agnostic/ult/cm/buffer_up_test.cpp.orig	2018-10-01 21:39:52 UTC
++++ media_driver/agnostic/ult/cm/buffer_up_test.cpp
+@@ -21,7 +21,6 @@
+ */
+ 
+ #include "cm_test.h"
+-#include <malloc.h>
+ 
+ class BufferUPTest: public CmTest
+ {
+--- media_driver/linux/common/os/mos_utilities_specific.h.orig	2018-10-01 21:39:52 UTC
++++ media_driver/linux/common/os/mos_utilities_specific.h
+@@ -88,7 +88,7 @@
+ #define UFINT_PATH_LINUX            "UFINT"
+ #define UFEXT_PATH_LINUX            "UFEXT"
+ 
+-#define _aligned_malloc(size, alignment)  memalign(alignment, size)
++#define _aligned_malloc(size, alignment)  aligned_alloc(alignment, size)
+ #define _aligned_free(ptr)                free(ptr)
+ 
+ #define __MOS_USER_FEATURE_KEY_MESSAGE_DEFAULT_VALUE_STR     "1"
+--- media_driver/linux/ult/ult_app/cm/cm_test.h.orig	2018-10-01 21:39:52 UTC
++++ media_driver/linux/ult/ult_app/cm/cm_test.h
+@@ -23,7 +23,6 @@
+ #ifndef MEDIADRIVER_LINUX_CODECHAL_ULT_ULTAPP_CMTEST_H_
+ #define MEDIADRIVER_LINUX_CODECHAL_ULT_ULTAPP_CMTEST_H_
+ 
+-#include <malloc.h>
+ #include "gtest/gtest.h"
+ #include "mock_device.h"
+ #include "../memory_leak_detector.h"
+@@ -34,7 +33,7 @@ class CmTest: public testing::Test
+ {
+ public:
+     static void* AllocateAlignedMemory(size_t size, size_t alignment)
+-    { return memalign(alignment, size); }
++    { return aligned_alloc(alignment, size); }
+ 
+     static void FreeAlignedMemory(void *memory) { free(memory); }
+ 

Added: head/multimedia/libva-intel-media-driver/files/patch-thread-id
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/libva-intel-media-driver/files/patch-thread-id	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,37 @@
+Get thread ID on more platforms
+
+--- media_driver/linux/common/cm/cm_innerdef_os.h.orig	2018-10-01 21:39:52 UTC
++++ media_driver/linux/common/cm/cm_innerdef_os.h
+@@ -35,8 +35,16 @@
+ 
+ #include "mos_os.h"
+ #include "media_libva_common.h"
++#if defined(__linux__)
+ #include <sys/types.h>
+ #include <sys/syscall.h>
++#elif defined(__FreeBSD__)
++#include <pthread_np.h>
++#elif defined(__NetBSD__)
++#include <lwp.h>
++#else // OpenBSD, Solaris
++#include <stdint.h>
++#endif
+ #include <unistd.h>
+ 
+ //Require DRM VMAP patch,
+@@ -95,5 +103,15 @@ inline void GetLocalTime(PSYSTEMTIME psystime)
+ #endif
+ 
+ #define CmGetCurProcessId() getpid()
++#if defined(__linux__)
+ #define CmGetCurThreadId()  syscall(SYS_gettid)
++#elif defined(__DragonFly__)
++#define CmGetCurThreadId()  lwp_gettid()
++#elif defined(__FreeBSD__)
++#define CmGetCurThreadId()  pthread_getthreadid_np()
++#elif defined(__NetBSD__)
++#define CmGetCurThreadId()  _lwp_self()
++#else // OpenBSD, Solaris
++#define CmGetCurThreadId()  (uintptr_t)pthread_self()
++#endif
+ 

Added: head/multimedia/libva-intel-media-driver/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/libva-intel-media-driver/pkg-descr	Mon Nov  5 19:58:46 2018	(r484213)
@@ -0,0 +1,5 @@
+The Intel Media Driver for VAAPI is a new VA-API (Video Acceleration API)
+user mode driver supporting hardware accelerated decoding, encoding, and
+video post processing for GEN based graphics hardware.
+
+WWW: https://github.com/intel/media-driver


More information about the svn-ports-all mailing list