7 #ifndef PXR_EXEC_EF_LEAF_NODE_CACHE_H
8 #define PXR_EXEC_EF_LEAF_NODE_CACHE_H
53 return _version.load(std::memory_order_relaxed);
61 bool updateIncrementally);
66 const std::vector<const VdfNode *> &
FindNodes(
68 bool updateIncrementally);
76 const std::vector<const VdfNode *> &
FindNodes(
78 const TfBits &outputsMask);
105 struct _VectorizedCacheEntry {
106 std::vector<TfBits> leafNodes;
111 struct _SparseCacheEntry {
112 std::vector<const VdfNode *> nodes;
119 void _ClearCachesIfInvalid();
123 const TfBits &outputsMask,
124 const std::vector<TfBits> &leafNodes)
const;
127 _VectorizedCacheEntry *_PopulateVectorizedEntry(
132 _SparseCacheEntry *_PopulateSparseEntry(
137 std::atomic<size_t> _version;
141 std::atomic<bool> _cachesAreInvalid;
154 _VectorizedCacheEntry,
156 _VectorizedCache _vectorizedCache;
164 _SparseCache _sparseCache;
#define PXR_NAMESPACE_OPEN_SCOPE
EF_API const VdfOutputToMaskMap & FindOutputs(const VdfMaskedOutputVector &outputs, bool updateIncrementally)
Fast bit array that keeps track of the number of bits set and can find the next set in a timely manne...
EF_API void WillDeleteConnection(const VdfConnection &connection)
EF_API void DidConnect(const VdfConnection &connection)
size_t GetVersion() const
std::unordered_map< const VdfOutput *, VdfMask, TfHash > VdfOutputToMaskMap
A map from output pointer to mask.
#define PXR_NAMESPACE_CLOSE_SCOPE
EF_API const std::vector< const VdfNode * > & FindNodes(const VdfMaskedOutputVector &outputs, bool updateIncrementally)
std::vector< VdfMaskedOutput > VdfMaskedOutputVector