Index: head/devel/intel-graphics-compiler/Makefile =================================================================== --- head/devel/intel-graphics-compiler/Makefile (revision 568577) +++ head/devel/intel-graphics-compiler/Makefile (revision 568578) @@ -1,54 +1,52 @@ # $FreeBSD$ PORTNAME= intel-graphics-compiler DISTVERSIONPREFIX= igc- -DISTVERSION= 1.0.6410 +DISTVERSION= 1.0.6646 CATEGORIES= devel PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ -PATCHFILES+= d878880cbb3b.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/129 -PATCHFILES+= f44eb990ac84.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/156 -PATCHFILES+= 02d82a7ccbe6.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/156 +PATCHFILES+= 996e2fe60899.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/173 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:e7837b2:vcintrin/../vc-intrinsics CMAKE_OFF= INSTALL_SPIRVDLL CFLAGS+= -Wno-macro-redefined # __fastcall PLIST_SUB= ARCH_SUFX=${ARCH:S/i386/32/:S/amd//:S/x86_//} 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}/external/llvm/llvm_preferred_version.cmake; \ done .include Index: head/devel/intel-graphics-compiler/distinfo =================================================================== --- head/devel/intel-graphics-compiler/distinfo (revision 568577) +++ head/devel/intel-graphics-compiler/distinfo (revision 568578) @@ -1,11 +1,7 @@ -TIMESTAMP = 1613381370 -SHA256 (intel-intel-graphics-compiler-igc-1.0.6410_GH0.tar.gz) = 48ff5f78ac7248ba68e3afa9e2b3871f970b5e660c91c62e1a4431d88c5805c2 -SIZE (intel-intel-graphics-compiler-igc-1.0.6410_GH0.tar.gz) = 7302962 +TIMESTAMP = 1615184636 +SHA256 (intel-intel-graphics-compiler-igc-1.0.6646_GH0.tar.gz) = d952164c2cb562b26297cea2b355cb1728e8524652cebfb564227c613ef6d78e +SIZE (intel-intel-graphics-compiler-igc-1.0.6646_GH0.tar.gz) = 7332807 SHA256 (intel-vc-intrinsics-e7837b2_GH0.tar.gz) = 1f5328860688c2191d54687a7866fc393f7cc6a30de7b10689c1a081ef14880a SIZE (intel-vc-intrinsics-e7837b2_GH0.tar.gz) = 122381 -SHA256 (d878880cbb3b.patch) = f430b2da0d212594ce73f23b279a1435f08dea60f30ec35494411ab0dc0fcf70 -SIZE (d878880cbb3b.patch) = 9088 -SHA256 (f44eb990ac84.patch) = 4774683855caa8ef44a85a43356b7d509683bbdbef23e31ab6f5e4075715d67c -SIZE (f44eb990ac84.patch) = 1547 -SHA256 (02d82a7ccbe6.patch) = 396198830fb7e55318a870d46e93d93aaa5dca90a7979e3b3f7afcca965f1938 -SIZE (02d82a7ccbe6.patch) = 1292 +SHA256 (996e2fe60899.patch) = bd28197532678ed6506321223a64b28b957ce83289ea082cb88c826cc59e3052 +SIZE (996e2fe60899.patch) = 1537 Index: head/devel/intel-graphics-compiler/files/patch-unix =================================================================== --- head/devel/intel-graphics-compiler/files/patch-unix (revision 568577) +++ head/devel/intel-graphics-compiler/files/patch-unix (revision 568578) @@ -1,333 +1,322 @@ 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/AdaptorOCL/ocl_igc_interface/impl/fcl_ocl_translation_ctx_impl.cpp.orig 2020-11-21 02:52:12 UTC +++ IGC/AdaptorOCL/ocl_igc_interface/impl/fcl_ocl_translation_ctx_impl.cpp @@ -64,7 +64,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include -#if defined(__linux__) +#if defined(__unix__) #include #else #include @@ -132,7 +132,7 @@ llvm::Optional> readBinaryFile(const #if !defined(WDDM_LINUX) && (!defined(IGC_VC_DISABLED) || !IGC_VC_DISABLED) static std::string detectCmIncludes(llvm::sys::DynamicLibrary &LibInfo) { -#if defined(__linux__) +#if defined(__unix__) #define GetFunctionNameAsStr(s) ((void)s, #s); const char *SymName = GetFunctionNameAsStr(IntelCMClangFECompile); void *FAddr = LibInfo.getAddressOfSymbol(SymName); --- 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/VectorCompiler/lib/GenXCodeGen/GenXWrapper.cpp.orig 2020-10-30 09:08:26 UTC -+++ IGC/VectorCompiler/lib/GenXCodeGen/GenXWrapper.cpp -@@ -24,7 +24,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - ======================= end_copyright_notice ==================================*/ - +--- IGC/VectorCompiler/lib/GenXCodeGen/SPIRVWrapper.cpp.orig 2021-03-08 06:23:56 UTC ++++ IGC/VectorCompiler/lib/GenXCodeGen/SPIRVWrapper.cpp +@@ -48,7 +48,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + #include "llvm/Support/DynamicLibrary.h" + #include "llvm/Support/Path.h" + #include "llvm/Support/Process.h" -#if defined(__linux__) +#if !defined(_WIN32) #include - #endif - -@@ -121,7 +121,7 @@ translateSPIRVToIR(ArrayRef Input, ArrayRef getSpirvReadVerifyFunc + constexpr char *SpirvReadVerifyName = "spirv_read_verify_module"; const std::string SpirvLibPath = findSpirvDLL(); -#if defined(__linux__) +#if defined(RTLD_DEEPBIND) // Hack to workaround cmoc crashes during loading of SPIRV library static auto DeepBindHack = dlopen(SpirvLibPath.c_str(), RTLD_NOW | RTLD_DEEPBIND); --- 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 2020-09-16 10:27:28 UTC +++ IGC/common/LLVMWarningsPush.hpp @@ -55,7 +55,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # pragma warning( push ) #endif -#if defined(__linux__) +#if defined(__GNUC__) # pragma GCC diagnostic push # if __GNUC__ > 8 # pragma GCC diagnostic ignored "-Winit-list-lifetime" --- 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-09-16 10:27:28 UTC +++ visa/BuildCISAIRImpl.cpp @@ -576,7 +576,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"); @@ -627,16 +626,11 @@ int CISA_IR_Builder::ParseVISAText(const std::string& } return status; -#else - 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"); @@ -662,10 +656,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