Change CacheManager to not flush and submit at end of trimMemory.
The flush and submit at the start of trim memory now syncs the cpu so that all work is done on the gpu and the max possible amount of resources can be freed This fixes CacheManager unit test since the submit at the end trim memory was causing new resources to be available to be purged. Test: locally ran unit tests Bug: 178978639 Change-Id: I8b57b042dd146fc6c1083540715295e93fd113d3
This commit is contained in:
@@ -101,7 +101,8 @@ void CacheManager::trimMemory(TrimMemoryMode mode) {
|
||||
return;
|
||||
}
|
||||
|
||||
mGrContext->flushAndSubmit();
|
||||
// flush and submit all work to the gpu and wait for it to finish
|
||||
mGrContext->flushAndSubmit(/*syncCpu=*/true);
|
||||
|
||||
switch (mode) {
|
||||
case TrimMemoryMode::Complete:
|
||||
@@ -119,11 +120,6 @@ void CacheManager::trimMemory(TrimMemoryMode mode) {
|
||||
SkGraphics::SetFontCacheLimit(mMaxCpuFontCacheBytes);
|
||||
break;
|
||||
}
|
||||
|
||||
// We must sync the cpu to make sure deletions of resources still queued up on the GPU actually
|
||||
// happen.
|
||||
mGrContext->flush({});
|
||||
mGrContext->submit(true);
|
||||
}
|
||||
|
||||
void CacheManager::trimStaleResources() {
|
||||
|
||||
Reference in New Issue
Block a user