Pre-allocate some opList dependency list storage
There is a perf regression (mainly on the Nexus5) for the https://skia-review.googlesource.com/c/skia/+/46200 (Add method to iterate over a GrOp's GrSurfaceProxies) This is another candidate. Change-Id: I276ea44d899166a7d2e74f461f5a6c2c17a21cde Reviewed-on: https://skia-review.googlesource.com/46561 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
This commit is contained in:
parent
2d802ddba6
commit
51066f4dc2
@ -81,7 +81,7 @@ void GrOpList::addDependency(GrOpList* dependedOn) {
|
||||
return; // don't add duplicate dependencies
|
||||
}
|
||||
|
||||
*fDependencies.push() = dependedOn;
|
||||
fDependencies.push_back(dependedOn);
|
||||
}
|
||||
|
||||
// Convert from a GrSurface-based dependency to a GrOpList one
|
||||
|
@ -77,7 +77,13 @@ public:
|
||||
* Does this opList depend on 'dependedOn'?
|
||||
*/
|
||||
bool dependsOn(GrOpList* dependedOn) const {
|
||||
return fDependencies.find(dependedOn) >= 0;
|
||||
for (int i = 0; i < fDependencies.count(); ++i) {
|
||||
if (fDependencies[i] == dependedOn) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -169,11 +175,11 @@ private:
|
||||
|
||||
void addDependency(GrOpList* dependedOn);
|
||||
|
||||
uint32_t fUniqueID;
|
||||
uint32_t fFlags;
|
||||
uint32_t fUniqueID;
|
||||
uint32_t fFlags;
|
||||
|
||||
// 'this' GrOpList relies on the output of the GrOpLists in 'fDependencies'
|
||||
SkTDArray<GrOpList*> fDependencies;
|
||||
SkSTArray<1, GrOpList*, true> fDependencies;
|
||||
|
||||
// These are used rarely, most clients never produce any
|
||||
SkTArray<std::unique_ptr<GrPrepareCallback>> fPrepareCallbacks;
|
||||
|
Loading…
Reference in New Issue
Block a user