[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