Add more general flush call to GrContext.
This is to match the current features of SkSurface::flush and to prepare
for adding additional features to flush.
Bug: skia:8802
Change-Id: I5d68272e1277b416af357e6ffaf426841ceda943
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207301
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index c73f9ca..075ac00 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -244,19 +244,18 @@
RETURN_IF_ABANDONED
this->drawingManager()->flush(nullptr, SkSurface::BackendSurfaceAccess::kNoAccess,
- SkSurface::kNone_FlushFlags, 0, nullptr);
+ kNone_GrFlushFlags, 0, nullptr);
}
-GrSemaphoresSubmitted GrContext::flushAndSignalSemaphores(int numSemaphores,
- GrBackendSemaphore signalSemaphores[]) {
+GrSemaphoresSubmitted GrContext::flush(GrFlushFlags flags, int numSemaphores,
+ GrBackendSemaphore signalSemaphores[]) {
ASSERT_SINGLE_OWNER
if (this->abandoned()) {
return GrSemaphoresSubmitted::kNo;
}
return this->drawingManager()->flush(nullptr, SkSurface::BackendSurfaceAccess::kNoAccess,
- SkSurface::kNone_FlushFlags, numSemaphores,
- signalSemaphores);
+ flags, numSemaphores, signalSemaphores);
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/GrContextPriv.cpp b/src/gpu/GrContextPriv.cpp
index c8aa4d3..f545e90 100644
--- a/src/gpu/GrContextPriv.cpp
+++ b/src/gpu/GrContextPriv.cpp
@@ -195,7 +195,7 @@
ASSERT_OWNED_PROXY_PRIV(proxy);
fContext->drawingManager()->flush(proxy, SkSurface::BackendSurfaceAccess::kNoAccess,
- SkSurface::kNone_FlushFlags, 0, nullptr);
+ kNone_GrFlushFlags, 0, nullptr);
}
void GrContextPriv::prepareSurfaceForExternalIO(GrSurfaceProxy* proxy) {
@@ -204,7 +204,7 @@
SkASSERT(proxy);
ASSERT_OWNED_PROXY_PRIV(proxy);
fContext->drawingManager()->prepareSurfaceForExternalIO(proxy,
- SkSurface::BackendSurfaceAccess::kNoAccess, SkSurface::kNone_FlushFlags, 0, nullptr);
+ SkSurface::BackendSurfaceAccess::kNoAccess, kNone_GrFlushFlags, 0, nullptr);
}
static bool valid_premul_color_type(GrColorType ct) {
diff --git a/src/gpu/GrDrawingManager.cpp b/src/gpu/GrDrawingManager.cpp
index 897c473..7904d75 100644
--- a/src/gpu/GrDrawingManager.cpp
+++ b/src/gpu/GrDrawingManager.cpp
@@ -208,7 +208,7 @@
// MDB TODO: make use of the 'proxy' parameter.
GrSemaphoresSubmitted GrDrawingManager::flush(GrSurfaceProxy* proxy,
SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags,
+ GrFlushFlags flags,
int numSemaphores,
GrBackendSemaphore backendSemaphores[]) {
GR_CREATE_TRACE_MARKER_CONTEXT("GrDrawingManager", "flush", fContext);
@@ -219,7 +219,7 @@
SkDEBUGCODE(this->validate());
- if (SkSurface::kNone_FlushFlags == flags && !numSemaphores && proxy && !fDAG.isUsed(proxy)) {
+ if (kNone_GrFlushFlags == flags && !numSemaphores && proxy && !fDAG.isUsed(proxy)) {
return GrSemaphoresSubmitted::kNo;
}
@@ -442,7 +442,7 @@
(*numOpListsExecuted)++;
if (*numOpListsExecuted >= kMaxOpListsBeforeFlush) {
flushState->gpu()->finishFlush(nullptr, SkSurface::BackendSurfaceAccess::kNoAccess,
- SkSurface::kNone_FlushFlags, 0, nullptr);
+ kNone_GrFlushFlags, 0, nullptr);
*numOpListsExecuted = 0;
}
}
@@ -460,7 +460,7 @@
(*numOpListsExecuted)++;
if (*numOpListsExecuted >= kMaxOpListsBeforeFlush) {
flushState->gpu()->finishFlush(nullptr, SkSurface::BackendSurfaceAccess::kNoAccess,
- SkSurface::kNone_FlushFlags, 0, nullptr);
+ kNone_GrFlushFlags, 0, nullptr);
*numOpListsExecuted = 0;
}
}
@@ -479,7 +479,7 @@
}
GrSemaphoresSubmitted GrDrawingManager::prepareSurfaceForExternalIO(
- GrSurfaceProxy* proxy, SkSurface::BackendSurfaceAccess access, SkSurface::FlushFlags flags,
+ GrSurfaceProxy* proxy, SkSurface::BackendSurfaceAccess access, GrFlushFlags flags,
int numSemaphores, GrBackendSemaphore backendSemaphores[]) {
if (this->wasAbandoned()) {
return GrSemaphoresSubmitted::kNo;
@@ -759,7 +759,7 @@
auto resourceCache = direct->priv().getResourceCache();
if (resourceCache && resourceCache->requestsFlush()) {
this->flush(nullptr, SkSurface::BackendSurfaceAccess::kNoAccess,
- SkSurface::kNone_FlushFlags, 0, nullptr);
+ kNone_GrFlushFlags, 0, nullptr);
resourceCache->purgeAsNeeded();
}
}
diff --git a/src/gpu/GrDrawingManager.h b/src/gpu/GrDrawingManager.h
index 157a6c6..d3b8ac1 100644
--- a/src/gpu/GrDrawingManager.h
+++ b/src/gpu/GrDrawingManager.h
@@ -74,7 +74,7 @@
GrSemaphoresSubmitted prepareSurfaceForExternalIO(GrSurfaceProxy*,
SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags,
+ GrFlushFlags flags,
int numSemaphores,
GrBackendSemaphore backendSemaphores[]);
@@ -153,7 +153,7 @@
GrSemaphoresSubmitted flush(GrSurfaceProxy* proxy,
SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags,
+ GrFlushFlags flags,
int numSemaphores,
GrBackendSemaphore backendSemaphores[]);
diff --git a/src/gpu/GrGpu.cpp b/src/gpu/GrGpu.cpp
index 7145f74..c20b255 100644
--- a/src/gpu/GrGpu.cpp
+++ b/src/gpu/GrGpu.cpp
@@ -420,7 +420,7 @@
GrSemaphoresSubmitted GrGpu::finishFlush(GrSurfaceProxy* proxy,
SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags, int numSemaphores,
+ GrFlushFlags flags, int numSemaphores,
GrBackendSemaphore backendSemaphores[]) {
this->stats()->incNumFinishFlushes();
GrResourceProvider* resourceProvider = fContext->priv().resourceProvider();
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h
index 5ffcf38..e44e74c 100644
--- a/src/gpu/GrGpu.h
+++ b/src/gpu/GrGpu.h
@@ -303,7 +303,7 @@
// insert any numSemaphore semaphores on the gpu and set the backendSemaphores to match the
// inserted semaphores.
GrSemaphoresSubmitted finishFlush(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags, int numSemaphores,
+ GrFlushFlags flags, int numSemaphores,
GrBackendSemaphore backendSemaphores[]);
virtual void submit(GrGpuCommandBuffer*) = 0;
@@ -547,7 +547,7 @@
bool canDiscardOutsideDstRect) = 0;
virtual void onFinishFlush(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags, bool insertedSemaphores) = 0;
+ GrFlushFlags flags, bool insertedSemaphores) = 0;
#ifdef SK_ENABLE_DUMP_GPU
virtual void onDumpJSON(SkJSONWriter*) const {}
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp
index c4db904..05241d6 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -1735,7 +1735,7 @@
}
GrSemaphoresSubmitted GrRenderTargetContext::prepareForExternalIO(
- SkSurface::BackendSurfaceAccess access, SkSurface::FlushFlags flags, int numSemaphores,
+ SkSurface::BackendSurfaceAccess access, GrFlushFlags flags, int numSemaphores,
GrBackendSemaphore backendSemaphores[]) {
ASSERT_SINGLE_OWNER
if (fContext->priv().abandoned()) {
diff --git a/src/gpu/GrRenderTargetContext.h b/src/gpu/GrRenderTargetContext.h
index 6d649f7..c4ef529 100644
--- a/src/gpu/GrRenderTargetContext.h
+++ b/src/gpu/GrRenderTargetContext.h
@@ -407,7 +407,7 @@
* if the surface has MSAA it will be resolved.
*/
GrSemaphoresSubmitted prepareForExternalIO(SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags, int numSemaphores,
+ GrFlushFlags flags, int numSemaphores,
GrBackendSemaphore backendSemaphores[]);
/**
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 12af310..9f05af7 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -1628,11 +1628,11 @@
void SkGpuDevice::flush() {
this->flushAndSignalSemaphores(SkSurface::BackendSurfaceAccess::kNoAccess,
- SkSurface::kNone_FlushFlags, 0, nullptr);
+ kNone_GrFlushFlags, 0, nullptr);
}
GrSemaphoresSubmitted SkGpuDevice::flushAndSignalSemaphores(SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags,
+ GrFlushFlags flags,
int numSemaphores,
GrBackendSemaphore signalSemaphores[]) {
ASSERT_SINGLE_OWNER
diff --git a/src/gpu/SkGpuDevice.h b/src/gpu/SkGpuDevice.h
index 21072a6..e36286b 100644
--- a/src/gpu/SkGpuDevice.h
+++ b/src/gpu/SkGpuDevice.h
@@ -121,7 +121,7 @@
void flush() override;
GrSemaphoresSubmitted flushAndSignalSemaphores(SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags,
+ GrFlushFlags flags,
int numSemaphores,
GrBackendSemaphore signalSemaphores[]);
bool wait(int numSemaphores, const GrBackendSemaphore* waitSemaphores);
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
index 1d2d7c9..506d06a 100644
--- a/src/gpu/gl/GrGLGpu.cpp
+++ b/src/gpu/gl/GrGLGpu.cpp
@@ -4307,12 +4307,12 @@
}
void GrGLGpu::onFinishFlush(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags, bool insertedSemaphore) {
+ GrFlushFlags flags, bool insertedSemaphore) {
// If we inserted semaphores during the flush, we need to call GLFlush.
if (insertedSemaphore) {
GL_CALL(Flush());
}
- if (flags & SkSurface::kSyncCpu_FlushFlag) {
+ if (flags & kSyncCpu_GrFlushFlag) {
GL_CALL(Finish());
}
}
diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h
index 8d4da15..b6d6609 100644
--- a/src/gpu/gl/GrGLGpu.h
+++ b/src/gpu/gl/GrGLGpu.h
@@ -294,7 +294,7 @@
void flushBlend(const GrXferProcessor::BlendInfo& blendInfo, const GrSwizzle&);
void onFinishFlush(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags, bool insertedSemaphores) override;
+ GrFlushFlags flags, bool insertedSemaphores) override;
bool copySurfaceAsDraw(GrSurface* dst, GrSurfaceOrigin dstOrigin,
GrSurface* src, GrSurfaceOrigin srcOrigin,
diff --git a/src/gpu/mock/GrMockGpu.h b/src/gpu/mock/GrMockGpu.h
index 317ac6e..56c40ae 100644
--- a/src/gpu/mock/GrMockGpu.h
+++ b/src/gpu/mock/GrMockGpu.h
@@ -111,7 +111,7 @@
void onResolveRenderTarget(GrRenderTarget* target) override { return; }
void onFinishFlush(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags, bool insertedSemaphores) override {}
+ GrFlushFlags flags, bool insertedSemaphores) override {}
GrStencilAttachment* createStencilAttachmentForRenderTarget(const GrRenderTarget*,
int width,
diff --git a/src/gpu/mtl/GrMtlGpu.h b/src/gpu/mtl/GrMtlGpu.h
index ddf9364..18736eb 100644
--- a/src/gpu/mtl/GrMtlGpu.h
+++ b/src/gpu/mtl/GrMtlGpu.h
@@ -182,8 +182,8 @@
void onResolveRenderTarget(GrRenderTarget* target) override { return; }
void onFinishFlush(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags, bool insertedSemaphores) override {
- if (flags & SkSurface::kSyncCpu_FlushFlag) {
+ GrFlushFlags flags, bool insertedSemaphores) override {
+ if (flags & kSyncCpu_GrFlushFlag) {
this->submitCommandBuffer(kForce_SyncQueue);
} else {
this->submitCommandBuffer(kSkip_SyncQueue);
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index f12a1a8..e1032b5 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -1883,7 +1883,7 @@
}
void GrVkGpu::onFinishFlush(GrSurfaceProxy* proxy, SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags, bool insertedSemaphore) {
+ GrFlushFlags flags, bool insertedSemaphore) {
// Submit the current command buffer to the Queue. Whether we inserted semaphores or not does
// not effect what we do here.
if (proxy && access == SkSurface::BackendSurfaceAccess::kPresent) {
@@ -1898,7 +1898,7 @@
}
image->prepareForPresent(this);
}
- if (flags & SkSurface::kSyncCpu_FlushFlag) {
+ if (flags & kSyncCpu_GrFlushFlag) {
this->submitCommandBuffer(kForce_SyncQueue);
} else {
this->submitCommandBuffer(kSkip_SyncQueue);
diff --git a/src/gpu/vk/GrVkGpu.h b/src/gpu/vk/GrVkGpu.h
index 007ac17..963016f 100644
--- a/src/gpu/vk/GrVkGpu.h
+++ b/src/gpu/vk/GrVkGpu.h
@@ -220,8 +220,8 @@
GrSurfaceOrigin srcOrigin, const SkIRect& srcRect,
const SkIPoint& dstPoint, bool canDiscardOutsideDstRect) override;
- void onFinishFlush(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess access,
- SkSurface::FlushFlags flags, bool insertedSemaphores) override;
+ void onFinishFlush(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess access, GrFlushFlags flags,
+ bool insertedSemaphores) override;
// Ends and submits the current command buffer to the queue and then creates a new command
// buffer and begins it. If sync is set to kForce_SyncQueue, the function will wait for all