|
Nebula
|
Classes | |
| struct | Callable |
| struct | CallableStub |
| struct | JobContext |
| struct | JobNode |
| struct | Jobs2Context |
| struct | JobSystemInitInfo |
| class | JobThread |
| struct | Lambda |
Typedefs | |
| typedef volatile long | CompletionCounter |
| using | JobFunc = void(*)(SizeT totalJobs, SizeT groupSize, IndexT groupIndex, SizeT invocationOffset, void* ctx) |
Functions | |
| __ImplementClass (Jobs2::JobThread, 'J2TH', Threading::Thread) | |
| void | JobSystemInit (const JobSystemInitInfo &info) |
| Create a new job port. | |
| void | JobSystemUninit () |
| Destroy job port. | |
| void | JobNewFrame () |
| Progress to new buffer. | |
| void * | JobAlloc (SizeT bytes) |
| Allocate memory. | |
| void | JobSequencePlaceholder (SizeT totalJobs, SizeT groupSize, IndexT groupIndex, SizeT invocationOffset, void *ctx) |
| void | JobBeginSequence (const Util::FixedArray< const Threading::AtomicCounter *, true > &waitCounters=nullptr, Threading::AtomicCounter *doneCounter=nullptr, Threading::Event *signalEvent=nullptr) |
| Begin a sequence of jobs. | |
| void | JobEndSequence (Threading::Event *signalEvent=nullptr) |
| Flush queued jobs. | |
| template<typename T> | |
| T * | JobAlloc (SizeT count) |
| Allocate memory and progress memory iterator. | |
| template<typename CTX> | |
| void | JobAppendSequence (const JobFunc &func, const SizeT numInvocations, const SizeT groupSize, const CTX &context) |
| Append job to sequence with an automatic dependency on the previous job. | |
| template<typename CTX> | |
| void | JobAppendSequence (const JobFunc &func, const SizeT numInvocations, const CTX &context) |
| Append job to sequence with an automatic dependency on the previous job, to run on a single thread. | |
| template<typename LAMBDA> | |
| void | JobDispatch (LAMBDA &&func, const SizeT numInvocations, const SizeT groupSize, const Util::FixedArray< const Threading::AtomicCounter *, true > &waitCounters=nullptr, Threading::AtomicCounter *doneCounter=nullptr, Threading::Event *signalEvent=nullptr) |
| template<typename LAMBDA> | |
| void | JobDispatch (LAMBDA &&func, const SizeT numInvocations, const Util::FixedArray< const Threading::AtomicCounter *, true > &waitCounters=nullptr, Threading::AtomicCounter *doneCounter=nullptr, Threading::Event *signalEvent=nullptr) |
| template<typename CTX> | |
| void | JobDispatch (const JobFunc &func, const SizeT numInvocations, const SizeT groupSize, const CTX &context, const Util::FixedArray< const Threading::AtomicCounter *, true > &waitCounters=nullptr, Threading::AtomicCounter *doneCounter=nullptr, Threading::Event *signalEvent=nullptr) |
| template<typename CTX> | |
| void | JobDispatch (const JobFunc &func, const SizeT numInvocations, const CTX &context, const Util::FixedArray< const Threading::AtomicCounter *, true > &waitCounters=nullptr, Threading::AtomicCounter *doneCounter=nullptr, Threading::Event *signalEvent=nullptr) |
Variables | |
| Jobs2Context | ctx |
| Jobs2::JobNode * | sequenceNode = nullptr |
| Jobs2::JobNode * | sequenceTail = nullptr |
| const Threading::AtomicCounter * | prevDoneCounter = nullptr |
| Threading::ThreadId | sequenceThread |
| typedef volatile long Jobs2::CompletionCounter |
| using Jobs2::JobFunc = void(*)(SizeT totalJobs, SizeT groupSize, IndexT groupIndex, SizeT invocationOffset, void* ctx) |
| Jobs2::__ImplementClass | ( | Jobs2::JobThread | , |
| 'J2TH' | , | ||
| Threading::Thread | ) |
| void * Jobs2::JobAlloc | ( | SizeT | bytes | ) |
Allocate memory.
| T * Jobs2::JobAlloc | ( | SizeT | count | ) |
Allocate memory and progress memory iterator.
| void Jobs2::JobAppendSequence | ( | const JobFunc & | func, |
| const SizeT | numInvocations, | ||
| const CTX & | context ) |
Append job to sequence with an automatic dependency on the previous job, to run on a single thread.
| void Jobs2::JobAppendSequence | ( | const JobFunc & | func, |
| const SizeT | numInvocations, | ||
| const SizeT | groupSize, | ||
| const CTX & | context ) |
Append job to sequence with an automatic dependency on the previous job.
| void Jobs2::JobBeginSequence | ( | const Util::FixedArray< const Threading::AtomicCounter *, true > & | waitCounters, |
| Threading::AtomicCounter * | doneCounter, | ||
| Threading::Event * | signalEvent ) |
Begin a sequence of jobs.
| void Jobs2::JobDispatch | ( | const JobFunc & | func, |
| const SizeT | numInvocations, | ||
| const CTX & | context, | ||
| const Util::FixedArray< const Threading::AtomicCounter *, true > & | waitCounters = nullptr, | ||
| Threading::AtomicCounter * | doneCounter = nullptr, | ||
| Threading::Event * | signalEvent = nullptr ) |
| void Jobs2::JobDispatch | ( | const JobFunc & | func, |
| const SizeT | numInvocations, | ||
| const SizeT | groupSize, | ||
| const CTX & | context, | ||
| const Util::FixedArray< const Threading::AtomicCounter *, true > & | waitCounters = nullptr, | ||
| Threading::AtomicCounter * | doneCounter = nullptr, | ||
| Threading::Event * | signalEvent = nullptr ) |
| void Jobs2::JobDispatch | ( | LAMBDA && | func, |
| const SizeT | numInvocations, | ||
| const SizeT | groupSize, | ||
| const Util::FixedArray< const Threading::AtomicCounter *, true > & | waitCounters = nullptr, | ||
| Threading::AtomicCounter * | doneCounter = nullptr, | ||
| Threading::Event * | signalEvent = nullptr ) |
| void Jobs2::JobDispatch | ( | LAMBDA && | func, |
| const SizeT | numInvocations, | ||
| const Util::FixedArray< const Threading::AtomicCounter *, true > & | waitCounters = nullptr, | ||
| Threading::AtomicCounter * | doneCounter = nullptr, | ||
| Threading::Event * | signalEvent = nullptr ) |
| void Jobs2::JobEndSequence | ( | Threading::Event * | signalEvent | ) |
Flush queued jobs.
| void Jobs2::JobNewFrame | ( | ) |
Progress to new buffer.
| void Jobs2::JobSequencePlaceholder | ( | SizeT | totalJobs, |
| SizeT | groupSize, | ||
| IndexT | groupIndex, | ||
| SizeT | invocationOffset, | ||
| void * | ctx ) |
| void Jobs2::JobSystemInit | ( | const JobSystemInitInfo & | info | ) |
Create a new job port.
| void Jobs2::JobSystemUninit | ( | ) |
Destroy job port.
| Jobs2Context Jobs2::ctx |
| const Threading::AtomicCounter * Jobs2::prevDoneCounter = nullptr |
| JobNode * Jobs2::sequenceNode = nullptr |
| JobNode * Jobs2::sequenceTail = nullptr |
| Threading::ThreadId Jobs2::sequenceThread |