Always submit after texture uploads
Ensure GrContext::submit() is always called after either Bitmap#prepareToDraw() or if DrawFrameTask skipped drawing. In either case texture uploads & deletions will be scheduled, but without the submit they won't actually be performed. This can end up running out of RAM. Bug: 189393671 Test: manual test app Change-Id: I57477c64457558487e9e5ec0a979ad9099a8cb2c
This commit is contained in:
@@ -130,6 +130,12 @@ void DrawFrameTask::run() {
|
||||
if (CC_LIKELY(canDrawThisFrame)) {
|
||||
dequeueBufferDuration = context->draw();
|
||||
} else {
|
||||
// Do a flush in case syncFrameState performed any texture uploads. Since we skipped
|
||||
// the draw() call, those uploads (or deletes) will end up sitting in the queue.
|
||||
// Do them now
|
||||
if (GrDirectContext* grContext = mRenderThread->getGrContext()) {
|
||||
grContext->flushAndSubmit();
|
||||
}
|
||||
// wait on fences so tasks don't overlap next frame
|
||||
context->waitOnFences();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user