Classes | Public Member Functions | Public Attributes

btSoftBodyLinkDataOpenCLSIMDAware Class Reference

#include <btSoftBodySolverLinkData_OpenCLSIMDAware.h>

Inheritance diagram for btSoftBodyLinkDataOpenCLSIMDAware:
Inheritance graph
[legend]
Collaboration diagram for btSoftBodyLinkDataOpenCLSIMDAware:
Collaboration graph
[legend]

List of all members.

Classes

struct  BatchPair
struct  NumBatchesVerticesPair

Public Member Functions

 btSoftBodyLinkDataOpenCLSIMDAware (cl_command_queue queue, cl_context ctx)
virtual ~btSoftBodyLinkDataOpenCLSIMDAware ()
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.
int getMaxVerticesPerWavefront ()
int getWavefrontSize ()
int getLinksPerWorkItem ()
int getMaxLinksPerWavefront ()
int getMaxBatchesPerWavefront ()
int getNumWavefronts ()
NumBatchesVerticesPair getNumBatchesAndVerticesWithinWavefront (int wavefront)
int getVertexGlobalAddresses (int vertexIndex)
LinkNodePair getVertexPairLocalAddresses (int linkIndex)
 Get post-batching local addresses of the vertex pair for a link assuming all vertices used by a wavefront are loaded locally.

Public Attributes

bool m_onGPU
cl_command_queue m_cqCommandQue
const int m_wavefrontSize
const int m_linksPerWorkItem
const int m_maxLinksPerWavefront
int m_maxBatchesWithinWave
int m_maxVerticesWithinWave
int m_numWavefronts
int m_maxVertex
btAlignedObjectArray< int > m_linksPerWavefront
btAlignedObjectArray
< NumBatchesVerticesPair
m_numBatchesAndVerticesWithinWaves
btOpenCLBuffer
< NumBatchesVerticesPair
m_clNumBatchesAndVerticesWithinWaves
btAlignedObjectArray< int > m_wavefrontVerticesGlobalAddresses
btOpenCLBuffer< int > m_clWavefrontVerticesGlobalAddresses
btAlignedObjectArray
< LinkNodePair
m_linkVerticesLocalAddresses
btOpenCLBuffer< LinkNodePairm_clLinkVerticesLocalAddresses
btOpenCLBuffer< float > m_clLinkStrength
btOpenCLBuffer< float > m_clLinksMassLSC
btOpenCLBuffer< float > m_clLinksRestLengthSquared
btOpenCLBuffer< float > m_clLinksRestLength
btOpenCLBuffer< float > m_clLinksMaterialLinearStiffnessCoefficient
btAlignedObjectArray< int > m_linkAddresses
 Link addressing information for each cloth.
btAlignedObjectArray< BatchPairm_wavefrontBatchStartLengths
 Start and length values for computation batches over link data.

Detailed Description

Definition at line 24 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.


Constructor & Destructor Documentation

btSoftBodyLinkDataOpenCLSIMDAware::btSoftBodyLinkDataOpenCLSIMDAware ( cl_command_queue  queue,
cl_context  ctx 
)
btSoftBodyLinkDataOpenCLSIMDAware::~btSoftBodyLinkDataOpenCLSIMDAware (  )  [virtual]

Definition at line 84 of file btSoftBodySolver_OpenCLSIMDAware.cpp.


Member Function Documentation

void btSoftBodyLinkDataOpenCLSIMDAware::createLinks ( int  numLinks  )  [virtual]

Allocate enough space in all link-related arrays to fit numLinks links.

Reimplemented from btSoftBodyLinkData.

Definition at line 95 of file btSoftBodySolver_OpenCLSIMDAware.cpp.

void btSoftBodyLinkDataOpenCLSIMDAware::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 932 of file btSoftBodySolver_OpenCLSIMDAware.cpp.

int btSoftBodyLinkDataOpenCLSIMDAware::getLinksPerWorkItem (  )  [inline]

Definition at line 128 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

int btSoftBodyLinkDataOpenCLSIMDAware::getMaxBatchesPerWavefront (  )  [inline]

Definition at line 138 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

int btSoftBodyLinkDataOpenCLSIMDAware::getMaxLinksPerWavefront (  )  [inline]

Definition at line 133 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

int btSoftBodyLinkDataOpenCLSIMDAware::getMaxVerticesPerWavefront (  )  [inline]

Definition at line 118 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

NumBatchesVerticesPair btSoftBodyLinkDataOpenCLSIMDAware::getNumBatchesAndVerticesWithinWavefront ( int  wavefront  )  [inline]

Definition at line 148 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

int btSoftBodyLinkDataOpenCLSIMDAware::getNumWavefronts (  )  [inline]

Definition at line 143 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

int btSoftBodyLinkDataOpenCLSIMDAware::getVertexGlobalAddresses ( int  vertexIndex  )  [inline]

Definition at line 153 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

LinkNodePair btSoftBodyLinkDataOpenCLSIMDAware::getVertexPairLocalAddresses ( int  linkIndex  )  [inline]

Get post-batching local addresses of the vertex pair for a link assuming all vertices used by a wavefront are loaded locally.

Definition at line 161 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

int btSoftBodyLinkDataOpenCLSIMDAware::getWavefrontSize (  )  [inline]

Definition at line 123 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

bool btSoftBodyLinkDataOpenCLSIMDAware::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 146 of file btSoftBodySolver_OpenCLSIMDAware.cpp.

bool btSoftBodyLinkDataOpenCLSIMDAware::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 127 of file btSoftBodySolver_OpenCLSIMDAware.cpp.

bool btSoftBodyLinkDataOpenCLSIMDAware::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 122 of file btSoftBodySolver_OpenCLSIMDAware.cpp.

void btSoftBodyLinkDataOpenCLSIMDAware::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 107 of file btSoftBodySolver_OpenCLSIMDAware.cpp.


Member Data Documentation

Definition at line 58 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 61 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 60 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 59 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 57 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 56 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 48 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 54 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 29 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Link addressing information for each cloth.

Allows link locations to be computed independently of data batching.

Definition at line 85 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 46 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 32 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 55 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 34 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 33 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 38 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 35 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 47 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 36 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 27 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Start and length values for computation batches over link data.

Definition at line 90 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 31 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.

Definition at line 53 of file btSoftBodySolverLinkData_OpenCLSIMDAware.h.


The documentation for this class was generated from the following files: