Revert x2 "Assert that all GrCaps colortype/format -> swizzle queries are legal."
This reverts commit b16f30bb92efcbb6a15db9c39e651f4c1412934e.
Bug: chromium:1066850
Change-Id: I57e233d370a7248867f709d52012726d19959379
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280900
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrClipStackClip.cpp b/src/gpu/GrClipStackClip.cpp
index ec6c648..8c3a0f2 100644
--- a/src/gpu/GrClipStackClip.cpp
+++ b/src/gpu/GrClipStackClip.cpp
@@ -352,12 +352,6 @@
SkDEBUGFAIL("Gen ID was not found in stack.");
}
-static constexpr auto kMaskOrigin = kTopLeft_GrSurfaceOrigin;
-
-static GrSurfaceProxyView find_mask(GrProxyProvider* provider, const GrUniqueKey& key) {
- return provider->findCachedProxyWithColorTypeFallback(key, kMaskOrigin, GrColorType::kAlpha_8);
-}
-
GrSurfaceProxyView GrClipStackClip::createAlphaClipMask(GrRecordingContext* context,
const GrReducedClip& reducedClip) const {
GrProxyProvider* proxyProvider = context->priv().proxyProvider();
@@ -365,14 +359,16 @@
create_clip_mask_key(reducedClip.maskGenID(), reducedClip.scissor(),
reducedClip.numAnalyticFPs(), &key);
- if (auto cachedView = find_mask(context->priv().proxyProvider(), key)) {
- return cachedView;
+ if (sk_sp<GrTextureProxy> proxy = proxyProvider->findOrCreateProxyByUniqueKey(key)) {
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(proxy->backendFormat(),
+ GrColorType::kAlpha_8);
+ return {std::move(proxy), kTopLeft_GrSurfaceOrigin, swizzle};
}
auto rtc = GrRenderTargetContext::MakeWithFallback(
context, GrColorType::kAlpha_8, nullptr, SkBackingFit::kApprox,
{reducedClip.width(), reducedClip.height()}, 1, GrMipMapped::kNo, GrProtected::kNo,
- kMaskOrigin);
+ kTopLeft_GrSurfaceOrigin);
if (!rtc) {
return {};
}
@@ -386,7 +382,7 @@
return {};
}
- SkASSERT(result.origin() == kMaskOrigin);
+ SkASSERT(result.origin() == kTopLeft_GrSurfaceOrigin);
proxyProvider->assignUniqueKeyToProxy(key, result.asTextureProxy());
add_invalidate_on_pop_message(context, *fStack, reducedClip.maskGenID(), key);
@@ -475,9 +471,12 @@
reducedClip.numAnalyticFPs(), &key);
GrProxyProvider* proxyProvider = context->priv().proxyProvider();
+ const GrCaps* caps = context->priv().caps();
- if (auto cachedView = find_mask(proxyProvider, key)) {
- return cachedView;
+ if (sk_sp<GrTextureProxy> proxy = proxyProvider->findOrCreateProxyByUniqueKey(key)) {
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(proxy->backendFormat(),
+ GrColorType::kAlpha_8);
+ return {std::move(proxy), kTopLeft_GrSurfaceOrigin, swizzle};
}
// The mask texture may be larger than necessary. We round out the clip bounds and pin the top
@@ -491,7 +490,6 @@
GrSurfaceProxyView view;
if (taskGroup && renderTargetContext) {
- const GrCaps* caps = context->priv().caps();
// Create our texture proxy
GrBackendFormat format = caps->getDefaultBackendFormat(GrColorType::kAlpha_8,
GrRenderable::kNo);
@@ -527,7 +525,7 @@
taskGroup->add(std::move(drawAndUploadMask));
proxy->texPriv().setDeferredUploader(std::move(uploader));
- view = {std::move(proxy), kMaskOrigin, swizzle};
+ view = {std::move(proxy), kTopLeft_GrSurfaceOrigin, swizzle};
} else {
GrSWMaskHelper helper;
if (!helper.init(maskSpaceIBounds)) {
@@ -541,7 +539,7 @@
}
SkASSERT(view);
- SkASSERT(view.origin() == kMaskOrigin);
+ SkASSERT(view.origin() == kTopLeft_GrSurfaceOrigin);
proxyProvider->assignUniqueKeyToProxy(key, view.asTextureProxy());
add_invalidate_on_pop_message(context, *fStack, reducedClip.maskGenID(), key);
return view;