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
path: root/intern
diff options
context:
space:
mode:
authorPatrick Mours <pmours@nvidia.com>2020-11-02 20:00:13 +0300
committerPatrick Mours <pmours@nvidia.com>2020-11-02 20:00:13 +0300
commitcf7343a35559c7fec2047c3e5d7ef4dd7c1e64a5 (patch)
tree5be4ac43dc63c28aa27812757a8dd2dc15216576 /intern
parent1408052781d06b784cdb5e7cbf03874ba42dc9a6 (diff)
Fix Cycles kernel compile error with NanoVDB because of type redefinition
Cycles defines some basic integer types since it cannot use the standard headers when compiling with NVRTC. NanoVDB however only does this when the "__CUDACC_RTC__" define is set and otherwise includes the standard "stdint.h" header which clashes with those typedefs. So for compatibility do the same thing in the Cycles kernel headers. See also T81454.
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/kernel/kernel_compat_cuda.h4
-rw-r--r--intern/cycles/kernel/kernel_compat_optix.h4
2 files changed, 8 insertions, 0 deletions
diff --git a/intern/cycles/kernel/kernel_compat_cuda.h b/intern/cycles/kernel/kernel_compat_cuda.h
index 4094e173da9..ea3b78b7cef 100644
--- a/intern/cycles/kernel/kernel_compat_cuda.h
+++ b/intern/cycles/kernel/kernel_compat_cuda.h
@@ -32,8 +32,12 @@
/* Manual definitions so we can compile without CUDA toolkit. */
+#ifdef __CUDACC_RTC__
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
+#else
+# include <stdint.h>
+#endif
typedef unsigned short half;
typedef unsigned long long CUtexObject;
diff --git a/intern/cycles/kernel/kernel_compat_optix.h b/intern/cycles/kernel/kernel_compat_optix.h
index e58d8b2aa63..064c99ca100 100644
--- a/intern/cycles/kernel/kernel_compat_optix.h
+++ b/intern/cycles/kernel/kernel_compat_optix.h
@@ -31,8 +31,12 @@
# define ATTR_FALLTHROUGH
#endif
+#ifdef __CUDACC_RTC__
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
+#else
+# include <stdint.h>
+#endif
typedef unsigned short half;
typedef unsigned long long CUtexObject;