Index: head/devel/intel-graphics-compiler/Makefile =================================================================== --- head/devel/intel-graphics-compiler/Makefile (revision 546965) +++ head/devel/intel-graphics-compiler/Makefile (revision 546966) @@ -1,57 +1,60 @@ # $FreeBSD$ PORTNAME= intel-graphics-compiler DISTVERSIONPREFIX= igc- -DISTVERSION= 1.0.4312 +DISTVERSION= 1.0.4756 CATEGORIES= devel PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ PATCHFILES+= b4e40a433077.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/129 MAINTAINER= jbeich@FreeBSD.org COMMENT= Intel Graphics Compiler for OpenCL LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.md ONLY_FOR_ARCHS= amd64 i386 ONLY_FOR_ARCHS_REASON= Only Intel GPUs on x86 are supported LIB_DEPENDS= libopencl-clang.so:devel/opencl-clang USES= bison cmake compiler:c++17-lang python:build USE_GITHUB= yes USE_LDCONFIG= yes GH_ACCOUNT= intel +GH_TUPLE= intel:vc-intrinsics:55124bb:vcintrin +CMAKE_OFF= INSTALL_SPIRVDLL +CMAKE_ARGS= -DVC_INTRINSICS_SRC:PATH="${WRKSRC_vcintrin}" CFLAGS+= -Wno-macro-redefined # __fastcall PLIST_SUB= ARCH_SUFX=${ARCH:S/i386/32/:S/amd//:S/x86_//} .if (exists(/usr/lib/clang/10.0.0) || exists(/usr/lib/clang/10.0.1) || exists(/usr/lib/clang/11.0.0)) && ${CXX} == c++ # https://github.com/intel/intel-graphics-compiler/issues/126 BUILD_DEPENDS+= clang++90:devel/llvm90 USES:= ${USES:Ncompiler*} CXX= clang++90 .endif post-patch: # lang/python* don't install unsuffixed symlinks @${REINPLACE_CMD} -i .python \ -e '/EXECUTABLE/s/"python"/"${PYTHON_CMD:T}"/' \ -e '/IGC_PYTHON/s/"python"/"${PYTHON_CMD:T}"/' \ ${WRKSRC}/IGC/CMakeLists.txt \ ${WRKSRC}/IGC/BiFModule/CMakeLists.txt # devel/llvm* have different naming from upstream under PATH @${REINPLACE_CMD} -e '/clang-\$$/s//clang$$/' \ ${WRKSRC}/IGC/BiFModule/CMakeLists.txt # No need to abort on every benign warning enabled by default @${REINPLACE_CMD} -e 's/"-Werror"//; /-Werror/d' \ ${WRKSRC}/IGC/CMakeLists.txt pre-configure: # Only one libLLVM can be loaded, so use the same version as devel/opencl-clang @for f in ${LOCALBASE}/lib/libopencl-clang.so.*; do \ ${REINPLACE_CMD} "/set.*LLVM_VERSION/s/\".*\"/\"$${f##*so.}\"/" \ ${WRKSRC}/IGC/CMakeLists.txt; \ done .include Index: head/devel/intel-graphics-compiler/distinfo =================================================================== --- head/devel/intel-graphics-compiler/distinfo (revision 546965) +++ head/devel/intel-graphics-compiler/distinfo (revision 546966) @@ -1,5 +1,7 @@ -TIMESTAMP = 1593779742 -SHA256 (intel-intel-graphics-compiler-igc-1.0.4312_GH0.tar.gz) = 6a36b13639d24416cd3c47020ba917813801f0935a55c11c46a4450d918e7a7b -SIZE (intel-intel-graphics-compiler-igc-1.0.4312_GH0.tar.gz) = 5800590 +TIMESTAMP = 1597743403 +SHA256 (intel-intel-graphics-compiler-igc-1.0.4756_GH0.tar.gz) = 25b93adddc4ca5da0988af7d012c7c3d00b628670297c703f252f3b321856055 +SIZE (intel-intel-graphics-compiler-igc-1.0.4756_GH0.tar.gz) = 6606990 +SHA256 (intel-vc-intrinsics-55124bb_GH0.tar.gz) = e59ecabbf2a3c8dec26013f3d72353dfd3e1d8c3b7437a5db8a4cb56bfe592f6 +SIZE (intel-vc-intrinsics-55124bb_GH0.tar.gz) = 96981 SHA256 (b4e40a433077.patch) = 56950deb485a4c1dc844f4864f42b80907919b61132b0e797f7955989fed0597 SIZE (b4e40a433077.patch) = 9585 Index: head/devel/intel-graphics-compiler/files/patch-unix =================================================================== --- head/devel/intel-graphics-compiler/files/patch-unix (revision 546965) +++ head/devel/intel-graphics-compiler/files/patch-unix (revision 546966) @@ -1,300 +1,300 @@ Relax Linux checks for the code works on any non-Windows platform. CMake Error at IGC/CMakeLists.txt:1974 (message): IGC_OPTION__ARCHITECTURE_TARGET: Target architecture is not specified and cannot be deduced from context. Please specify one, e.g. Windows32, Linux64, Android32, ... --- IGC/CMakeLists.txt.orig 2019-11-27 01:05:20 UTC +++ IGC/CMakeLists.txt @@ -834,11 +834,11 @@ function(igc_arch_detect targetArchVarName hostArchVar set(_targetArchitecture "Windows32") endif() # Use system processor set by toolchain or CMake. - elseif(ANDROID OR (CMAKE_SYSTEM_NAME MATCHES "Linux") + elseif(ANDROID OR (UNIX AND NOT APPLE) ) if(ANDROID) set(_targetArchOS "Android") - elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") + elseif(UNIX AND NOT APPLE) set(_targetArchOS "Linux") endif() @@ -865,9 +865,9 @@ function(igc_arch_detect targetArchVarName hostArchVar set(_hostArchitecture "Windows32") endif() # Use 'uname -m' to detect kernel architecture. - elseif((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") + elseif((UNIX AND NOT APPLE) ) - if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") + if(UNIX AND NOT APPLE) set(_hostArchOS "Linux") endif() @@ -2171,7 +2171,7 @@ endif() # NOTE: LLVM_ON_UNIX is also true for Android (CMAKE_SYSTEM_NAME specified by Android toolchain file is also "Linux", # but we should make sure so there is no errors in our assumptions). -if((CMAKE_SYSTEM_NAME MATCHES "Linux") OR ANDROID) +if((UNIX AND NOT APPLE) OR ANDROID) set(LLVM_ON_UNIX ON) else() set(LLVM_ON_UNIX OFF) --- 3d/common/iStdLib/File.h.orig 2019-11-27 01:05:20 UTC +++ 3d/common/iStdLib/File.h @@ -105,12 +105,9 @@ inline DWORD GetModuleFileName( char* pFileName, DWORD #elif defined(ISTDLIB_UMD) #if defined(_WIN32) return ::GetModuleFileNameA( NULL, pFileName, bufSize ); - #elif defined(__linux__) + #else //TODO: add Linux implementation. return 0; - #else - // TO DO: replace with non-Windows version - #error "TODO implement non-Windows equivalent of GetModuleFileName" #endif #else // this compilation path is not intended --- 3d/common/iStdLib/Object.h.orig 2019-11-27 01:05:20 UTC +++ 3d/common/iStdLib/Object.h @@ -150,7 +150,7 @@ inline long CObject::Acquire( void ) ASSERT( m_RefCount >= 0 ); ASSERT( m_RefCount < LONG_MAX ); -#if defined(ISTDLIB_MT) && defined(__linux__) +#if defined(ISTDLIB_MT) && defined(__GNUC__) __sync_fetch_and_add(&m_RefCount, 1); #elif defined(ISTDLIB_MT) ::InterlockedIncrement(&m_RefCount); @@ -182,7 +182,7 @@ inline long CObject::Release( void ) { ASSERT( m_RefCount > 0 ); -#if defined(ISTDLIB_MT) && defined(__linux__) +#if defined(ISTDLIB_MT) && defined(__GNUC__) __sync_sub_and_fetch(&m_RefCount, 1); #elif defined(ISTDLIB_MT) ::InterlockedDecrement(&m_RefCount); --- 3d/common/iStdLib/utility.h.orig 2019-11-27 01:05:20 UTC +++ 3d/common/iStdLib/utility.h @@ -431,7 +431,7 @@ __forceinline DWORD bsr64( const unsigned long long in _BitScanReverse64( &index, static_cast<_int64>( mask ) ); return static_cast( index ); -#elif defined __linux__ +#elif defined __GNUC__ return static_cast( 63 - __builtin_clzll( mask ) ); #else @@ -464,7 +464,7 @@ __forceinline DWORD bsr( const DWORD mask ) _BitScanReverse( &index, mask ); return static_cast(index); -#elif defined __linux__ +#elif defined __GNUC__ return static_cast( 31 - __builtin_clz( mask ) ); #else @@ -497,7 +497,7 @@ __forceinline DWORD bsf64( const unsigned long long in _BitScanForward64( &index, static_cast<_int64>( mask ) ); return static_cast( index ); -#elif defined __linux__ +#elif defined __GNUC__ return static_cast( __builtin_ffsll( mask ) - 1 ); #else @@ -529,7 +529,7 @@ __forceinline DWORD bsf( const DWORD mask ) _BitScanForward( &index, mask ); return index; -#elif defined __linux__ +#elif defined __GNUC__ return static_cast( __builtin_ffsl( mask ) - 1 ); #else --- IGC/AdaptorCommon/customApi.cpp.orig 2019-11-27 01:05:20 UTC +++ IGC/AdaptorCommon/customApi.cpp @@ -457,7 +457,7 @@ namespace IGC return ""; IGCBaseFolder = "/sdcard/intel/igc/"; -#elif defined __linux__ +#elif !defined __APPLE__ if (!IGC_IS_FLAG_ENABLED(DumpToCustomDir)) { IGCBaseFolder = "/tmp/IntelIGC/"; @@ -560,7 +560,7 @@ namespace IGC g_shaderOutputFolder = ""; -#elif defined __linux__ +#elif !defined __APPLE__ if (!IGC_IS_FLAG_ENABLED(DumpToCurrentDir) && g_shaderOutputFolder == "" && !IGC_IS_FLAG_ENABLED(DumpToCustomDir)) { bool needMkdir = false; --- IGC/AdaptorOCL/CLElfLib/CLElfTypes.h.orig 2020-05-19 05:44:04 UTC +++ IGC/AdaptorOCL/CLElfLib/CLElfTypes.h @@ -30,7 +30,7 @@ Abstract: Defines the types used for ELF headers/sect \******************************************************************************/ #pragma once -#if defined(__linux__) && defined(OGL) +#if !defined(__APPLE__) && !defined(_WIN32) && defined(OGL) #include "os_inc.h" #endif --- IGC/AdaptorOCL/DriverInfoOCL.hpp.orig 2020-02-22 05:52:18 UTC +++ IGC/AdaptorOCL/DriverInfoOCL.hpp @@ -71,7 +71,7 @@ namespace TC bool supportsStatelessSpacePrivateMemory() const override { return true; } bool NeedFP64(PRODUCT_FAMILY productFamily) const override { -#if defined(__linux__) +#if !defined(__APPLE__) && !defined(_WIN32) if (IGC_IS_FLAG_ENABLED(EnableDPEmulation)) { return true; } --- IGC/AdaptorOCL/OCL/sp/gtpin_igc_ocl.h.orig 2019-11-27 01:05:20 UTC +++ IGC/AdaptorOCL/OCL/sp/gtpin_igc_ocl.h @@ -38,7 +38,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define MY_CALLINGSTD _fastcall #define MY_CDECL _cdecl -#elif defined(ANDROID) || defined (__linux__) +#elif defined(__GNUC__) // Linux, Android #define MY_EXTERN_C extern "C" --- IGC/GenISAIntrinsics/GenIntrinsics.h.orig 2020-02-10 06:06:31 UTC +++ IGC/GenISAIntrinsics/GenIntrinsics.h @@ -67,7 +67,7 @@ namespace GenISAIntrinsic { /// Thus the type array should two elements: /// Type Ts[2]{int2, int2}: to resolve to the first instance. /// Type Ts[2]{int4, int4}: to resolve to the second. -#if defined(ANDROID) || defined(__linux__) +#if defined(__GNUC__) __attribute__ ((visibility ("default"))) Function *getDeclaration(Module *M, ID id, ArrayRef OverloadedTys = None); #else Function *getDeclaration(Module *M, ID id, ArrayRef OverloadedTys = None); --- IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp.orig 2019-11-27 01:05:20 UTC +++ IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp @@ -65,9 +65,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #if defined(_WIN32 )|| defined( _WIN64 ) #include #include -#endif - -#if defined __linux__ +#elif !defined(__APPLE__) #include "iStdLib/File.h" #endif @@ -311,7 +309,7 @@ namespace FCL IGCBaseFolder = pathBuf; } -#elif defined __linux__ +#elif !defined(__APPLE__) if (!FCL_IGC_IS_FLAG_ENABLED(DumpToCustomDir)) { IGCBaseFolder = "/tmp/IntelIGC/"; @@ -387,7 +385,7 @@ namespace FCL iSTD::CreateAppOutputDir(pathBuf, 256, GetBaseIGCOutputFolder(), false, true, !FCL_IGC_IS_FLAG_ENABLED(ShaderDumpPidDisable)); g_shaderOutputFolder = pathBuf; } -#elif defined __linux__ +#elif !defined(__APPLE__) if (!FCL_IGC_IS_FLAG_ENABLED(DumpToCurrentDir) && g_shaderOutputFolder == "" && !FCL_IGC_IS_FLAG_ENABLED(DumpToCustomDir)) { bool needMkdir = true; --- IGC/common/LLVMWarningsPop.hpp.orig 2019-11-27 01:05:20 UTC +++ IGC/common/LLVMWarningsPop.hpp @@ -58,6 +58,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # pragma warning( pop ) #endif -#if defined(__linux__) +#if defined(__GNUC__) # pragma GCC diagnostic pop #endif --- IGC/common/LLVMWarningsPush.hpp.orig 2019-11-27 01:05:20 UTC +++ IGC/common/LLVMWarningsPush.hpp @@ -55,13 +55,13 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # pragma warning( push ) #endif -#if defined(__linux__) +#if defined(__GNUC__) # pragma GCC diagnostic push #endif #include -#if defined(__linux__) +#if defined(__GNUC__) # if __GNUC__ > 8 # pragma GCC diagnostic ignored "-Winit-list-lifetime" # endif --- IGC/common/igc_regkeys.hpp.orig 2019-11-27 01:05:20 UTC +++ IGC/common/igc_regkeys.hpp @@ -39,7 +39,7 @@ typedef char debugString[256]; #define IGC_DEBUG_VARIABLES #endif -#if defined( __linux__ ) +#if !defined( __APPLE__ ) && !defined( _WIN32 ) #define IGC_DEBUG_VARIABLES #endif @@ -67,7 +67,7 @@ struct SRegKeyVariableMetaData } }; -#if defined ( __linux__ ) && !defined( _DEBUG ) && !defined( _INTERNAL ) +#if !defined ( _WIN32 ) && !defined( _DEBUG ) && !defined( _INTERNAL ) #define LINUX_RELEASE_MODE #endif ---- visa/BuildCISAIRImpl.cpp.orig 2020-01-09 09:46:51 UTC +--- visa/BuildCISAIRImpl.cpp.orig 2020-08-18 09:36:43 UTC +++ visa/BuildCISAIRImpl.cpp -@@ -684,7 +684,6 @@ extern void CISA_delete_buffer(YY_BUFFER_STATE buf); +@@ -568,7 +568,6 @@ extern void CISA_delete_buffer(YY_BUFFER_STATE buf); int CISA_IR_Builder::ParseVISAText(const std::string& visaHeader, const std::string& visaText, const std::string& visaTextFile) { -#if defined(__linux__) || defined(_WIN64) || defined(_WIN32) // Direct output of parser to null #if defined(_WIN64) || defined(_WIN32) CISAout = fopen("nul", "w"); -@@ -746,16 +745,11 @@ int CISA_IR_Builder::ParseVISAText(const std::string& +@@ -612,16 +611,11 @@ int CISA_IR_Builder::ParseVISAText(const std::string& } return VISA_SUCCESS; -#else -- assert(0 && "Asm parsing not supported on this platform"); +- assert(0 && "vISA asm parsing not supported on this platform"); - return VISA_FAILURE; -#endif } // Parses inline asm file from ShaderOverride int CISA_IR_Builder::ParseVISAText(const std::string& visaFile) { -#if defined(__linux__) || defined(_WIN64) || defined(_WIN32) // Direct output of parser to null #if defined(_WIN64) || defined(_WIN32) CISAout = fopen("nul", "w"); -@@ -781,10 +775,6 @@ int CISA_IR_Builder::ParseVISAText(const std::string& +@@ -647,10 +641,6 @@ int CISA_IR_Builder::ParseVISAText(const std::string& fclose(CISAout); } return VISA_SUCCESS; -#else - assert(0 && "Asm parsing not supported on this platform"); - return VISA_FAILURE; -#endif } // default size of the kernel mem manager in bytes Index: head/lang/intel-compute-runtime/Makefile =================================================================== --- head/lang/intel-compute-runtime/Makefile (revision 546965) +++ head/lang/intel-compute-runtime/Makefile (revision 546966) @@ -1,60 +1,61 @@ # $FreeBSD$ PORTNAME= compute-runtime DISTVERSION= 20.34.17727 +PORTREVISION= 1 CATEGORIES= lang PKGNAMEPREFIX= intel- MAINTAINER= jbeich@FreeBSD.org COMMENT= OpenCL implementation for Intel HD 5000 (Gen8) or newer LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE ONLY_FOR_ARCHS= amd64 i386 ONLY_FOR_ARCHS_REASON= Only Intel GPUs on x86 are supported LIB_DEPENDS= libigc.so:devel/intel-graphics-compiler \ libigdgmm.so:multimedia/gmmlib USES= cmake compiler:c++14-lang localbase:ldflags pkgconfig USE_GITHUB= yes USE_LDCONFIG= yes GH_ACCOUNT= intel CMAKE_ON= SKIP_UNIT_TESTS CMAKE_ARGS= -DNEO_OCL_DRIVER_VERSION:STRING="${DISTVERSIONFULL}" PLIST_FILES= bin/ocloc \ etc/OpenCL/vendors/intel.icd \ include/ocloc_api.h \ lib/intel-opencl/libigdrcl.so \ lib/libocloc.so \ ${NULL} OPTIONS_DEFINE= VAAPI OPTIONS_DEFAULT=VAAPI OPTIONS_DEFINE_amd64= L0 OPTIONS_DEFAULT_amd64= L0 L0_DESC= oneAPI Level Zero support L0_BUILD_DEPENDS= level-zero>=1.0:devel/level-zero L0_CMAKE_BOOL= BUILD_WITH_L0 L0_CMAKE_ON= -DNEO_VERSION_BUILD:STRING="0" L0_PLIST_FILES= lib/libze_intel_gpu.so.1 \ lib/libze_intel_gpu.so.1.0.0 VAAPI_BUILD_DEPENDS= ${LOCALBASE}/include/va/va.h:multimedia/libva VAAPI_CMAKE_BOOL_OFF= DISABLE_LIBVA post-patch: @${REINPLACE_CMD} -e '/-Werror/d' \ -e '/FORCE_RESPONSE_FILE/d' \ ${WRKSRC}/CMakeLists.txt @${REINPLACE_CMD} -e '/OCL_ICD_VENDORDIR/s,/etc,${PREFIX}&,' \ ${WRKSRC}/package.cmake post-install: # install/strip has no effect on install(FILES), so strip manually ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/* ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/intel-opencl/*.so .include