Remove GrSurfaceContext::flush calls ...
... replacing them w/ calls to GrDirectContextPriv::flushSurface.
Since recording contexts can also possess surface- and renderTarget-
Contexts it is misleading for them to have a flush method.
Change-Id: I10f4fad12d4d5efdd999ba212fda9ce5cdd83130
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/334068
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrDirectContextPriv.cpp b/src/gpu/GrDirectContextPriv.cpp
index 10b59c8..1459461 100644
--- a/src/gpu/GrDirectContextPriv.cpp
+++ b/src/gpu/GrDirectContextPriv.cpp
@@ -39,24 +39,31 @@
fContext->addOnFlushCallbackObject(onFlushCBObject);
}
-GrSemaphoresSubmitted GrDirectContextPriv::flushSurfaces(SkSpan<GrSurfaceProxy*> proxies,
- const GrFlushInfo& info) {
+GrSemaphoresSubmitted GrDirectContextPriv::flushSurfaces(
+ SkSpan<GrSurfaceProxy*> proxies,
+ SkSurface::BackendSurfaceAccess access,
+ const GrFlushInfo& info,
+ const GrBackendSurfaceMutableState* newState) {
ASSERT_SINGLE_OWNER
- RETURN_VALUE_IF_ABANDONED(GrSemaphoresSubmitted::kNo)
GR_CREATE_TRACE_MARKER_CONTEXT("GrDirectContextPriv", "flushSurfaces", fContext);
+
+ if (fContext->abandoned()) {
+ if (info.fSubmittedProc) {
+ info.fSubmittedProc(info.fSubmittedContext, false);
+ }
+ if (info.fFinishedProc) {
+ info.fFinishedProc(info.fFinishedContext);
+ }
+ return GrSemaphoresSubmitted::kNo;
+ }
+
#ifdef SK_DEBUG
for (GrSurfaceProxy* proxy : proxies) {
SkASSERT(proxy);
ASSERT_OWNED_PROXY(proxy);
}
#endif
- return fContext->drawingManager()->flushSurfaces(
- proxies, SkSurface::BackendSurfaceAccess::kNoAccess, info, nullptr);
-}
-
-void GrDirectContextPriv::flushSurface(GrSurfaceProxy* proxy) {
- size_t size = proxy ? 1 : 0;
- this->flushSurfaces({&proxy, size}, {});
+ return fContext->drawingManager()->flushSurfaces(proxies, access, info, newState);
}
void GrDirectContextPriv::copyRenderTasksFromDDL(sk_sp<const SkDeferredDisplayList> ddl,