7 #ifndef PXR_EXEC_VDF_SPECULATION_NODE_H
8 #define PXR_EXEC_VDF_SPECULATION_NODE_H
20 #include <tbb/concurrent_hash_map.h>
76 virtual ~VdfSpeculationNode();
82 return context._GetExecutor();
103 const VdfMask &inputDependencyMask,
117 struct _HashRequest {
130 using _ScheduleMap = tbb::concurrent_hash_map<
131 VdfRequest, std::unique_ptr<VdfSchedule>, _HashRequest>;
132 mutable _ScheduleMap _scheduleMap;
STATIC_INLINE size_t Hash(const char *s, size_t len)
#define PXR_NAMESPACE_OPEN_SCOPE
IMATH_HOSTDEVICE constexpr bool equal(T1 a, T2 b, T3 t) IMATH_NOEXCEPT
A VdfMask is placed on connections to specify the data flowing through them.
virtual void Compute(const VdfContext &context) const =0
Fast, compressed bit array which is capable of performing logical operations without first decompress...
Contains a specification of how to execute a particular VdfNetwork.
virtual bool IsSpeculationNode() const
A node that pulls on a vector of value that are downstream of the current execution position...
virtual VDF_API VdfMask _ComputeOutputDependencyMask(const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, const VdfOutput &output) const
Class to hold on to an externally owned output and a mask.
virtual VdfRequiredInputsPredicate GetRequiredInputsPredicate(const VdfContext &context) const
#define PXR_NAMESPACE_CLOSE_SCOPE
virtual VDF_API VdfMask::Bits _ComputeInputDependencyMask(const VdfMaskedOutput &maskedOutput, const VdfConnection &inputConnection) const
Abstract base class for classes that execute a VdfNetwork to compute a requested set of values...