[Bf-blender-cvs] [b753fb6] cycles_kernel_split: Add mem_alloc() function for Split kernel buffer allocation
Jothi_PM
noreply at git.blender.org
Wed May 6 09:54:14 CEST 2015
Commit: b753fb675150c1ad3786e57e56f79ec73a51e4c1
Author: Jothi_PM
Date: Wed May 6 11:23:33 2015 +0530
Branches: cycles_kernel_split
https://developer.blender.org/rBb753fb675150c1ad3786e57e56f79ec73a51e4c1
Add mem_alloc() function for Split kernel buffer allocation
Conflicts:
intern/cycles/device/device_opencl.cpp
===================================================================
M intern/cycles/device/device_opencl.cpp
===================================================================
diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index ebc374a..5d8772a 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -550,7 +550,7 @@ public:
if(opencl_error(ciErr))
return;
- fprintf(stderr, "Device init succes\n");
+ fprintf(stderr, "Device init success\n");
device_initialized = true;
}
@@ -674,6 +674,17 @@ public:
mem.device_size = size;
}
+ /* overloading function for creating split kernel device buffers */
+ cl_mem mem_alloc(size_t bufsize, cl_mem_flags mem_flag = CL_MEM_READ_WRITE) {
+ cl_mem ptr;
+ ptr = clCreateBuffer(cxContext, mem_flag, bufsize, NULL, &ciErr);
+ if (ciErr != CL_SUCCESS) {
+ fprintf(stderr, "(%d) %s in clCreateBuffer\n", ciErr, clewErrorString(ciErr));
+ assert(0);
+ }
+ return ptr;
+ }
+
void mem_copy_to(device_memory& mem)
{
/* this is blocking */
@@ -2424,250 +2435,105 @@ public:
max_work_groups = (max_global_size[0] * max_global_size[1]) / (local_size[0] * local_size[1]);
/* Allocate work_pool_wgs memory */
- work_pool_wgs = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, max_work_groups * sizeof(unsigned int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create work_pool_wgs memory");
+ work_pool_wgs = mem_alloc(max_work_groups * sizeof(unsigned int));
#endif
/* Allocate queue_index memory only once */
- Queue_index = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, NUM_QUEUES * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create Queue_index memory");
-
- use_queues_flag = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, sizeof(char), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create use_queues_flag memory");
-
- kgbuffer = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, get_KernelGlobals_size(), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create kgbuffer memory");
+ Queue_index = mem_alloc(NUM_QUEUES * sizeof(int));
+ use_queues_flag = mem_alloc(sizeof(char));
+ kgbuffer = mem_alloc(get_KernelGlobals_size());
/* Create global buffers for ShaderData */
- sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, get_shaderdata_soa_size(), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create Shaderdata memory");
-
- sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, get_shaderdata_soa_size(), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create sd_DL_shadow memory");
-
- P_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(float3), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create P_sd memory");
-
- P_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(float3), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create P_sd_DL_shadow memory");
-
- N_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(float3), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create N_sd memory");
-
- N_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(float3), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create N_sd_DL_shadow memory");
-
- Ng_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(float3), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create Ng_sd memory");
-
- Ng_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(float3), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create Ng_sd_DL_shadow memory");
-
- I_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(float3), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create I_sd memory");
-
- I_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(float3), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create I_sd_DL_shadow memory");
-
- shader_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create shader_sd memory");
-
- shader_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create shader_sd_DL_shadow memory");
-
- flag_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create flag_sd memory");
-
- flag_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create flag_sd_DL_shadow memory");
-
- prim_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create prim_sd memory");
-
- prim_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create prim_sd_DL_shadow memory");
-
- type_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create type_sd memory");
-
- type_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create type_sd_DL_shadow memory");
-
- u_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(float), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create u_sd memory");
-
- u_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(float), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create u_sd_DL_shadow memory");
-
- v_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(float), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create v_sd memory");
-
- v_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(float), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create v_sd_DL_shadow memory");
-
- object_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create object_sd memory");
-
- object_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create object_sd_DL_shadow memory");
-
- time_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(float), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create time_sd memory");
-
- time_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(float), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create time_sd_DL_shadow memory");
-
- ray_length_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(float), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create ray_length_sd memory");
-
- ray_length_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(float), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create ray_length_sd_DL_shadow memory");
-
- ray_depth_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create ray_depth_sd memory");
-
- ray_depth_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create ray_depth_sd_DL_shadow memory");
-
- transparent_depth_sd = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create transparent_depth_sd memory");
-
- transparent_depth_sd_DL_shadow = clCreateBuffer(cxContext, CL_MEM_READ_WRITE, num_global_elements * 2 * sizeof(int), NULL, &ciErr);
- assert(ciErr == CL_SUCCESS && "Can't create transparent_depth_sd_DL_shadow memory");
+ sd = mem_alloc(get_shaderdata_soa_size());
+ sd_DL_shadow = mem_alloc(get_shaderdata_soa_size());
+ P_sd = mem_alloc(num_global_elements * sizeof(float3));
+ P_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(float3));
+ N_sd = mem_alloc(num_global_elements * sizeof(float3));
+ N_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(float3));
+ Ng_sd = mem_alloc(num_global_elements * sizeof(float3));
+ Ng_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(float3));
+ I_sd = mem_alloc(num_global_elements * sizeof(float3));
+ I_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(float3));
+ shader_sd = mem_alloc(num_global_elements * sizeof(int));
+ shader_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(int));
+ flag_sd = mem_alloc(num_global_elements * sizeof(int));
+ flag_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(int));
+ prim_sd = mem_alloc(num_global_elements * sizeof(int));
+ prim_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(int));
+ type_sd = mem_alloc(num_global_elements * sizeof(int));
+ type_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(int));
+ u_sd = mem_alloc(num_global_elements * sizeof(float));
+ u_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(float));
+ v_sd = mem_alloc(num_global_elements * sizeof(float));
+ v_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(float));
+ object_sd = mem_alloc(num_global_elements * sizeof(int));
+ object_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(int));
+ time_sd = mem_alloc(num_global_elements * sizeof(float));
+ time_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(float));
+ ray_length_sd = mem_alloc(num_global_elements * sizeof(float));
+ ray_length_sd_DL_shadow = mem_alloc(num_global_elements * 2 * sizeof(float));
+ ray_depth_sd = mem_alloc(num_global_elements * sizeof(int));
+ ray_depth_sd_DL_shadow = mem_alloc(num_global_elements * 2 *
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list