Merge branch 'blender-v3.0-release'

This commit is contained in:
Brecht Van Lommel 2021-10-28 16:02:06 +02:00
commit ec9357a94e
3 changed files with 28 additions and 17 deletions

View File

@ -194,6 +194,7 @@ void Film::device_update(Device *device, DeviceScene *dscene, Scene *scene)
/* Mark passes as unused so that the kernel knows the pass is inaccessible. */
kfilm->pass_denoising_normal = PASS_UNUSED;
kfilm->pass_denoising_albedo = PASS_UNUSED;
kfilm->pass_denoising_depth = PASS_UNUSED;
kfilm->pass_sample_count = PASS_UNUSED;
kfilm->pass_adaptive_aux_buffer = PASS_UNUSED;
kfilm->pass_shadow_catcher = PASS_UNUSED;

View File

@ -326,17 +326,22 @@ bool OSLShaderManager::osl_compile(const string &inputfile, const string &output
string stdosl_path;
string shader_path = path_get("shader");
/* specify output file name */
/* Specify output file name. */
options.push_back("-o");
options.push_back(outputfile);
/* specify standard include path */
/* Specify standard include path. */
string include_path_arg = string("-I") + shader_path;
options.push_back(include_path_arg);
stdosl_path = path_join(shader_path, "stdcycles.h");
/* compile */
/* Compile.
*
* Mutex protected because the OSL compiler does not appear to be thread safe, see T92503. */
static thread_mutex osl_compiler_mutex;
thread_scoped_lock lock(osl_compiler_mutex);
OSL::OSLCompiler *compiler = new OSL::OSLCompiler(&OSL::ErrorHandler::default_handler());
bool ok = compiler->compile(string_view(inputfile), options, string_view(stdosl_path));
delete compiler;

View File

@ -33,21 +33,14 @@
/* Qualifiers for kernel code shared by CPU and GPU */
#ifndef __KERNEL_GPU__
# define ccl_device static inline
# define ccl_device_noinline static
# define ccl_device_noinline_cpu ccl_device_noinline
# define ccl_global
# define ccl_static_constant static const
# define ccl_constant const
# define ccl_local
# define ccl_local_param
# define ccl_private
# define ccl_restrict __restrict
# define ccl_optional_struct_init
# define ccl_loop_no_unroll
# define ccl_attr_maybe_unused [[maybe_unused]]
# define __KERNEL_WITH_SSE_ALIGN__
/* Leave inlining decisions to compiler for these, the inline keyword here
* is not about performance but including function definitions in headers. */
# define ccl_device static inline
# define ccl_device_noinline static inline
# define ccl_device_noinline_cpu ccl_device_noinline
/* Forced inlining. */
# if defined(_WIN32) && !defined(FREE_WINDOWS)
# define ccl_device_inline static __forceinline
# define ccl_device_forceinline static __forceinline
@ -75,6 +68,18 @@
# define ccl_never_inline __attribute__((noinline))
# endif /* _WIN32 && !FREE_WINDOWS */
/* Address spaces for GPU. */
# define ccl_global
# define ccl_static_constant static const
# define ccl_constant const
# define ccl_private
# define ccl_restrict __restrict
# define ccl_optional_struct_init
# define ccl_loop_no_unroll
# define ccl_attr_maybe_unused [[maybe_unused]]
# define __KERNEL_WITH_SSE_ALIGN__
/* Use to suppress '-Wimplicit-fallthrough' (in place of 'break'). */
# ifndef ATTR_FALLTHROUGH
# if defined(__GNUC__) && (__GNUC__ >= 7) /* gcc7.0+ only */