16 #ifndef __KERNEL_GPU__
74 #ifdef __DENOISING_FEATURES__
92 if (transparent_bounce >=
kernel_data.integrator.transparent_max_bounce) {
124 if (volume_bounce >=
kernel_data.integrator.max_volume_bounce) {
139 if (diffuse_bounce >=
kernel_data.integrator.max_diffuse_bounce) {
146 if (glossy_bounce >=
kernel_data.integrator.max_glossy_bounce) {
162 if (transmission_bounce >=
kernel_data.integrator.max_transmission_bounce) {
238 if (transparent_bounce <=
kernel_data.integrator.transparent_min_bounce) {
264 return (bounce >
kernel_data.integrator.ao_bounces);
304 kg, rng_state->rng_hash, rng_state->sample, rng_state->rng_offset + dimension);
314 kg, rng_state->rng_hash, rng_state->sample, rng_state->rng_offset + dimension, fx, fy);
336 rng_state->sample * num_branches + branch,
337 rng_state->rng_offset + dimension);
350 rng_state->sample * num_branches + branch,
351 rng_state->rng_offset + dimension,
362 if (
kernel_data.integrator.light_inv_rr_threshold > 0.0f) {
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
__forceinline int reduce_max(const avxi &v)
#define kernel_assert(cond)
#define ccl_device_inline
#define CCL_NAMESPACE_END
const KernelGlobalsCPU *ccl_restrict KernelGlobals
const uint64_t render_pixel_index
ccl_global const KernelWorkTile * tile
ccl_device_inline uint cmj_hash_simple(uint i, uint p)
#define VOLUME_BOUNDS_MAX
@ PATH_RAY_TERMINATE_AFTER_TRANSPARENT
@ PATH_RAY_VOLUME_SCATTER
@ PATH_RAY_DENOISING_FEATURES
@ PATH_RAY_ALL_VISIBILITY
@ PATH_RAY_TRANSPARENT_BACKGROUND
@ PATH_RAY_TERMINATE_ON_NEXT_SURFACE
@ PATH_RAY_DIFFUSE_ANCESTOR
@ KERNEL_FEATURE_DENOISING
@ LABEL_TRANSMIT_TRANSPARENT
#define SHADOW_CATCHER_PATH_VISIBILITY(path_flag, visibility)
ccl_device_inline float2 fabs(const float2 &a)
ccl_device_inline float3 one_float3()
ccl_device_inline void path_state_init(IntegratorState state, ccl_global const KernelWorkTile *ccl_restrict tile, const int x, const int y)
ccl_device_inline float path_state_continuation_probability(KernelGlobals kg, ConstIntegratorState state, const uint32_t path_flag)
ccl_device_inline bool path_state_ao_bounce(KernelGlobals kg, ConstIntegratorState state)
ccl_device_inline void shadow_path_state_rng_load(ConstIntegratorShadowState state, ccl_private RNGState *rng_state)
ccl_device_inline void path_state_init_integrator(KernelGlobals kg, IntegratorState state, const int sample, const uint rng_hash)
ccl_device_inline float path_state_rng_1D(KernelGlobals kg, ccl_private const RNGState *rng_state, int dimension)
ccl_device_inline void path_branched_rng_2D(KernelGlobals kg, ccl_private const RNGState *rng_state, int branch, int num_branches, int dimension, ccl_private float *fx, ccl_private float *fy)
ccl_device_inline float path_branched_rng_1D(KernelGlobals kg, ccl_private const RNGState *rng_state, int branch, int num_branches, int dimension)
ccl_device_inline float path_state_rng_light_termination(KernelGlobals kg, ccl_private const RNGState *state)
ccl_device_inline float path_state_rng_1D_hash(KernelGlobals kg, ccl_private const RNGState *rng_state, uint hash)
ccl_device_inline void path_state_rng_load(ConstIntegratorState state, ccl_private RNGState *rng_state)
ccl_device_inline uint path_state_ray_visibility(ConstIntegratorState state)
ccl_device_inline void path_state_next(KernelGlobals kg, IntegratorState state, int label)
CCL_NAMESPACE_BEGIN ccl_device_inline void path_state_init_queues(IntegratorState state)
ccl_device_inline void path_state_rng_2D(KernelGlobals kg, ccl_private const RNGState *rng_state, int dimension, ccl_private float *fx, ccl_private float *fy)
CCL_NAMESPACE_BEGIN ccl_device_forceinline float path_rng_1D(KernelGlobals kg, uint rng_hash, int sample, int dimension)
ccl_device_forceinline void path_rng_2D(KernelGlobals kg, uint rng_hash, int sample, int dimension, ccl_private float *fx, ccl_private float *fy)
const IntegratorShadowStateCPU *ccl_restrict ConstIntegratorShadowState
#define INTEGRATOR_STATE_ARRAY_WRITE(state, nested_struct, array_index, member)
IntegratorStateCPU *ccl_restrict IntegratorState
#define INTEGRATOR_STATE_WRITE(state, nested_struct, member)
const IntegratorStateCPU *ccl_restrict ConstIntegratorState
#define INTEGRATOR_STATE(state, nested_struct, member)