Blender V2.61 - r43446
|
00001 /* 00002 * Copyright 2011, Blender Foundation. 00003 * 00004 * This program is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU General Public License 00006 * as published by the Free Software Foundation; either version 2 00007 * of the License, or (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software Foundation, 00016 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00017 */ 00018 00019 /* Optimized CPU kernel entry points. This file is compiled with SSE3 00020 optimization flags and nearly all functions inlined, while kernel.cpp 00021 is compiled without for other CPU's. */ 00022 00023 #ifdef WITH_OPTIMIZED_KERNEL 00024 00025 #include "kernel.h" 00026 #include "kernel_compat_cpu.h" 00027 #include "kernel_math.h" 00028 #include "kernel_types.h" 00029 #include "kernel_globals.h" 00030 #include "kernel_film.h" 00031 #include "kernel_path.h" 00032 #include "kernel_displace.h" 00033 00034 CCL_NAMESPACE_BEGIN 00035 00036 /* Path Tracing */ 00037 00038 void kernel_cpu_optimized_path_trace(KernelGlobals *kg, float4 *buffer, unsigned int *rng_state, int sample, int x, int y, int offset, int stride) 00039 { 00040 kernel_path_trace(kg, buffer, rng_state, sample, x, y, offset, stride); 00041 } 00042 00043 /* Tonemapping */ 00044 00045 void kernel_cpu_optimized_tonemap(KernelGlobals *kg, uchar4 *rgba, float4 *buffer, int sample, int resolution, int x, int y, int offset, int stride) 00046 { 00047 kernel_film_tonemap(kg, rgba, buffer, sample, resolution, x, y, offset, stride); 00048 } 00049 00050 /* Shader Evaluate */ 00051 00052 void kernel_cpu_optimized_shader(KernelGlobals *kg, uint4 *input, float3 *output, int type, int i) 00053 { 00054 kernel_shader_evaluate(kg, input, output, (ShaderEvalType)type, i); 00055 } 00056 00057 CCL_NAMESPACE_END 00058 00059 #endif 00060