[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31813] branches/particles-2010/source/ blender: Added a wrapper layer for OpenCL functions and data types.
Lukas Toenne
lukas.toenne at googlemail.com
Tue Sep 7 14:07:39 CEST 2010
Revision: 31813
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31813
Author: lukastoenne
Date: 2010-09-07 14:07:39 +0200 (Tue, 07 Sep 2010)
Log Message:
-----------
Added a wrapper layer for OpenCL functions and data types. This allows seamless integration of a fallback if OpenCL is not available or enabled. It also allows the use of socket data types directly in the buffer methods, making node implementation easier.
Modified Paths:
--------------
branches/particles-2010/source/blender/blenkernel/BKE_node.h
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle_force.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_debugprint.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_filter.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_for.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_get_data.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_if.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_math.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_particle_dynamics.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_pass.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_program.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_random.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_set_data.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_subprogram.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_timestep.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_vector_compose.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_vector_decompose.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_vectormath.c
branches/particles-2010/source/blender/nodes/intern/SIM_util.c
branches/particles-2010/source/blender/nodes/intern/SIM_util.h
branches/particles-2010/source/blender/nodes/intern/node_tree_simulation.c
Modified: branches/particles-2010/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/particles-2010/source/blender/blenkernel/BKE_node.h 2010-09-07 12:03:09 UTC (rev 31812)
+++ branches/particles-2010/source/blender/blenkernel/BKE_node.h 2010-09-07 12:07:39 UTC (rev 31813)
@@ -117,9 +117,6 @@
void (*updatefunc)(struct bNodeTree *ntree, struct bNode *node);
/* simulation nodes */
- int (*sim_execfunc)(struct SimNodeThreadContext *ctx, struct SimNodeJob *job);
- int (*sim_opexecfunc)(struct SimNodeThreadContext *ctx, struct bNode *node, int level, int *r_opsock);
-
const char *cl_source;
void (*enqueue)(struct SimExecData *execdata, struct SimNodeStack *node, struct SimDataContext *self);
void (*enqueue_op)(struct SimExecData *execdata, struct SimNodeStack *node, struct SimDataContext *self, int execlevel, int *pushop);
Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle.c 2010-09-07 12:03:09 UTC (rev 31812)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle.c 2010-09-07 12:07:39 UTC (rev 31813)
@@ -47,25 +47,6 @@
{ -1, 0, "" }
};
-static int exec(SimNodeThreadContext *ctx, SimNodeJob *job)
-{
- return NODE_EXEC_FINISHED;
-}
-
-static int opexec(SimNodeThreadContext *ctx, bNode *node, int level, int *r_opsock)
-{
-// SimNodeDataStream ostream[1];
-// Object *ob = (Object*)node->id;
-//
-// if (ob && ob->type == OB_PSET) {
-// ParticleSet *pset = (ParticleSet*)ob->data;
-//
-// pset_create_particles(pset, ctx->sim->cfra, 1);
-// *r_opsock = 0;
-// }
- return NODE_EXEC_FINISHED;
-}
-
bNodeType sim_node_addparticle= {
/* *next,*prev */ NULL, NULL,
/* type code */ SIM_NODE_ADDPARTICLE,
@@ -83,7 +64,5 @@
/* id */ NULL,
/* pynode, pydict */ NULL, NULL,
/* gpufunc */ NULL,
- /* updatefunc */ NULL,
- /* sim_exec */ exec,
- /* sim_opexec */ opexec
+ /* updatefunc */ NULL
};
Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle_force.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle_force.c 2010-09-07 12:03:09 UTC (rev 31812)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_add_particle_force.c 2010-09-07 12:07:39 UTC (rev 31813)
@@ -48,44 +48,6 @@
{ -1, 0, "" }
};
-static int exec(SimNodeThreadContext *ctx, SimNodeJob *job)
-{
-// SimNodeDataStream istream[1];
-// Object *ob = (Object*)job->node->node->id;
-//
-// if (ob && ob->type == OB_PSET) {
-// ParticleSet *pset = (ParticleSet*)ob->data;
-// ParticleIterator pit;
-// ParticlePropertyInfo *propforce = pset_find_particle_property(pset, "Force");
-//
-// if (!propforce)
-// return NODE_EXEC_FINISHED;
-//
-// pit_init(&pit, pset);
-// pit_goto(&pit, (job->execlevel == 0 ? job->input_start : job->current));
-// SIM_JOBEXEC_OUTPUT_BEGIN(ctx, job, istream, pit.pa != NULL);
-// add_v3_v3(pset_parprop(pit.pa, propforce), sim_istream_read_vector(istream, 0));
-// pit_next(&pit);
-// SIM_JOBEXEC_OUTPUT_FILTERED
-// pit_next(&pit);
-// SIM_JOBEXEC_OUTPUT_END(ctx, job)
-// }
- return NODE_EXEC_FINISHED;
-}
-
-static int opexec(SimNodeThreadContext *ctx, bNode *node, int level, int *r_opsock)
-{
- Object *ob = (Object*)node->id;
-
- if (ob && ob->type == OB_PSET) {
- ParticleSet *pset = (ParticleSet*)ob->data;
-
- DAG_id_flush_update(&pset->id, OB_RECALC_DATA);
-// WM_main_add_notifier(NC_GEOM|ND_DATA, &mesh->id);
- }
- return NODE_EXEC_FINISHED;
-}
-
bNodeType sim_node_addparticleforce= {
/* *next,*prev */ NULL, NULL,
/* type code */ SIM_NODE_ADDPARTICLEFORCE,
@@ -103,7 +65,5 @@
/* id */ NULL,
/* pynode, pydict */ NULL, NULL,
/* gpufunc */ NULL,
- /* updatefunc */ NULL,
- /* sim_exec */ exec,
- /* sim_opexec */ opexec
+ /* updatefunc */ NULL
};
Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_debugprint.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_debugprint.c 2010-09-07 12:03:09 UTC (rev 31812)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_debugprint.c 2010-09-07 12:07:39 UTC (rev 31813)
@@ -40,56 +40,6 @@
{ -1, 0, "" }
};
-static int exec(SimNodeThreadContext *ctx, SimNodeJob *job)
-{
-// SimNodeDataStream istream[1];
-// SimNodeDataStream ostream[1];
-// int i, valid;
-// int ival;
-// char cval;
-// float fval, *vval;
-//
-// if (job->execlevel == 0)
-// printf("Debug print (node '%s', level %d)\n", job->node->node->name, job->execlevel);
-// valid = (sim_istream_init(istream, ctx, job) && sim_ostream_init(ostream, ctx, job, job->input_start));
-// for (i=0; valid; ++i) {
-// printf("Element %d: ", i);
-// switch (job->node->inputs[0]->datatype) {
-// case SOCK_FLOAT:
-// fval = sim_istream_read_float(istream, 0);
-// printf("%f", fval);
-// sim_ostream_write_float(ostream, 0, fval);
-// break;
-// case SOCK_INT:
-// ival = sim_istream_read_int(istream, 0);
-// printf("%d", ival);
-// sim_ostream_write_int(ostream, 0, ival);
-// break;
-// case SOCK_BOOL:
-// cval = sim_istream_read_bool(istream, 0);
-// printf("%f", fval);
-// sim_ostream_write_bool(ostream, 0, cval);
-// break;
-// case SOCK_VECTOR:
-// vval = sim_istream_read_vector(istream, 0);
-// printf("(%f, %f, %f)", vval[0], vval[1], vval[2]);
-// sim_ostream_write_vector(ostream, 0, vval);
-// break;
-// case SOCK_RGBA:
-// vval = sim_istream_read_rgba(istream, 0);
-// printf("[%f, %f, %f, %f]", vval[0], vval[1], vval[2], vval[3]);
-// sim_ostream_write_rgba(ostream, 0, vval);
-// break;
-// }
-// valid = sim_istream_next(istream) && sim_ostream_next(ostream);
-// printf("\n");
-// }
-// sim_istream_close(istream, ctx);
-// sim_ostream_close(ostream, ctx, job);
-// job->storage1 = i; /* starting point when resuming */
- return NODE_EXEC_FINISHED;
-}
-
bNodeType sim_node_debugprint= {
/* *next,*prev */ NULL, NULL,
/* type code */ SIM_NODE_DEBUGPRINT,
@@ -107,7 +57,5 @@
/* id */ NULL,
/* pynode, pydict */ NULL, NULL,
/* gpufunc */ NULL,
- /* updatefunc */ NULL,
- /* sim_exec */ exec,
- /* sim_opexec */ NULL
+ /* updatefunc */ NULL
};
Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_filter.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_filter.c 2010-09-07 12:03:09 UTC (rev 31812)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_filter.c 2010-09-07 12:07:39 UTC (rev 31813)
@@ -44,58 +44,6 @@
{ -1, 0, "" }
};
-static int exec(SimNodeThreadContext *ctx, SimNodeJob *job)
-{
-// SimNodeDataStream istream[2];
-// SimNodeDataStream ostream[1];
-//
-// switch (job->node->outputs[0].datatype) {
-// case SOCK_OP:
-// break;
-// case SOCK_FLOAT:
-// SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
-// if (sim_istream_read_bool(istream, 0))
-// sim_ostream_filter(ostream, 0);
-// else
-// sim_ostream_write_float(ostream, 0, sim_istream_read_float(istream, 1));
-// SIM_JOBEXEC_END(ctx, job)
-// break;
-// case SOCK_INT:
-// SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
-// if (sim_istream_read_bool(istream, 0))
-// sim_ostream_filter(ostream, 0);
-// else
-// sim_ostream_write_int(ostream, 0, sim_istream_read_int(istream, 1));
-// SIM_JOBEXEC_END(ctx, job)
-// break;
-// case SOCK_BOOL:
-// SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
-// if (sim_istream_read_bool(istream, 0))
-// sim_ostream_filter(ostream, 0);
-// else
-// sim_ostream_write_bool(ostream, 0, sim_istream_read_bool(istream, 1));
-// SIM_JOBEXEC_END(ctx, job)
-// break;
-// case SOCK_VECTOR:
-// SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
-// if (sim_istream_read_bool(istream, 0))
-// sim_ostream_filter(ostream, 0);
-// else
-// sim_ostream_write_vector(ostream, 0, sim_istream_read_vector(istream, 1));
-// SIM_JOBEXEC_END(ctx, job)
-// break;
-// case SOCK_RGBA:
-// SIM_JOBEXEC_BEGIN(ctx, job, istream, ostream);
-// if (sim_istream_read_bool(istream, 0))
-// sim_ostream_filter(ostream, 0);
-// else
-// sim_ostream_write_rgba(ostream, 0, sim_istream_read_rgba(istream, 1));
-// SIM_JOBEXEC_END(ctx, job)
-// break;
-// }
- return NODE_EXEC_FINISHED;
-}
-
bNodeType sim_node_filter= {
/* *next,*prev */ NULL, NULL,
/* type code */ SIM_NODE_FILTER,
@@ -113,7 +61,5 @@
/* id */ NULL,
/* pynode, pydict */ NULL, NULL,
/* gpufunc */ NULL,
- /* updatefunc */ NULL,
- /* sim_exec */ exec,
- /* sim_opexec */ NULL
+ /* updatefunc */ NULL
};
Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_for.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_for.c 2010-09-07 12:03:09 UTC (rev 31812)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_for.c 2010-09-07 12:07:39 UTC (rev 31813)
@@ -44,26 +44,6 @@
{ -1, 0, "" }
};
-static int exec(SimNodeThreadContext *ctx, SimNodeJob *job)
-{
-// SimNodeDataStream istream[1];
-//
-// SIM_JOBEXEC_OUTPUT_BEGIN(ctx, job, istream, job->current < 1);
-// job->node->node->custom1 = sim_istream_read_int(istream, 0);
-// SIM_JOBEXEC_OUTPUT_END(ctx, job)
- return NODE_EXEC_FINISHED;
-}
-
-static int opexec(SimNodeThreadContext *ctx, bNode *node, int level, int *r_opsock)
-{
- if (level < node->custom1) {
- *r_opsock = 0;
- return NODE_EXEC_SUSPEND;
- }
- else
- return NODE_EXEC_FINISHED;
-}
-
bNodeType sim_node_for= {
/* *next,*prev */ NULL, NULL,
/* type code */ SIM_NODE_FOR,
@@ -81,7 +61,5 @@
/* id */ NULL,
/* pynode, pydict */ NULL, NULL,
/* gpufunc */ NULL,
- /* updatefunc */ NULL,
- /* sim_exec */ exec,
- /* sim_opexec */ opexec
+ /* updatefunc */ NULL
};
Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodes/SIM_get_data.c
===================================================================
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list