51 if (fDispatchGroups.
empty()) {
52 return Status::kDiscard;
55 const std::unique_ptr<DispatchGroup>* currentSpanPtr = &fDispatchGroups[0];
56 size_t currentSpanSize = 0u;
57 for (
int i = 0; i < fDispatchGroups.
size(); ++i) {
61 Task* child = fChildTasks[i].get();
63 if (currentSpanSize > 0u) {
64 if (!commandBuffer->
addComputePass({currentSpanPtr, currentSpanSize})) {
67 currentSpanPtr = &fDispatchGroups[i];
72 if (status == Status::kFail) {
74 }
else if (status == Status::kDiscard) {
75 fChildTasks[i].reset();
80 return (currentSpanSize == 0u ||
81 commandBuffer->
addComputePass({currentSpanPtr, currentSpanSize})) ? Status::kSuccess