2022-10-20 13:25:54 +02:00
|
|
|
diff -Naur OpenShadingLanguage-1.12.6.2/CMakeLists.txt external_osl/CMakeLists.txt
|
|
|
|
--- OpenShadingLanguage-1.12.6.2/CMakeLists.txt 2022-09-30 17:43:53 -0600
|
|
|
|
+++ external_osl/CMakeLists.txt 2022-10-15 14:49:26 -0600
|
|
|
|
@@ -101,6 +101,11 @@
|
2021-02-24 07:13:37 -07:00
|
|
|
CACHE STRING "Directory where OptiX PTX files will be installed")
|
|
|
|
set (CMAKE_DEBUG_POSTFIX "" CACHE STRING "Library naming postfix for Debug builds (e.g., '_debug')")
|
2022-10-20 13:25:54 +02:00
|
|
|
|
2020-05-31 13:15:40 -06:00
|
|
|
+set (USE_OIIO_STATIC ON CACHE BOOL "If OIIO is built static")
|
|
|
|
+if (USE_OIIO_STATIC)
|
|
|
|
+ add_definitions ("-DOIIO_STATIC_BUILD=1")
|
|
|
|
+ add_definitions ("-DOIIO_STATIC_DEFINE=1")
|
|
|
|
+endif ()
|
2022-10-20 13:25:54 +02:00
|
|
|
|
2020-05-31 13:15:40 -06:00
|
|
|
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
|
2021-02-24 07:13:37 -07:00
|
|
|
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
|
2022-10-20 13:25:54 +02:00
|
|
|
diff -Naur OpenShadingLanguage-1.12.6.2/src/cmake/externalpackages.cmake external_osl/src/cmake/externalpackages.cmake
|
|
|
|
--- OpenShadingLanguage-1.12.6.2/src/cmake/externalpackages.cmake 2022-09-30 17:43:53 -0600
|
|
|
|
+++ external_osl/src/cmake/externalpackages.cmake 2022-10-15 14:49:26 -0600
|
|
|
|
@@ -77,6 +77,7 @@
|
|
|
|
|
|
|
|
|
2021-07-27 10:15:31 +02:00
|
|
|
checked_find_package (ZLIB REQUIRED) # Needed by several packages
|
|
|
|
+checked_find_package (PNG REQUIRED) # Needed since OIIO needs it
|
2022-10-20 13:25:54 +02:00
|
|
|
|
2021-07-27 10:15:31 +02:00
|
|
|
# IlmBase & OpenEXR
|
|
|
|
checked_find_package (OpenEXR REQUIRED
|
2022-10-20 13:25:54 +02:00
|
|
|
diff -Naur OpenShadingLanguage-1.12.6.2/src/include/OSL/llvm_util.h external_osl/src/include/OSL/llvm_util.h
|
|
|
|
--- OpenShadingLanguage-1.12.6.2/src/include/OSL/llvm_util.h 2022-09-30 17:43:53 -0600
|
|
|
|
+++ external_osl/src/include/OSL/llvm_util.h 2022-10-15 15:37:24 -0600
|
|
|
|
@@ -9,6 +9,8 @@
|
|
|
|
#include <unordered_set>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
+#define OSL_HAS_BLENDER_CLEANUP_FIX
|
|
|
|
+
|
|
|
|
#ifdef LLVM_NAMESPACE
|
|
|
|
namespace llvm = LLVM_NAMESPACE;
|
|
|
|
#endif
|
|
|
|
@@ -455,7 +457,7 @@
|
|
|
|
llvm::BasicBlock* masked_return_block() const;
|
|
|
|
|
|
|
|
bool is_masking_required() const { return m_is_masking_required; }
|
|
|
|
-
|
|
|
|
+ static void Cleanup ();
|
|
|
|
struct ScopedMasking {
|
|
|
|
ScopedMasking() {}
|
|
|
|
|
|
|
|
diff -Naur OpenShadingLanguage-1.12.6.2/src/liboslcomp/oslcomp.cpp external_osl/src/liboslcomp/oslcomp.cpp
|
|
|
|
--- OpenShadingLanguage-1.12.6.2/src/liboslcomp/oslcomp.cpp 2022-09-30 17:43:53 -0600
|
|
|
|
+++ external_osl/src/liboslcomp/oslcomp.cpp 2022-10-15 14:49:26 -0600
|
2021-07-27 10:15:31 +02:00
|
|
|
@@ -21,6 +21,13 @@
|
|
|
|
#if !defined(__STDC_CONSTANT_MACROS)
|
|
|
|
# define __STDC_CONSTANT_MACROS 1
|
2021-04-19 14:41:14 +02:00
|
|
|
#endif
|
2021-07-27 10:15:31 +02:00
|
|
|
+
|
|
|
|
+// clang uses CALLBACK in its templates which causes issues if it is already defined
|
|
|
|
+#ifdef _WIN32 && defined(CALLBACK)
|
|
|
|
+# undef CALLBACK
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+//
|
|
|
|
#include <clang/Basic/TargetInfo.h>
|
|
|
|
#include <clang/Frontend/CompilerInstance.h>
|
|
|
|
#include <clang/Frontend/TextDiagnosticPrinter.h>
|
2022-10-20 13:25:54 +02:00
|
|
|
diff -Naur OpenShadingLanguage-1.12.6.2/src/liboslexec/llvm_util.cpp external_osl/src/liboslexec/llvm_util.cpp
|
|
|
|
--- OpenShadingLanguage-1.12.6.2/src/liboslexec/llvm_util.cpp 2022-09-30 17:43:53 -0600
|
|
|
|
+++ external_osl/src/liboslexec/llvm_util.cpp 2022-10-15 15:53:11 -0600
|
|
|
|
@@ -116,8 +116,6 @@
|
|
|
|
return { A.data(), size_t(A.size()) };
|
|
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
namespace pvt {
|
|
|
|
|
|
|
|
typedef llvm::SectionMemoryManager LLVMMemoryManager;
|
|
|
|
@@ -182,6 +180,13 @@
|
|
|
|
++jit_mem_hold_users;
|
|
|
|
}
|
|
|
|
|
|
|
|
+void
|
|
|
|
+LLVM_Util::Cleanup()
|
|
|
|
+{
|
|
|
|
+ if (jitmm_hold)
|
|
|
|
+ jitmm_hold->clear();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|
|
|
|
LLVM_Util::ScopedJitMemoryUser::~ScopedJitMemoryUser()
|
|
|
|
{
|
|
|
|
diff --git a/src/include/OSL/mask.h b/src/include/OSL/mask.h
|
|
|
|
index 24197af..b9275f6 100644
|
|
|
|
--- a/src/include/OSL/mask.h
|
|
|
|
+++ b/src/include/OSL/mask.h
|
|
|
|
@@ -4,7 +4,6 @@
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
-#include <immintrin.h>
|
|
|
|
#include <type_traits>
|
|
|
|
|
|
|
|
#include <OSL/oslconfig.h>
|
|
|
|
@@ -23,6 +22,8 @@ using std::countr_zero;
|
|
|
|
|
|
|
|
#elif OSL_INTEL_CLASSIC_COMPILER_VERSION
|
|
|
|
|
|
|
|
+#include <immintrin.h>
|
|
|
|
+
|
|
|
|
OSL_FORCEINLINE int popcount(uint32_t x) noexcept { return _mm_popcnt_u32(x);}
|
|
|
|
OSL_FORCEINLINE int popcount(uint64_t x) noexcept { return _mm_popcnt_u64(x); }
|
|
|
|
OSL_FORCEINLINE int countr_zero(uint32_t x) noexcept { return _bit_scan_forward(x); }
|