55 const VdfMaskedOutputVector &outputs,
66 struct _PoolDependency {
72 struct _Dependencies {
81 struct _OutputAndMask {
88 using _VisitedOutputs =
89 TfHashMap<const VdfOutput *, const VdfMask *, TfHash>;
92 using _OutputStack = std::vector<_OutputAndMask>;
95 using _PoolQueue = std::map<const VdfPoolChainIndex, _OutputAndMask>;
100 const _OutputAndMask &outputAndMask,
101 _VisitedOutputs *visitedOutputs);
110 void _TraverseOutput(
112 const _OutputAndMask &outputAndMask,
118 void _QueuePoolOutput(
120 const _OutputAndMask &outputAndMask,
124 bool _TakePoolShortcut(
125 const _OutputAndMask &outputAndMask,
130 const _Dependencies &_GetDependencies(
131 const _OutputAndMask &outputAndMask);
134 void _ComputeDependencies(
135 const _OutputAndMask &outputAndMask,
136 _Dependencies *dependencies);
139 using _DependencyMap = tbb::concurrent_unordered_map<
141 _DependencyMap _dependencyMap;