7 #ifndef PXR_EXEC_VDF_PARALLEL_SPECULATION_EXECUTOR_ENGINE_H
8 #define PXR_EXEC_VDF_PARALLEL_SPECULATION_EXECUTOR_ENGINE_H
32 template <
typename DataManagerType >
35 VdfParallelSpeculationExecutorEngine<DataManagerType>,
52 DataManagerType *dataManager);
85 void _FinalizeEvaluation() {}
94 template <
typename DataManagerType >
98 DataManagerType *dataManager) :
99 Base(speculationExecutor, dataManager),
101 speculationExecutor.GetNonSpeculationParentExecutor()))
106 template <
typename DataManagerType >
122 template <
typename DataManagerType >
129 Base::_executor._TouchOutput(output);
132 template <
typename DataManagerType >
138 const typename Base::_DataHandle dataHandle,
150 Base::_dataManager->GetPrivateBufferData(dataHandle);
157 if (_writeBackExecutor->GetOutputValue(output, mask)) {
165 if (_writeBackExecutor->TakeOutputValue(output, value, mask)) {
#define PXR_NAMESPACE_OPEN_SCOPE
GLsizei const GLfloat * value
bool HasOwnership() const
A VdfMask is placed on connections to specify the data flowing through them.
VdfParallelExecutorEngineBase< VdfParallelSpeculationExecutorEngine< DataManagerType >, DataManagerType > Base
This object is responsible for storing the executor buffer data, comprised of the executor cache vect...
DataManagerType::DataHandle _DataHandle
const VdfMask & GetExecutorCacheMask() const
bool IsSpeculatingNode(const VdfNode *node) const
const VdfExecutorInterface & GetExecutor() const
#define PXR_NAMESPACE_CLOSE_SCOPE
uint32_t VdfScheduleTaskIndex
Abstract base class for classes that execute a VdfNetwork to compute a requested set of values...
VdfVector * GetExecutorCache() const
VdfParallelSpeculationExecutorEngine(const VdfSpeculationExecutorBase &speculationExecutor, DataManagerType *dataManager)