Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/kernel.h
| Show All 14 Lines | |||||
| */ | */ | ||||
| #ifndef __KERNEL_H__ | #ifndef __KERNEL_H__ | ||||
| #define __KERNEL_H__ | #define __KERNEL_H__ | ||||
| /* CPU Kernel Interface */ | /* CPU Kernel Interface */ | ||||
| #include "util_types.h" | #include "util_types.h" | ||||
| #include "util_transform.h" | |||||
| CCL_NAMESPACE_BEGIN | CCL_NAMESPACE_BEGIN | ||||
| struct KernelGlobals; | struct KernelGlobals; | ||||
| KernelGlobals *kernel_globals_create(); | KernelGlobals *kernel_globals_create(); | ||||
| void kernel_globals_free(KernelGlobals *kg); | void kernel_globals_free(KernelGlobals *kg); | ||||
| void *kernel_osl_memory(KernelGlobals *kg); | void *kernel_osl_memory(KernelGlobals *kg); | ||||
| bool kernel_osl_use(KernelGlobals *kg); | bool kernel_osl_use(KernelGlobals *kg); | ||||
| void kernel_const_copy(KernelGlobals *kg, const char *name, void *host, size_t size); | void kernel_const_copy(KernelGlobals *kg, const char *name, void *host, size_t size); | ||||
| void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t width, size_t height, size_t depth, InterpolationType interpolation=INTERPOLATION_LINEAR); | void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t width, size_t height, size_t depth, InterpolationType interpolation=INTERPOLATION_LINEAR); | ||||
| void kernel_cpu_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | void kernel_cpu_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | ||||
| int sample, int x, int y, int offset, int stride); | int sample, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_shader(KernelGlobals *kg, uint4 *input, float4 *output, | void kernel_cpu_shader(KernelGlobals *kg, uint4 *input, float4 *output, | ||||
| int type, int i, int offset, int sample); | int type, Transform *tfm, int i, int offset, int sample); | ||||
| #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_SSE2 | #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_SSE2 | ||||
| void kernel_cpu_sse2_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | void kernel_cpu_sse2_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | ||||
| int sample, int x, int y, int offset, int stride); | int sample, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_sse2_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_sse2_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_sse2_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_sse2_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_sse2_shader(KernelGlobals *kg, uint4 *input, float4 *output, | void kernel_cpu_sse2_shader(KernelGlobals *kg, uint4 *input, float4 *output, | ||||
| int type, int i, int offset, int sample); | int type, Transform *tfm, int i, int offset, int sample); | ||||
| #endif | #endif | ||||
| #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_SSE3 | #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_SSE3 | ||||
| void kernel_cpu_sse3_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | void kernel_cpu_sse3_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | ||||
| int sample, int x, int y, int offset, int stride); | int sample, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_sse3_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_sse3_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_sse3_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_sse3_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_sse3_shader(KernelGlobals *kg, uint4 *input, float4 *output, | void kernel_cpu_sse3_shader(KernelGlobals *kg, uint4 *input, float4 *output, | ||||
| int type, int i, int offset, int sample); | int type, Transform *tfm, int i, int offset, int sample); | ||||
| #endif | #endif | ||||
| #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_SSE41 | #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_SSE41 | ||||
| void kernel_cpu_sse41_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | void kernel_cpu_sse41_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | ||||
| int sample, int x, int y, int offset, int stride); | int sample, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_sse41_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_sse41_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_sse41_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_sse41_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_sse41_shader(KernelGlobals *kg, uint4 *input, float4 *output, | void kernel_cpu_sse41_shader(KernelGlobals *kg, uint4 *input, float4 *output, | ||||
| int type, int i, int offset, int sample); | int type, Transform *tfm, int i, int offset, int sample); | ||||
| #endif | #endif | ||||
| #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_AVX | #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_AVX | ||||
| void kernel_cpu_avx_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | void kernel_cpu_avx_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | ||||
| int sample, int x, int y, int offset, int stride); | int sample, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_avx_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_avx_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_avx_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_avx_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_avx_shader(KernelGlobals *kg, uint4 *input, float4 *output, | void kernel_cpu_avx_shader(KernelGlobals *kg, uint4 *input, float4 *output, | ||||
| int type, int i, int offset, int sample); | int type, Transform *tfm, int i, int offset, int sample); | ||||
| #endif | #endif | ||||
| #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_AVX2 | #ifdef WITH_CYCLES_OPTIMIZED_KERNEL_AVX2 | ||||
| void kernel_cpu_avx2_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | void kernel_cpu_avx2_path_trace(KernelGlobals *kg, float *buffer, unsigned int *rng_state, | ||||
| int sample, int x, int y, int offset, int stride); | int sample, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_avx2_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_avx2_convert_to_byte(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_avx2_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | void kernel_cpu_avx2_convert_to_half_float(KernelGlobals *kg, uchar4 *rgba, float *buffer, | ||||
| float sample_scale, int x, int y, int offset, int stride); | float sample_scale, int x, int y, int offset, int stride); | ||||
| void kernel_cpu_avx2_shader(KernelGlobals *kg, uint4 *input, float4 *output, | void kernel_cpu_avx2_shader(KernelGlobals *kg, uint4 *input, float4 *output, | ||||
| int type, int i, int offset, int sample); | int type, Transform *tfm, int i, int offset, int sample); | ||||
| #endif | #endif | ||||
| CCL_NAMESPACE_END | CCL_NAMESPACE_END | ||||
| #endif /* __KERNEL_H__ */ | #endif /* __KERNEL_H__ */ | ||||