Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-05-20 16:26:01 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-05-20 16:26:01 +0400
commit63d4bafff57392ffd81d686a7ccdd4fbdf863c97 (patch)
tree9210c3c675d79bdbe80747f98e544dd2e0251a73 /intern/cycles/kernel/kernel_globals.h
parent2e66cb520c5e41b83665119a9787e9839ce7c2b3 (diff)
Cycles: some steps to getting OpenCL backend to compile.
Diffstat (limited to 'intern/cycles/kernel/kernel_globals.h')
-rw-r--r--intern/cycles/kernel/kernel_globals.h200
1 files changed, 38 insertions, 162 deletions
diff --git a/intern/cycles/kernel/kernel_globals.h b/intern/cycles/kernel/kernel_globals.h
index 4c4f35bb508..720a9f28fa1 100644
--- a/intern/cycles/kernel/kernel_globals.h
+++ b/intern/cycles/kernel/kernel_globals.h
@@ -18,190 +18,66 @@
/* Constant Globals */
-#ifdef __KERNEL_CPU__
-
-#ifdef WITH_OSL
-#include "osl_globals.h"
-#endif
-
CCL_NAMESPACE_BEGIN
/* On the CPU, we pass along the struct KernelGlobals to nearly everywhere in
the kernel, to access constant data. These are all stored as "textures", but
these are really just standard arrays. We can't use actually globals because
multiple renders may be running inside the same process. */
-typedef struct KernelGlobals {
-#else
+#ifdef __KERNEL_CPU__
-/* On the GPU, constant memory textures must be globals, so we can't put them
- into a struct. As a result we don't actually use this struct and use actual
- globals and simply pass along a NULL pointer everywhere, which we hope gets
- optimized out. */
-#ifdef __KERNEL_CUDA__
-typedef struct KernelGlobals {} KernelGlobals;
+#ifdef WITH_OSL
+//#include "osl_globals.h"
#endif
+typedef struct KernelGlobals {
+
+#define KERNEL_TEX(type, ttype, name) ttype name;
+#define KERNEL_IMAGE_TEX(type, ttype, name) ttype name;
+#include "kernel_textures.h"
+
+ KernelData __data;
+
+#ifdef WITH_OSL
+ /* On the CPU, we also have the OSL globals here. Most data structures are shared
+ with SVM, the difference is in the shaders and object/mesh attributes. */
+ //OSLGlobals osl;
#endif
-/* globals */
-__constant KernelData __data;
-
-#ifndef __KERNEL_OPENCL__
-
-/* bvh */
-texture_float4 __bvh_nodes;
-texture_float4 __tri_woop;
-texture_uint __prim_index;
-texture_uint __prim_object;
-texture_uint __object_node;
-
-/* objects */
-texture_float4 __objects;
-
-/* triangles */
-texture_float4 __tri_normal;
-texture_float4 __tri_vnormal;
-texture_float4 __tri_vindex;
-texture_float4 __tri_verts;
-
-/* attributes */
-texture_uint4 __attributes_map;
-texture_float __attributes_float;
-texture_float4 __attributes_float3;
-
-/* lights */
-texture_float4 __light_distribution;
-texture_float4 __light_point;
-
-/* shaders */
-texture_uint4 __svm_nodes;
-
-/* camera/film */
-texture_float __filter_table;
-texture_float __response_curve_R;
-texture_float __response_curve_G;
-texture_float __response_curve_B;
-
-/* sobol */
-texture_uint __sobol_directions;
-
-/* image */
-texture_image_uchar4 __tex_image_000;
-texture_image_uchar4 __tex_image_001;
-texture_image_uchar4 __tex_image_002;
-texture_image_uchar4 __tex_image_003;
-texture_image_uchar4 __tex_image_004;
-texture_image_uchar4 __tex_image_005;
-texture_image_uchar4 __tex_image_006;
-texture_image_uchar4 __tex_image_007;
-texture_image_uchar4 __tex_image_008;
-texture_image_uchar4 __tex_image_009;
-texture_image_uchar4 __tex_image_010;
-texture_image_uchar4 __tex_image_011;
-texture_image_uchar4 __tex_image_012;
-texture_image_uchar4 __tex_image_013;
-texture_image_uchar4 __tex_image_014;
-texture_image_uchar4 __tex_image_015;
-texture_image_uchar4 __tex_image_016;
-texture_image_uchar4 __tex_image_017;
-texture_image_uchar4 __tex_image_018;
-texture_image_uchar4 __tex_image_019;
-texture_image_uchar4 __tex_image_020;
-texture_image_uchar4 __tex_image_021;
-texture_image_uchar4 __tex_image_022;
-texture_image_uchar4 __tex_image_023;
-texture_image_uchar4 __tex_image_024;
-texture_image_uchar4 __tex_image_025;
-texture_image_uchar4 __tex_image_026;
-texture_image_uchar4 __tex_image_027;
-texture_image_uchar4 __tex_image_028;
-texture_image_uchar4 __tex_image_029;
-texture_image_uchar4 __tex_image_030;
-texture_image_uchar4 __tex_image_031;
-texture_image_uchar4 __tex_image_032;
-texture_image_uchar4 __tex_image_033;
-texture_image_uchar4 __tex_image_034;
-texture_image_uchar4 __tex_image_035;
-texture_image_uchar4 __tex_image_036;
-texture_image_uchar4 __tex_image_037;
-texture_image_uchar4 __tex_image_038;
-texture_image_uchar4 __tex_image_039;
-texture_image_uchar4 __tex_image_040;
-texture_image_uchar4 __tex_image_041;
-texture_image_uchar4 __tex_image_042;
-texture_image_uchar4 __tex_image_043;
-texture_image_uchar4 __tex_image_044;
-texture_image_uchar4 __tex_image_045;
-texture_image_uchar4 __tex_image_046;
-texture_image_uchar4 __tex_image_047;
-texture_image_uchar4 __tex_image_048;
-texture_image_uchar4 __tex_image_049;
-texture_image_uchar4 __tex_image_050;
-texture_image_uchar4 __tex_image_051;
-texture_image_uchar4 __tex_image_052;
-texture_image_uchar4 __tex_image_053;
-texture_image_uchar4 __tex_image_054;
-texture_image_uchar4 __tex_image_055;
-texture_image_uchar4 __tex_image_056;
-texture_image_uchar4 __tex_image_057;
-texture_image_uchar4 __tex_image_058;
-texture_image_uchar4 __tex_image_059;
-texture_image_uchar4 __tex_image_060;
-texture_image_uchar4 __tex_image_061;
-texture_image_uchar4 __tex_image_062;
-texture_image_uchar4 __tex_image_063;
-texture_image_uchar4 __tex_image_064;
-texture_image_uchar4 __tex_image_065;
-texture_image_uchar4 __tex_image_066;
-texture_image_uchar4 __tex_image_067;
-texture_image_uchar4 __tex_image_068;
-texture_image_uchar4 __tex_image_069;
-texture_image_uchar4 __tex_image_070;
-texture_image_uchar4 __tex_image_071;
-texture_image_uchar4 __tex_image_072;
-texture_image_uchar4 __tex_image_073;
-texture_image_uchar4 __tex_image_074;
-texture_image_uchar4 __tex_image_075;
-texture_image_uchar4 __tex_image_076;
-texture_image_uchar4 __tex_image_077;
-texture_image_uchar4 __tex_image_078;
-texture_image_uchar4 __tex_image_079;
-texture_image_uchar4 __tex_image_080;
-texture_image_uchar4 __tex_image_081;
-texture_image_uchar4 __tex_image_082;
-texture_image_uchar4 __tex_image_083;
-texture_image_uchar4 __tex_image_084;
-texture_image_uchar4 __tex_image_085;
-texture_image_uchar4 __tex_image_086;
-texture_image_uchar4 __tex_image_087;
-texture_image_uchar4 __tex_image_088;
-texture_image_uchar4 __tex_image_089;
-texture_image_uchar4 __tex_image_090;
-texture_image_uchar4 __tex_image_091;
-texture_image_uchar4 __tex_image_092;
-texture_image_uchar4 __tex_image_093;
-texture_image_uchar4 __tex_image_094;
-texture_image_uchar4 __tex_image_095;
-texture_image_uchar4 __tex_image_096;
-texture_image_uchar4 __tex_image_097;
-texture_image_uchar4 __tex_image_098;
-texture_image_uchar4 __tex_image_099;
+} KernelGLobals;
#endif
-#ifdef __KERNEL_CPU__
+/* For CUDA, constant memory textures must be globals, so we can't put them
+ into a struct. As a result we don't actually use this struct and use actual
+ globals and simply pass along a NULL pointer everywhere, which we hope gets
+ optimized out. */
-#ifdef WITH_OSL
+#ifdef __KERNEL_CUDA__
-/* On the CPU, we also have the OSL globals here. Most data structures are shared
- with SVM, the difference is in the shaders and object/mesh attributes. */
+__constant__ KernelData __data;
+typedef struct KernelGlobals {} KernelGlobals;
-OSLGlobals osl;
+#define KERNEL_TEX(type, ttype, name) ttype name;
+#define KERNEL_IMAGE_TEX(type, ttype, name) ttype name;
+#include "kernel_textures.h"
#endif
+/* OpenCL */
+
+#ifdef __KERNEL_OPENCL__
+
+typedef struct KernelGlobals {
+ __constant KernelData *data;
+
+#define KERNEL_TEX(type, ttype, name) \
+ __global type *name; \
+ int name##_width;
+#include "kernel_textures.h"
} KernelGlobals;
+
#endif
CCL_NAMESPACE_END