Date: Mon, 5 Nov 2018 19:58:46 +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: r484213 - in head/multimedia: . gmmlib gmmlib/files libva-intel-media-driver libva-intel-media-driver/files Message-ID: <201811051958.wA5Jwk5x092798@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201811051958.wA5Jwk5x092798>