Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2021-04-19 15:41:14 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-04-19 15:41:14 +0300
commit33f218fa3f93a3d574d81d65628188921d6f100c (patch)
tree5c81e164070323a60a23c2677973600ad7871552 /build_files
parentc75b2019e101c498ccf65442ed262596639ee8bc (diff)
Fix T86530: crash with Cycles OSL on Arm64
Bug in OSL itself, fix is submitted upstream.
Diffstat (limited to 'build_files')
-rw-r--r--build_files/build_environment/patches/osl.diff16
1 files changed, 16 insertions, 0 deletions
diff --git a/build_files/build_environment/patches/osl.diff b/build_files/build_environment/patches/osl.diff
index badb6c0d9b3..cd1b58bf580 100644
--- a/build_files/build_environment/patches/osl.diff
+++ b/build_files/build_environment/patches/osl.diff
@@ -63,3 +63,19 @@ diff -Naur org/CMakeLists.txt external_osl/CMakeLists.txt
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
+diff --git a/src/liboslexec/llvm_util.cpp b/src/liboslexec/llvm_util.cpp
+index 445f6400..3d468de2 100644
+--- a/src/liboslexec/llvm_util.cpp
++++ b/src/liboslexec/llvm_util.cpp
+@@ -3430,8 +3430,9 @@ LLVM_Util::call_function (llvm::Value *func, cspan<llvm::Value *> args)
+ #endif
+ //llvm_gen_debug_printf (std::string("start ") + std::string(name));
+ #if OSL_LLVM_VERSION >= 110
+- OSL_DASSERT(llvm::isa<llvm::Function>(func));
+- llvm::Value *r = builder().CreateCall(llvm::cast<llvm::Function>(func), llvm::ArrayRef<llvm::Value *>(args.data(), args.size()));
++ llvm::Value* r = builder().CreateCall(
++ llvm::cast<llvm::FunctionType>(func->getType()->getPointerElementType()), func,
++ llvm::ArrayRef<llvm::Value*>(args.data(), args.size()));
+ #else
+ llvm::Value *r = builder().CreateCall (func, llvm::ArrayRef<llvm::Value *>(args.data(), args.size()));
+ #endif