build_environment: osl work around shutdown issues.
there is an issue with objects destructing in a non deterministic way during process shutdown, temporary work around this until osl has a fix in place.
This commit is contained in:
@@ -83,7 +83,7 @@ ExternalProject_Add(external_osl
|
|||||||
LIST_SEPARATOR ^^
|
LIST_SEPARATOR ^^
|
||||||
URL_HASH MD5=${OSL_HASH}
|
URL_HASH MD5=${OSL_HASH}
|
||||||
PREFIX ${BUILD_DIR}/osl
|
PREFIX ${BUILD_DIR}/osl
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 3 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl.diff
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl.diff
|
||||||
# ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl_simd_oiio.diff
|
# ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl_simd_oiio.diff
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/osl -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ${DEFAULT_CMAKE_FLAGS} ${OSL_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/osl -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ${DEFAULT_CMAKE_FLAGS} ${OSL_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/osl
|
INSTALL_DIR ${LIBDIR}/osl
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
diff -Naur osl/src/external_osl/src/cmake/flexbison.cmake osl_bak/src/external_osl/src/cmake/flexbison.cmake
|
diff -Naur OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake external_osl/src/cmake/flexbison.cmake
|
||||||
--- osl/src/external_osl//src/cmake/flexbison.cmake 2016-01-29 11:15:22 -0700
|
--- OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake 2018-05-01 16:39:02 -0600
|
||||||
+++ osl_bak/src/external_osl/src/cmake/flexbison.cmake 2016-02-29 21:26:26 -0700
|
+++ external_osl/src/cmake/flexbison.cmake 2018-08-23 15:42:27 -0600
|
||||||
@@ -77,7 +77,7 @@
|
@@ -77,7 +77,7 @@
|
||||||
DEPENDS ${${compiler_headers}}
|
DEPENDS ${${compiler_headers}}
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||||
@@ -10,3 +10,65 @@ diff -Naur osl/src/external_osl/src/cmake/flexbison.cmake osl_bak/src/external_o
|
|||||||
MAIN_DEPENDENCY ${flexsrc}
|
MAIN_DEPENDENCY ${flexsrc}
|
||||||
DEPENDS ${${compiler_headers}}
|
DEPENDS ${${compiler_headers}}
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||||
|
diff -Naur OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake.rej external_osl/src/cmake/flexbison.cmake.rej
|
||||||
|
--- OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake.rej 1969-12-31 17:00:00 -0700
|
||||||
|
+++ external_osl/src/cmake/flexbison.cmake.rej 2018-08-24 17:42:11 -0600
|
||||||
|
@@ -0,0 +1,11 @@
|
||||||
|
+--- src/cmake/flexbison.cmake 2018-05-01 16:39:02 -0600
|
||||||
|
++++ src/cmake/flexbison.cmake 2018-08-24 10:24:03 -0600
|
||||||
|
+@@ -77,7 +77,7 @@
|
||||||
|
+ DEPENDS ${${compiler_headers}}
|
||||||
|
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||||
|
+ ADD_CUSTOM_COMMAND ( OUTPUT ${flexoutputcxx}
|
||||||
|
+- COMMAND ${FLEX_EXECUTABLE} -o ${flexoutputcxx} "${CMAKE_CURRENT_SOURCE_DIR}/${flexsrc}"
|
||||||
|
++ COMMAND ${FLEX_EXECUTABLE} ${FLEX_EXTRA_OPTIONS} -o ${flexoutputcxx} "${CMAKE_CURRENT_SOURCE_DIR}/${flexsrc}"
|
||||||
|
+ MAIN_DEPENDENCY ${flexsrc}
|
||||||
|
+ DEPENDS ${${compiler_headers}}
|
||||||
|
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||||
|
diff -Naur OpenShadingLanguage-Release-1.9.9/src/include/OSL/llvm_util.h external_osl/src/include/OSL/llvm_util.h
|
||||||
|
--- OpenShadingLanguage-Release-1.9.9/src/include/OSL/llvm_util.h 2018-05-01 16:39:02 -0600
|
||||||
|
+++ external_osl/src/include/OSL/llvm_util.h 2018-08-25 14:05:00 -0600
|
||||||
|
@@ -33,6 +33,8 @@
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
+#define OSL_HAS_BLENDER_CLEANUP_FIX
|
||||||
|
+
|
||||||
|
#ifdef LLVM_NAMESPACE
|
||||||
|
namespace llvm = LLVM_NAMESPACE;
|
||||||
|
#endif
|
||||||
|
@@ -487,6 +489,7 @@
|
||||||
|
std::string func_name (llvm::Function *f);
|
||||||
|
|
||||||
|
static size_t total_jit_memory_held ();
|
||||||
|
+ static void Cleanup ();
|
||||||
|
|
||||||
|
private:
|
||||||
|
class MemoryManager;
|
||||||
|
diff -Naur OpenShadingLanguage-Release-1.9.9/src/include/OSL/oslnoise.h external_osl/src/include/OSL/oslnoise.h
|
||||||
|
--- OpenShadingLanguage-Release-1.9.9/src/include/OSL/oslnoise.h 2018-05-01 16:39:02 -0600
|
||||||
|
+++ external_osl/src/include/OSL/oslnoise.h 2018-08-24 17:42:11 -0600
|
||||||
|
@@ -762,7 +762,7 @@
|
||||||
|
// packed into a float4. We assume T is float and VECTYPE is float4,
|
||||||
|
// but it also works if T is Dual2<float> and VECTYPE is Dual2<float4>.
|
||||||
|
template<typename T, typename VECTYPE>
|
||||||
|
-OIIO_FORCEINLINE T bilerp (VECTYPE abcd, T u, T v) {
|
||||||
|
+OIIO_FORCEINLINE T bilerp (VECTYPE& abcd, T u, T v) {
|
||||||
|
VECTYPE xx = OIIO::lerp (abcd, OIIO::simd::shuffle<1,1,3,3>(abcd), u);
|
||||||
|
return OIIO::simd::extract<0>(OIIO::lerp (xx,OIIO::simd::shuffle<2>(xx), v));
|
||||||
|
}
|
||||||
|
diff -Naur OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp external_osl/src/liboslexec/llvm_util.cpp
|
||||||
|
--- OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp 2018-05-01 16:39:02 -0600
|
||||||
|
+++ external_osl/src/liboslexec/llvm_util.cpp 2018-08-25 14:04:27 -0600
|
||||||
|
@@ -140,7 +140,10 @@
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
-
|
||||||
|
+void LLVM_Util::Cleanup ()
|
||||||
|
+{
|
||||||
|
+ jitmm_hold.clear();
|
||||||
|
+}
|
||||||
|
|
||||||
|
size_t
|
||||||
|
LLVM_Util::total_jit_memory_held ()
|
||||||
|
Reference in New Issue
Block a user