From 3f1858dabdcae7a876e97f64c3607d1fc461ab35 Mon Sep 17 00:00:00 2001 From: Peter Heywood Date: Wed, 19 Oct 2022 19:30:15 +0100 Subject: [PATCH] Switch boids_spatial3D to use the dependency graph --- examples/boids_spatial3D/src/main.cu | 43 ++++++++++++++-------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/examples/boids_spatial3D/src/main.cu b/examples/boids_spatial3D/src/main.cu index 4cff832b8..a4c55c656 100644 --- a/examples/boids_spatial3D/src/main.cu +++ b/examples/boids_spatial3D/src/main.cu @@ -361,29 +361,28 @@ int main(int argc, const char ** argv) { message.newVariable("fy"); message.newVariable("fz"); } - { // Boid agent - flamegpu::AgentDescription &agent = model.newAgent("Boid"); - agent.newVariable("x"); - agent.newVariable("y"); - agent.newVariable("z"); - agent.newVariable("fx"); - agent.newVariable("fy"); - agent.newVariable("fz"); - agent.newFunction("outputdata", outputdata).setMessageOutput("location"); - agent.newFunction("inputdata", inputdata).setMessageInput("location"); - } - /** - * Control flow - */ - { // Layer #1 - flamegpu::LayerDescription &layer = model.newLayer(); - layer.addAgentFunction(outputdata); - } - { // Layer #2 - flamegpu::LayerDescription &layer = model.newLayer(); - layer.addAgentFunction(inputdata); - } + // Boid agent + flamegpu::AgentDescription &agent = model.newAgent("Boid"); + agent.newVariable("x"); + agent.newVariable("y"); + agent.newVariable("z"); + agent.newVariable("fx"); + agent.newVariable("fy"); + agent.newVariable("fz"); + flamegpu::AgentFunctionDescription& outputdataDescription = agent.newFunction("outputdata", outputdata); + outputdataDescription.setMessageOutput("location"); + flamegpu::AgentFunctionDescription& inputdataDescription = agent.newFunction("inputdata", inputdata); + inputdataDescription.setMessageInput("location"); + + // Dependency specification + inputdataDescription.dependsOn(outputdataDescription); + + // Identify the root of execution + model.addExecutionRoot(outputdataDescription); + + // Build the execution graph + model.generateLayers(); /**