MiniCLTaskScheduler handles SPU processing of collision pairs. More...
#include <MiniCLTaskScheduler.h>
Public Member Functions | |
MiniCLTaskScheduler (btThreadSupportInterface *threadInterface, int maxNumOutstandingTasks) | |
~MiniCLTaskScheduler () | |
void | initialize () |
call initialize in the beginning of the frame, before addCollisionPairToTask | |
void | issueTask (int firstWorkUnit, int lastWorkUnit, MiniCLKernel *kernel) |
void | flush () |
call flush to submit potential outstanding work to SPUs and wait for all involved SPUs to be finished | |
class btThreadSupportInterface * | getThreadSupportInterface () |
int | findProgramCommandIdByName (const char *programName) const |
int | getMaxNumOutstandingTasks () const |
void | registerKernel (MiniCLKernel *kernel) |
Private Member Functions | |
void | postProcess (int taskId, int outputSize) |
Private Attributes | |
btAlignedObjectArray< bool > | m_taskBusy |
btAlignedObjectArray < MiniCLTaskDesc > | m_spuSampleTaskDesc |
btAlignedObjectArray< const MiniCLKernel * > | m_kernels |
int | m_numBusyTasks |
int | m_currentTask |
bool | m_initialized |
class btThreadSupportInterface * | m_threadInterface |
int | m_maxNumOutstandingTasks |
MiniCLTaskScheduler handles SPU processing of collision pairs.
When PPU issues a task, it will look for completed task buffers PPU will do postprocessing, dependent on workunit output (not likely)
Definition at line 41 of file MiniCLTaskScheduler.h.
MiniCLTaskScheduler::MiniCLTaskScheduler | ( | btThreadSupportInterface * | threadInterface, | |
int | maxNumOutstandingTasks | |||
) |
MiniCLTaskScheduler::~MiniCLTaskScheduler | ( | ) |
int MiniCLTaskScheduler::findProgramCommandIdByName | ( | const char * | programName | ) | const |
void MiniCLTaskScheduler::flush | ( | ) |
call flush to submit potential outstanding work to SPUs and wait for all involved SPUs to be finished
int MiniCLTaskScheduler::getMaxNumOutstandingTasks | ( | ) | const [inline] |
Definition at line 86 of file MiniCLTaskScheduler.h.
class btThreadSupportInterface* MiniCLTaskScheduler::getThreadSupportInterface | ( | ) | [inline] |
Definition at line 79 of file MiniCLTaskScheduler.h.
void MiniCLTaskScheduler::initialize | ( | ) |
call initialize in the beginning of the frame, before addCollisionPairToTask
void MiniCLTaskScheduler::issueTask | ( | int | firstWorkUnit, | |
int | lastWorkUnit, | |||
MiniCLKernel * | kernel | |||
) |
void MiniCLTaskScheduler::postProcess | ( | int | taskId, | |
int | outputSize | |||
) | [private] |
void MiniCLTaskScheduler::registerKernel | ( | MiniCLKernel * | kernel | ) | [inline] |
Definition at line 91 of file MiniCLTaskScheduler.h.
int MiniCLTaskScheduler::m_currentTask [private] |
Definition at line 54 of file MiniCLTaskScheduler.h.
bool MiniCLTaskScheduler::m_initialized [private] |
Definition at line 56 of file MiniCLTaskScheduler.h.
btAlignedObjectArray<const MiniCLKernel*> MiniCLTaskScheduler::m_kernels [private] |
Definition at line 48 of file MiniCLTaskScheduler.h.
int MiniCLTaskScheduler::m_maxNumOutstandingTasks [private] |
Definition at line 62 of file MiniCLTaskScheduler.h.
int MiniCLTaskScheduler::m_numBusyTasks [private] |
Definition at line 51 of file MiniCLTaskScheduler.h.
Definition at line 45 of file MiniCLTaskScheduler.h.
btAlignedObjectArray<bool> MiniCLTaskScheduler::m_taskBusy [private] |
Definition at line 44 of file MiniCLTaskScheduler.h.
class btThreadSupportInterface* MiniCLTaskScheduler::m_threadInterface [private] |
Definition at line 60 of file MiniCLTaskScheduler.h.