[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32024] branches/particles-2010: - Fixed cmake build errors for non-OpenCL builds.

Lukas Toenne lukas.toenne at googlemail.com
Mon Sep 20 12:27:30 CEST 2010


Revision: 32024
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32024
Author:   lukastoenne
Date:     2010-09-20 12:27:24 +0200 (Mon, 20 Sep 2010)

Log Message:
-----------
- Fixed cmake build errors for non-OpenCL builds. scons needs update to new directory structure in nodes.
- Added worker thread generation for cpu execution.

Modified Paths:
--------------
    branches/particles-2010/CMakeLists.txt
    branches/particles-2010/source/blender/nodes/intern/simulation/SIM_util.c
    branches/particles-2010/source/blender/nodes/intern/simulation/SIM_util.h
    branches/particles-2010/source/blender/nodes/intern/simulation/node_tree_simulation.c

Modified: branches/particles-2010/CMakeLists.txt
===================================================================
--- branches/particles-2010/CMakeLists.txt	2010-09-20 09:52:29 UTC (rev 32023)
+++ branches/particles-2010/CMakeLists.txt	2010-09-20 10:27:24 UTC (rev 32024)
@@ -72,7 +72,7 @@
 OPTION(WITH_FLUID        "Enable Elbeem (Fluid Simulation)" ON)
 OPTION(WITH_FFTW3         "Enable FFTW3 support (Used for smoke and audio effects)" OFF)
 OPTION(WITH_BULLET        "Enable Bullet (Physics Engine)" ON)
-OPTION(WITH_OPENCL        "Enable OpenCL" ON)
+OPTION(WITH_OPENCL        "Enable OpenCL" OFF)
 OPTION(WITH_GAMEENGINE    "Enable Game Engine" ON)
 OPTION(WITH_PLAYER        "Build Player" OFF)
 # (unix defaults to OpenMP On)

Modified: branches/particles-2010/source/blender/nodes/intern/simulation/SIM_util.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/simulation/SIM_util.c	2010-09-20 09:52:29 UTC (rev 32023)
+++ branches/particles-2010/source/blender/nodes/intern/simulation/SIM_util.c	2010-09-20 10:27:24 UTC (rev 32024)
@@ -162,7 +162,6 @@
 	}
 }
 
-#ifdef WITH_OPENCL
 const char *sim_get_opencl_type(int datatype)
 {
 	switch (datatype) {
@@ -184,7 +183,6 @@
 		return "int";
 	}
 }
-#endif
 
 static void context_update_size(SimDataContext *ctx)
 {
@@ -317,7 +315,7 @@
 		buf.stride = datasize;
 		
 		if (datasize > 0 && total > 0) {
-			buf.data_cl = clCreateBuffer(execdata->context, mode, total * datasize, NULL, &res);
+			buf.data_cl = clCreateBuffer(execdata->opencl_context, mode, total * datasize, NULL, &res);
 			if (res != CL_SUCCESS) {
 				execdata->error = 1;
 				sprintf(execdata->error_string, "Error creating OpenCL buffer: %s", BKE_opencl_message(res));
@@ -326,8 +324,9 @@
 		
 		return buf;
 	}
-	else {
+	else
 #endif
+	{
 		int datasize = sim_get_data_size(datatype);
 		buf.datatype = datatype;
 		buf.stride = datasize;
@@ -343,9 +342,7 @@
 		}
 		
 		return buf;
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 SimBuffer sim_create_buffer_copy(SimExecData *execdata, SimBufferMode mode, int datatype, int total, void *src)
@@ -362,7 +359,7 @@
 		buf.stride = datasize;
 		
 		if (datasize > 0 && total > 0) {
-			buf.data_cl = clCreateBuffer(execdata->context, mode | CL_MEM_COPY_HOST_PTR, total * datasize, src, &res);
+			buf.data_cl = clCreateBuffer(execdata->opencl_context, mode | CL_MEM_COPY_HOST_PTR, total * datasize, src, &res);
 			if (res != CL_SUCCESS) {
 				execdata->error = 1;
 				sprintf(execdata->error_string, "Error creating OpenCL buffer copy: %s", BKE_opencl_message(res));
@@ -371,8 +368,9 @@
 		
 		return buf;
 	}
-	else {
+	else
 #endif
+	{
 		int datasize = sim_get_data_size(datatype);
 		buf.datatype = datatype;
 		buf.stride = datasize;
@@ -390,9 +388,7 @@
 		}
 		
 		return buf;
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 SimBuffer sim_create_host_buffer(SimExecData *execdata, SimBufferMode mode, int datatype, int total)
@@ -409,7 +405,7 @@
 		buf.stride = datasize;
 		
 		if (datasize > 0 && total > 0) {
-			buf.data_cl = clCreateBuffer(execdata->context, mode | CL_MEM_ALLOC_HOST_PTR, total * datasize, NULL, &res);
+			buf.data_cl = clCreateBuffer(execdata->opencl_context, mode | CL_MEM_ALLOC_HOST_PTR, total * datasize, NULL, &res);
 			if (res != CL_SUCCESS) {
 				execdata->error = 1;
 				sprintf(execdata->error_string, "Error creating OpenCL host buffer: %s", BKE_opencl_message(res));
@@ -418,8 +414,9 @@
 		
 		return buf;
 	}
-	else {
+	else
 #endif
+	{
 		int datasize = sim_get_data_size(datatype);
 		buf.datatype = datatype;
 		buf.stride = datasize;
@@ -435,9 +432,7 @@
 		}
 		
 		return buf;
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 void sim_release_buffer(SimExecData *execdata, SimBuffer *buffer)
@@ -454,15 +449,14 @@
 			sprintf(execdata->error_string, "Error releasing OpenCL buffer: %s", BKE_opencl_message(res));
 		}
 	}
-	else {
+	else
 #endif
+	{
 		if (buffer->data) {
 			MEM_freeN(buffer->data);
 			buffer->data = NULL;
 		}
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 void *sim_enqueue_map_buffer(SimExecData *execdata, SimBuffer *buffer, int blocking, SimMapMode mode, int start, int num, int num_wait_events, SimEvent *wait_events, SimEvent *event)
@@ -484,7 +478,7 @@
 		}
 		else
 			wait_events_cl = NULL;
-		mapped = clEnqueueMapBuffer(execdata->queue, buffer->data_cl, (blocking ? CL_TRUE : CL_FALSE), mode,
+		mapped = clEnqueueMapBuffer(execdata->opencl_queue, buffer->data_cl, (blocking ? CL_TRUE : CL_FALSE), mode,
 									start * buffer->stride, num * buffer->stride,
 									num_wait_events, wait_events_cl, &event->impl_cl, &res);
 		MEM_freeN(wait_events_cl);
@@ -495,12 +489,11 @@
 		
 		return mapped;
 	}
-	else {
+	else
 #endif
+	{
 		return (char*)buffer->data + start * buffer->stride;
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 void sim_enqueue_unmap_buffer(SimExecData *execdata, SimBuffer *buffer, void *ptr, int num_wait_events, SimEvent *wait_events, SimEvent *event)
@@ -521,18 +514,17 @@
 		}
 		else
 			wait_events_cl = NULL;
-		res = clEnqueueUnmapMemObject(execdata->queue, buffer->data_cl, ptr, num_wait_events, wait_events_cl, &event->impl_cl);
+		res = clEnqueueUnmapMemObject(execdata->opencl_queue, buffer->data_cl, ptr, num_wait_events, wait_events_cl, &event->impl_cl);
 		MEM_freeN(wait_events_cl);
 		if (res != CL_SUCCESS) {
 			execdata->error = 1;
 			sprintf(execdata->error_string, "Error unmapping OpenCL buffer: %s", BKE_opencl_message(res));
 		}
 	}
-	else {
+	else
 #endif
-#ifdef WITH_OPENCL
+	{
 	}
-#endif
 }
 
 void sim_enqueue_read_buffer(SimExecData *execdata, SimBuffer *buffer, int blocking, int start, int num, void *dst, int num_wait_events, SimEvent *wait_events, SimEvent *event)
@@ -553,7 +545,7 @@
 		}
 		else
 			wait_events_cl = NULL;
-		res = clEnqueueReadBuffer(execdata->queue, buffer->data_cl, (blocking ? CL_TRUE : CL_FALSE),
+		res = clEnqueueReadBuffer(execdata->opencl_queue, buffer->data_cl, (blocking ? CL_TRUE : CL_FALSE),
 								  start * buffer->stride, num * buffer->stride, dst,
 								  num_wait_events, wait_events_cl, &event->impl_cl);
 		MEM_freeN(wait_events_cl);
@@ -562,12 +554,11 @@
 			sprintf(execdata->error_string, "Error reading from OpenCL buffer: %s", BKE_opencl_message(res));
 		}
 	}
-	else {
+	else
 #endif
+	{
 		memcpy(dst, (char*)buffer->data + start * buffer->stride, num * buffer->stride);
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 void sim_enqueue_write_buffer(SimExecData *execdata, SimBuffer *buffer, int blocking, int start, int num, void *src, int num_wait_events, SimEvent *wait_events, SimEvent *event)
@@ -588,7 +579,7 @@
 		}
 		else
 			wait_events_cl = NULL;
-		res = clEnqueueWriteBuffer(execdata->queue, buffer->data_cl, (blocking ? CL_TRUE : CL_FALSE),
+		res = clEnqueueWriteBuffer(execdata->opencl_queue, buffer->data_cl, (blocking ? CL_TRUE : CL_FALSE),
 								   start * buffer->stride, num * buffer->stride, src,
 								   num_wait_events, wait_events_cl, &event->impl_cl);
 		MEM_freeN(wait_events_cl);
@@ -597,12 +588,11 @@
 			sprintf(execdata->error_string, "Error writing to OpenCL buffer: %s", BKE_opencl_message(res));
 		}
 	}
-	else {
+	else
 #endif
+	{
 		memcpy((char*)buffer->data + start * buffer->stride, src, num * buffer->stride);
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 void sim_enqueue_copy_buffer(SimExecData *execdata, SimBuffer *src, SimBuffer *dst, int start_src, int start_dst, int num, int num_wait_events, SimEvent *wait_events, SimEvent *event)
@@ -626,7 +616,7 @@
 		}
 		else
 			wait_events_cl = NULL;
-		res = clEnqueueCopyBuffer(execdata->queue, src->data_cl, dst->data_cl,
+		res = clEnqueueCopyBuffer(execdata->opencl_queue, src->data_cl, dst->data_cl,
 								  start_src*src->stride, start_dst*dst->stride, num*src->stride,
 								  num_wait_events, wait_events_cl, &event->impl_cl);
 		MEM_freeN(wait_events_cl);
@@ -635,14 +625,13 @@
 			sprintf(execdata->error_string, "Error copying OpenCL buffer: %s", BKE_opencl_message(res));
 		}
 	}
-	else {
+	else
 #endif
+	{
 		/* both buffers must have same data element size! */
 		assert(src->stride == dst->stride);
 		memcpy((char*)dst->data + start_dst * dst->stride, (char*)src->data + start_src * src->stride, num * src->stride);
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 #if 0 /* OpenCL 1.1 specs */
@@ -688,7 +677,7 @@
 	if (BKE_opencl_is_active()) {
 		cl_int res;
 		
-		kernel.impl_cl = clCreateKernel(*execdata->program, cl_funcname, &res);
+		kernel.impl_cl = clCreateKernel(*execdata->opencl_program, cl_funcname, &res);
 		if (res != CL_SUCCESS) {
 			execdata->error = 1;
 			sprintf(execdata->error_string, "Error creating OpenCL kernel: %s", BKE_opencl_message(res));
@@ -696,8 +685,9 @@
 		
 		return kernel;
 	}
-	else {
+	else
 #endif
+	{
 		int i;
 		
 		kernel.impl = func;
@@ -705,9 +695,7 @@
 			kernel.args[i] = NULL;
 		}
 		return kernel;
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 void sim_release_kernel(SimExecData *execdata, SimKernel *kernel)
@@ -723,8 +711,9 @@
 			sprintf(execdata->error_string, "Error releasing OpenCL kernel: %s", BKE_opencl_message(res));
 		}
 	}
-	else {
+	else
 #endif
+	{
 		int i;
 		
 		for (i=0; i < SIM_MAXKERNELARGS; ++i) {
@@ -733,9 +722,7 @@
 				kernel->args[i] = NULL;
 			}
 		}
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 void sim_set_kernel_arg(SimExecData *execdata, SimKernel *kernel, int arg_index, size_t arg_size, const void *arg_value)
@@ -752,16 +739,15 @@
 			sprintf(execdata->error_string, "Error setting OpenCL kernel argument: %s", BKE_opencl_message(res));
 		}
 	}
-	else {
+	else
 #endif
+	{
 		assert( arg_index < SIM_MAXKERNELARGS );
 		if (kernel->args[arg_index])
 			MEM_freeN(kernel->args[arg_index]);
 		kernel->args[arg_index] = MEM_callocN(arg_size, "kernel argument");
 		memcpy(kernel->args[arg_index], arg_value, arg_size);
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 void sim_set_kernel_socket_data_arg(SimExecData *execdata, SimKernel *kernel, int arg_index, SimSocketStack *socket)
@@ -778,16 +764,15 @@
 			sprintf(execdata->error_string, "Error setting OpenCL kernel socket data argument: %s", BKE_opencl_message(res));
 		}
 	}
-	else {
+	else
 #endif
+	{
 		assert( arg_index < SIM_MAXKERNELARGS );
 		if (kernel->args[arg_index])
 			MEM_freeN(kernel->args[arg_index]);
 		kernel->args[arg_index] = MEM_callocN(sizeof(void*), "kernel socket data argument");
 		memcpy(kernel->args[arg_index], &socket->buffer.data, sizeof(void*));
-#ifdef WITH_OPENCL
 	}
-#endif
 }
 
 void sim_set_kernel_socket_size_arg(SimExecData *execdata, SimKernel *kernel, int arg_index, SimSocketStack *socket)
@@ -804,16 +789,15 @@

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list