[Bf-blender-cvs] [102d450] cycles_kernel_split: Refactor : Group all split kernel utility functions
varunsundar08
noreply at git.blender.org
Wed Apr 15 17:37:02 CEST 2015
Commit: 102d45077a41835835f90a6316ed2caafcd91b40
Author: varunsundar08
Date: Thu Apr 9 12:29:38 2015 +0530
Branches: cycles_kernel_split
https://developer.blender.org/rB102d45077a41835835f90a6316ed2caafcd91b40
Refactor : Group all split kernel utility functions
===================================================================
M intern/cycles/device/device_opencl.cpp
===================================================================
diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 1048b4a..3329fb7 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -1298,6 +1298,74 @@ public:
#endif
#ifdef __SPLIT_KERNEL__
+ /* Split kernel utility functions */
+
+ size_t get_tex_size(const char *tex_name) {
+ cl_mem ptr;
+ size_t ret_size;
+
+ MemMap::iterator i = mem_map.find(tex_name);
+ if (i != mem_map.end()) {
+ ptr = CL_MEM_PTR(i->second);
+ ciErr = clGetMemObjectInfo(ptr, CL_MEM_SIZE, sizeof(ret_size), &ret_size, NULL);
+ assert(ciErr == CL_SUCCESS);
+ }
+ else {
+ ret_size = 0;
+ }
+
+ return ret_size;
+ }
+
+ size_t get_shader_closure_size(int max_closure) {
+ return (sizeof(ShaderClosure)* max_closure);
+ }
+
+ size_t get_shader_data_size(size_t shader_closure_size) {
+ size_t shader_data_size = 0;
+ shader_data_size = SD_NUM_FLOAT3 * sizeof(float3)
+#ifdef __DPDU__
+ + SD_NUM_DPDU_FLOAT3 * sizeof(float3)
+#endif
+#ifdef __RAY_DIFFERENTIALS__
+ + SD_NUM_RAY_DIFFERENTIALS_DIFFERENTIAL3 * sizeof(differential3)
+ +SD_NUM_DIFFERENTIAL * sizeof(differential)
+#endif
+ + SD_NUM_RAY_DP_DIFFERENTIAL3 * sizeof(differential3)
+ +SD_NUM_INT * sizeof(int)
+ +SD_NUM_FLOAT * sizeof(float);
+
+ return (shader_data_size + shader_closure_size);
+ }
+
+ /* Returns size of KernelGlobals structure associated with OpenCL */
+ size_t get_KernelGlobals_size() {
+ /* Copy dummy KernelGlobals related to OpenCL from kernel_globals.h to fetch its size */
+ typedef struct KernelGlobals {
+ ccl_constant KernelData *data;
+#define KERNEL_TEX(type, ttype, name) \
+ ccl_global type *name;
+#include "kernel_textures.h"
+ } KernelGlobals;
+
+ return sizeof(KernelGlobals);
+ }
+
+ /* Returns size of Structure of arrays implementation of */
+ size_t get_shaderdata_soa_size() {
+ size_t num_shader_soa_ptr = SD_NUM_FLOAT3 + SD_NUM_INT + SD_NUM_FLOAT
+#ifdef __DPDU__
+ + SD_NUM_DPDU_FLOAT3
+#endif
+#ifdef __RAY_DIFFERENTIAL__
+ + SD_NUM_RAY_DIFFERENTIALS_DIFFERENTIAL3
+ + SD_NUM_DIFFERENTIAL
+#endif
+ + SD_NUM_RAY_DP_DIFFERENTIAL3;
+
+ return (num_shader_soa_ptr * sizeof(void *));
+ }
+
/* Get enum type names */
string get_node_type_as_string(NodeType node) {
switch (node) {
@@ -2326,79 +2394,6 @@ public:
opencl_assert(clFlush(cqCommandQueue));
}
-#ifdef __SPLIT_KERNEL__
- size_t get_tex_size(const char *tex_name) {
- cl_mem ptr;
- size_t ret_size;
-
- MemMap::iterator i = mem_map.find(tex_name);
- if(i != mem_map.end()) {
- ptr = CL_MEM_PTR(i->second);
- ciErr = clGetMemObjectInfo(ptr, CL_MEM_SIZE, sizeof(ret_size), &ret_size, NULL);
- assert(ciErr == CL_SUCCESS);
- }
- else {
- ret_size = 0;
- }
-
- return ret_size;
- }
-#endif
-
-#ifdef __SPLIT_KERNEL__
- size_t get_shader_closure_size(int max_closure) {
- return (sizeof(ShaderClosure)* max_closure);
- }
-
- size_t get_shader_data_size(size_t shader_closure_size) {
- size_t shader_data_size = 0;
- shader_data_size = SD_NUM_FLOAT3 * sizeof(float3)
-#ifdef __DPDU__
- + SD_NUM_DPDU_FLOAT3 * sizeof(float3)
-#endif
-#ifdef __RAY_DIFFERENTIALS__
- + SD_NUM_RAY_DIFFERENTIALS_DIFFERENTIAL3 * sizeof(differential3)
- +SD_NUM_DIFFERENTIAL * sizeof(differential)
-#endif
- + SD_NUM_RAY_DP_DIFFERENTIAL3 * sizeof(differential3)
- +SD_NUM_INT * sizeof(int)
- +SD_NUM_FLOAT * sizeof(float);
-
- return (shader_data_size + shader_closure_size);
- }
-#endif
-
-#ifdef __SPLIT_KERNEL__
- /* Returns size of KernelGlobals structure associated with OpenCL */
- size_t get_KernelGlobals_size() {
- /* Copy dummy KernelGlobals related to OpenCL from kernel_globals.h to fetch its size */
- typedef struct KernelGlobals {
- ccl_constant KernelData *data;
-#define KERNEL_TEX(type, ttype, name) \
- ccl_global type *name;
-#include "kernel_textures.h"
- } KernelGlobals;
-
- return sizeof(KernelGlobals);
- }
-
- /* Returns size of Structure of arrays implementation of */
- size_t get_shaderdata_soa_size() {
- size_t num_shader_soa_ptr = SD_NUM_FLOAT3 + SD_NUM_INT + SD_NUM_FLOAT
-#ifdef __DPDU__
- + SD_NUM_DPDU_FLOAT3
-#endif
-#ifdef __RAY_DIFFERENTIAL__
- + SD_NUM_RAY_DIFFERENTIALS_DIFFERENTIAL3
- + SD_NUM_DIFFERENTIAL
-#endif
- + SD_NUM_RAY_DP_DIFFERENTIAL3;
-
- return (num_shader_soa_ptr * sizeof(void *));
- }
-
-#endif
-
void path_trace(RenderTile& rtile, int sample)
{
/* cast arguments to cl types */
More information about the Bf-blender-cvs
mailing list