Blender  V3.3
device/cpu/kernel.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0
2  * Copyright 2011-2022 Blender Foundation */
3 
4 #include "device/cpu/kernel.h"
5 
7 
9 
10 #define KERNEL_FUNCTIONS(name) \
11  KERNEL_NAME_EVAL(cpu, name), KERNEL_NAME_EVAL(cpu_sse2, name), \
12  KERNEL_NAME_EVAL(cpu_sse3, name), KERNEL_NAME_EVAL(cpu_sse41, name), \
13  KERNEL_NAME_EVAL(cpu_avx, name), KERNEL_NAME_EVAL(cpu_avx2, name)
14 
15 #define REGISTER_KERNEL(name) name(KERNEL_FUNCTIONS(name))
16 #define REGISTER_KERNEL_FILM_CONVERT(name) \
17  film_convert_##name(KERNEL_FUNCTIONS(film_convert_##name)), \
18  film_convert_half_rgba_##name(KERNEL_FUNCTIONS(film_convert_half_rgba_##name))
19 
21  : /* Integrator. */
34  /* Shader evaluation. */
38  /* Adaptive sampling. */
42  /* Cryptomatte. */
44  /* Film Convert. */
47  REGISTER_KERNEL_FILM_CONVERT(sample_count),
49  REGISTER_KERNEL_FILM_CONVERT(light_path),
52  REGISTER_KERNEL_FILM_CONVERT(cryptomatte),
53  REGISTER_KERNEL_FILM_CONVERT(shadow_catcher),
54  REGISTER_KERNEL_FILM_CONVERT(shadow_catcher_matte_with_shadow),
57 {
58 }
59 
60 #undef REGISTER_KERNEL
61 #undef REGISTER_KERNEL_FILM_CONVERT
62 #undef KERNEL_FUNCTIONS
63 
typedef float(TangentPoint)[2]
float float4[4]
#define CCL_NAMESPACE_END
Definition: cuda/compat.h:9
#define REGISTER_KERNEL_FILM_CONVERT(name)
#define REGISTER_KERNEL(name)
ccl_device bool integrator_init_from_bake(KernelGlobals kg, IntegratorState state, ccl_global const KernelWorkTile *ccl_restrict tile, ccl_global float *render_buffer, const int x, const int y, const int scheduled_sample)
ccl_device bool integrator_init_from_camera(KernelGlobals kg, IntegratorState state, ccl_global const KernelWorkTile *ccl_restrict tile, ccl_global float *render_buffer, const int x, const int y, const int scheduled_sample)
ccl_device void integrator_intersect_closest(KernelGlobals kg, IntegratorState state, ccl_global float *ccl_restrict render_buffer)
ccl_device void integrator_intersect_shadow(KernelGlobals kg, IntegratorShadowState state)
CCL_NAMESPACE_BEGIN ccl_device void integrator_intersect_subsurface(KernelGlobals kg, IntegratorState state)
ccl_device void integrator_intersect_volume_stack(KernelGlobals kg, IntegratorState state)
void KERNEL_FUNCTION_FULL_NAME() adaptive_sampling_filter_x(const KernelGlobalsCPU *kg, ccl_global float *render_buffer, int y, int start_x, int width, int offset, int stride)
bool KERNEL_FUNCTION_FULL_NAME() adaptive_sampling_convergence_check(const KernelGlobalsCPU *kg, ccl_global float *render_buffer, int x, int y, float threshold, bool reset, int offset, int stride)
void KERNEL_FUNCTION_FULL_NAME() shader_eval_displace(const KernelGlobalsCPU *kg, const KernelShaderEvalInput *input, float *output, const int offset)
void KERNEL_FUNCTION_FULL_NAME() cryptomatte_postprocess(const KernelGlobalsCPU *kg, ccl_global float *render_buffer, int pixel_index)
void KERNEL_FUNCTION_FULL_NAME() shader_eval_background(const KernelGlobalsCPU *kg, const KernelShaderEvalInput *input, float *output, const int offset)
void KERNEL_FUNCTION_FULL_NAME() shader_eval_curve_shadow_transparency(const KernelGlobalsCPU *kg, const KernelShaderEvalInput *input, float *output, const int offset)
void KERNEL_FUNCTION_FULL_NAME() adaptive_sampling_filter_y(const KernelGlobalsCPU *kg, ccl_global float *render_buffer, int x, int start_y, int height, int offset, int stride)
CCL_NAMESPACE_BEGIN ccl_device void integrator_megakernel(KernelGlobals kg, IntegratorState state, ccl_global float *ccl_restrict render_buffer)
Definition: megakernel.h:19
ccl_device void integrator_shade_background(KernelGlobals kg, IntegratorState state, ccl_global float *ccl_restrict render_buffer)
ccl_device void integrator_shade_light(KernelGlobals kg, IntegratorState state, ccl_global float *ccl_restrict render_buffer)
Definition: shade_light.h:73
ccl_device void integrator_shade_shadow(KernelGlobals kg, IntegratorShadowState state, ccl_global float *ccl_restrict render_buffer)
Definition: shade_shadow.h:143
ccl_device_forceinline void integrator_shade_surface(KernelGlobals kg, IntegratorState state, ccl_global float *ccl_restrict render_buffer)
CCL_NAMESPACE_BEGIN ccl_device void integrator_shade_volume(KernelGlobals kg, IntegratorState state, ccl_global float *ccl_restrict render_buffer)