Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/device/cpu/kernel_arch.h
- This file was added.
| /* | |||||
| * Copyright 2011-2013 Blender Foundation | |||||
| * | |||||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| * you may not use this file except in compliance with the License. | |||||
| * You may obtain a copy of the License at | |||||
| * | |||||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||||
| * | |||||
| * Unless required by applicable law or agreed to in writing, software | |||||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| * See the License for the specific language governing permissions and | |||||
| * limitations under the License. | |||||
| */ | |||||
| /* Templated common declaration part of all CPU kernels. */ | |||||
| /* -------------------------------------------------------------------- | |||||
| * Integrator. | |||||
| */ | |||||
| #define KERNEL_INTEGRATOR_FUNCTION(name) \ | |||||
| void KERNEL_FUNCTION_FULL_NAME(integrator_##name)(const KernelGlobals *ccl_restrict kg, \ | |||||
| IntegratorState *state) | |||||
| #define KERNEL_INTEGRATOR_SHADE_FUNCTION(name) \ | |||||
| void KERNEL_FUNCTION_FULL_NAME(integrator_##name)(const KernelGlobals *ccl_restrict kg, \ | |||||
| IntegratorState *state, \ | |||||
| ccl_global float *render_buffer) | |||||
| #define KERNEL_INTEGRATOR_INIT_FUNCTION(name) \ | |||||
| bool KERNEL_FUNCTION_FULL_NAME(integrator_##name)(const KernelGlobals *ccl_restrict kg, \ | |||||
| IntegratorState *state, \ | |||||
| KernelWorkTile *tile, \ | |||||
| ccl_global float *render_buffer) | |||||
| KERNEL_INTEGRATOR_INIT_FUNCTION(init_from_camera); | |||||
| KERNEL_INTEGRATOR_INIT_FUNCTION(init_from_bake); | |||||
| KERNEL_INTEGRATOR_FUNCTION(intersect_closest); | |||||
| KERNEL_INTEGRATOR_FUNCTION(intersect_shadow); | |||||
| KERNEL_INTEGRATOR_FUNCTION(intersect_subsurface); | |||||
| KERNEL_INTEGRATOR_FUNCTION(intersect_volume_stack); | |||||
| KERNEL_INTEGRATOR_SHADE_FUNCTION(shade_background); | |||||
| KERNEL_INTEGRATOR_SHADE_FUNCTION(shade_light); | |||||
| KERNEL_INTEGRATOR_SHADE_FUNCTION(shade_shadow); | |||||
| KERNEL_INTEGRATOR_SHADE_FUNCTION(shade_surface); | |||||
| KERNEL_INTEGRATOR_SHADE_FUNCTION(shade_volume); | |||||
| KERNEL_INTEGRATOR_SHADE_FUNCTION(megakernel); | |||||
| #undef KERNEL_INTEGRATOR_FUNCTION | |||||
| #undef KERNEL_INTEGRATOR_INIT_FUNCTION | |||||
| #undef KERNEL_INTEGRATOR_SHADE_FUNCTION | |||||
| /* -------------------------------------------------------------------- | |||||
| * Shader evaluation. | |||||
| */ | |||||
| void KERNEL_FUNCTION_FULL_NAME(shader_eval_background)(const KernelGlobals *kg, | |||||
| const KernelShaderEvalInput *input, | |||||
| float4 *output, | |||||
| const int offset); | |||||
| void KERNEL_FUNCTION_FULL_NAME(shader_eval_displace)(const KernelGlobals *kg, | |||||
| const KernelShaderEvalInput *input, | |||||
| float4 *output, | |||||
| const int offset); | |||||
| /* -------------------------------------------------------------------- | |||||
| * Adaptive sampling. | |||||
| */ | |||||
| bool KERNEL_FUNCTION_FULL_NAME(adaptive_sampling_convergence_check)( | |||||
| const KernelGlobals *kg, | |||||
| ccl_global float *render_buffer, | |||||
| int x, | |||||
| int y, | |||||
| float threshold, | |||||
| bool reset, | |||||
| int offset, | |||||
| int stride); | |||||
| void KERNEL_FUNCTION_FULL_NAME(adaptive_sampling_filter_x)(const KernelGlobals *kg, | |||||
| ccl_global float *render_buffer, | |||||
| int y, | |||||
| int start_x, | |||||
| int width, | |||||
| int offset, | |||||
| int stride); | |||||
| void KERNEL_FUNCTION_FULL_NAME(adaptive_sampling_filter_y)(const KernelGlobals *kg, | |||||
| ccl_global float *render_buffer, | |||||
| int x, | |||||
| int start_y, | |||||
| int height, | |||||
| int offset, | |||||
| int stride); | |||||
| /* -------------------------------------------------------------------- | |||||
| * Cryptomatte. | |||||
| */ | |||||
| void KERNEL_FUNCTION_FULL_NAME(cryptomatte_postprocess)(const KernelGlobals *kg, | |||||
| ccl_global float *render_buffer, | |||||
| int pixel_index); | |||||
| /* -------------------------------------------------------------------- | |||||
| * Bake. | |||||
| */ | |||||
| /* TODO(sergey): Needs to be re-implemented. Or not? Brecht did it already :) */ | |||||
| void KERNEL_FUNCTION_FULL_NAME(bake)( | |||||
| const KernelGlobals *kg, float *buffer, int sample, int x, int y, int offset, int stride); | |||||
| #undef KERNEL_ARCH | |||||