#include <btSoftBodySolverLinkData_OpenCL.h>
Classes | |
struct | BatchPair |
Public Member Functions | |
btSoftBodyLinkDataOpenCL (cl_command_queue queue, cl_context ctx) | |
virtual | ~btSoftBodyLinkDataOpenCL () |
virtual void | createLinks (int numLinks) |
Allocate enough space in all link-related arrays to fit numLinks links. | |
virtual void | setLinkAt (const LinkDescription &link, int linkIndex) |
Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks. | |
virtual bool | onAccelerator () |
Return true if data is on the accelerator. | |
virtual bool | moveToAccelerator () |
Move data from host memory to the accelerator. | |
virtual bool | moveFromAccelerator () |
Move data from host memory from the accelerator. | |
void | generateBatches () |
Generate (and later update) the batching for the entire link set. | |
Public Attributes | |
bool | m_onGPU |
cl_command_queue | m_cqCommandQue |
btOpenCLBuffer< LinkNodePair > | m_clLinks |
btOpenCLBuffer< float > | m_clLinkStrength |
btOpenCLBuffer< float > | m_clLinksMassLSC |
btOpenCLBuffer< float > | m_clLinksRestLengthSquared |
btOpenCLBuffer < Vectormath::Aos::Vector3 > | m_clLinksCLength |
btOpenCLBuffer< float > | m_clLinksLengthRatio |
btOpenCLBuffer< float > | m_clLinksRestLength |
btOpenCLBuffer< float > | m_clLinksMaterialLinearStiffnessCoefficient |
btAlignedObjectArray< int > | m_linkAddresses |
Link addressing information for each cloth. | |
btAlignedObjectArray< BatchPair > | m_batchStartLengths |
Start and length values for computation batches over link data. |
Definition at line 24 of file btSoftBodySolverLinkData_OpenCL.h.
btSoftBodyLinkDataOpenCL::btSoftBodyLinkDataOpenCL | ( | cl_command_queue | queue, | |
cl_context | ctx | |||
) |
Definition at line 164 of file btSoftBodySolver_OpenCL.cpp.
btSoftBodyLinkDataOpenCL::~btSoftBodyLinkDataOpenCL | ( | ) | [virtual] |
Definition at line 177 of file btSoftBodySolver_OpenCL.cpp.
void btSoftBodyLinkDataOpenCL::createLinks | ( | int | numLinks | ) | [virtual] |
Allocate enough space in all link-related arrays to fit numLinks links.
Reimplemented from btSoftBodyLinkData.
Definition at line 188 of file btSoftBodySolver_OpenCL.cpp.
void btSoftBodyLinkDataOpenCL::generateBatches | ( | ) |
Generate (and later update) the batching for the entire link set.
This redoes a lot of work because it batches the entire set when each cloth is inserted. In theory we could delay it until just before we need the cloth. It's a one-off overhead, though, so that is a later optimisation.
Definition at line 259 of file btSoftBodySolver_OpenCL.cpp.
bool btSoftBodyLinkDataOpenCL::moveFromAccelerator | ( | ) | [virtual] |
Move data from host memory from the accelerator.
The CPU version will always return that it has moved it.
Reimplemented from btSoftBodyLinkData.
Definition at line 234 of file btSoftBodySolver_OpenCL.cpp.
bool btSoftBodyLinkDataOpenCL::moveToAccelerator | ( | ) | [virtual] |
Move data from host memory to the accelerator.
The CPU version will always return that it has moved it.
Reimplemented from btSoftBodyLinkData.
Definition at line 215 of file btSoftBodySolver_OpenCL.cpp.
bool btSoftBodyLinkDataOpenCL::onAccelerator | ( | ) | [virtual] |
Return true if data is on the accelerator.
The CPU version of this class will return true here because the CPU is the same as the accelerator.
Reimplemented from btSoftBodyLinkData.
Definition at line 210 of file btSoftBodySolver_OpenCL.cpp.
void btSoftBodyLinkDataOpenCL::setLinkAt | ( | const LinkDescription & | link, | |
int | linkIndex | |||
) | [virtual] |
Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks.
Reimplemented from btSoftBodyLinkData.
Definition at line 200 of file btSoftBodySolver_OpenCL.cpp.
Start and length values for computation batches over link data.
Definition at line 68 of file btSoftBodySolverLinkData_OpenCL.h.
btOpenCLBuffer<LinkNodePair> btSoftBodyLinkDataOpenCL::m_clLinks |
Definition at line 32 of file btSoftBodySolverLinkData_OpenCL.h.
Definition at line 36 of file btSoftBodySolverLinkData_OpenCL.h.
Definition at line 37 of file btSoftBodySolverLinkData_OpenCL.h.
Definition at line 34 of file btSoftBodySolverLinkData_OpenCL.h.
Definition at line 39 of file btSoftBodySolverLinkData_OpenCL.h.
Definition at line 38 of file btSoftBodySolverLinkData_OpenCL.h.
Definition at line 35 of file btSoftBodySolverLinkData_OpenCL.h.
Definition at line 33 of file btSoftBodySolverLinkData_OpenCL.h.
Definition at line 29 of file btSoftBodySolverLinkData_OpenCL.h.
Link addressing information for each cloth.
Allows link locations to be computed independently of data batching.
Definition at line 63 of file btSoftBodySolverLinkData_OpenCL.h.
Definition at line 27 of file btSoftBodySolverLinkData_OpenCL.h.