Pass swizzle into createProxy instead of inferring from GrPixelConfig.
This whole change is basically work that will all get reverted shortly
when GrSurfaceProxy no longer stores swizzle. But for now this helps
get rid of a use of pixel config.
Bug: skia:6718
Change-Id: If911360a8a9d2c52a58b5795386484634885b3f3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265579
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/GrClipStackClip.cpp b/src/gpu/GrClipStackClip.cpp
index 40a9931..969ddbf 100644
--- a/src/gpu/GrClipStackClip.cpp
+++ b/src/gpu/GrClipStackClip.cpp
@@ -487,10 +487,13 @@
GrBackendFormat format = caps->getDefaultBackendFormat(GrColorType::kAlpha_8,
GrRenderable::kNo);
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, GrColorType::kAlpha_8);
+
// MDB TODO: We're going to fill this proxy with an ASAP upload (which is out of order wrt
// to ops), so it can't have any pending IO.
proxy = proxyProvider->createProxy(format,
desc,
+ swizzle,
GrRenderable::kNo,
1,
kTopLeft_GrSurfaceOrigin,
diff --git a/src/gpu/GrDrawOpAtlas.cpp b/src/gpu/GrDrawOpAtlas.cpp
index 466e98f..8f15db9 100644
--- a/src/gpu/GrDrawOpAtlas.cpp
+++ b/src/gpu/GrDrawOpAtlas.cpp
@@ -560,14 +560,14 @@
int numPlotsY = fTextureHeight/fPlotHeight;
for (uint32_t i = 0; i < this->maxPages(); ++i) {
+ GrSwizzle swizzle = proxyProvider->caps()->getReadSwizzle(fFormat, fColorType);
sk_sp<GrSurfaceProxy> proxy = proxyProvider->createProxy(
- fFormat, desc, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin, GrMipMapped::kNo,
- SkBackingFit::kExact, SkBudgeted::kYes, GrProtected::kNo,
+ fFormat, desc, swizzle, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin,
+ GrMipMapped::kNo, SkBackingFit::kExact, SkBudgeted::kYes, GrProtected::kNo,
GrInternalSurfaceFlags::kNone, GrSurfaceProxy::UseAllocator::kNo);
if (!proxy) {
return false;
}
- GrSwizzle swizzle = proxyProvider->caps()->getReadSwizzle(fFormat, fColorType);
fViews[i] = GrSurfaceProxyView(std::move(proxy), kTopLeft_GrSurfaceOrigin, swizzle);
// set up allocated plots
diff --git a/src/gpu/GrProxyProvider.cpp b/src/gpu/GrProxyProvider.cpp
index 34e2947..af6b8ae 100644
--- a/src/gpu/GrProxyProvider.cpp
+++ b/src/gpu/GrProxyProvider.cpp
@@ -425,6 +425,7 @@
sk_sp<GrTextureProxy> GrProxyProvider::createProxy(const GrBackendFormat& format,
const GrSurfaceDesc& desc,
+ GrSwizzle readSwizzle,
GrRenderable renderable,
int renderTargetSampleCnt,
GrSurfaceOrigin origin,
@@ -446,11 +447,6 @@
return nullptr;
}
- GrColorType colorType = GrPixelConfigToColorType(desc.fConfig);
-
- SkASSERT(GrCaps::AreConfigsCompatible(desc.fConfig,
- caps->getConfigFromBackendFormat(format, colorType)));
-
if (GrMipMapped::kYes == mipMapped) {
// SkMipMap doesn't include the base level in the level count so we have to add 1
int mipCount = SkMipMap::ComputeLevelCount(desc.fWidth, desc.fHeight) + 1;
@@ -467,7 +463,6 @@
GrMipMapsStatus mipMapsStatus = (GrMipMapped::kYes == mipMapped)
? GrMipMapsStatus::kDirty
: GrMipMapsStatus::kNotAllocated;
- GrSwizzle readSwizzle = caps->getReadSwizzle(format, colorType);
if (renderable == GrRenderable::kYes) {
renderTargetSampleCnt =
caps->getRenderTargetSampleCount(renderTargetSampleCnt, format);
diff --git a/src/gpu/GrProxyProvider.h b/src/gpu/GrProxyProvider.h
index 6b412ac..e0de00b 100644
--- a/src/gpu/GrProxyProvider.h
+++ b/src/gpu/GrProxyProvider.h
@@ -82,6 +82,7 @@
*/
sk_sp<GrTextureProxy> createProxy(const GrBackendFormat&,
const GrSurfaceDesc&,
+ GrSwizzle readSwizzle,
GrRenderable,
int renderTargetSampleCnt,
GrSurfaceOrigin,
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp
index 6c9ef47..cf2b8f2 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -190,8 +190,10 @@
desc.fHeight = dimensions.height();
desc.fConfig = config;
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, colorType);
+
sk_sp<GrTextureProxy> proxy = context->priv().proxyProvider()->createProxy(
- format, desc, GrRenderable::kYes, sampleCnt, origin, mipMapped, fit, budgeted,
+ format, desc, swizzle, GrRenderable::kYes, sampleCnt, origin, mipMapped, fit, budgeted,
isProtected);
if (!proxy) {
return nullptr;
diff --git a/src/gpu/GrSoftwarePathRenderer.cpp b/src/gpu/GrSoftwarePathRenderer.cpp
index ba75657..a3d1ecd 100644
--- a/src/gpu/GrSoftwarePathRenderer.cpp
+++ b/src/gpu/GrSoftwarePathRenderer.cpp
@@ -183,8 +183,11 @@
const GrBackendFormat format = caps->getDefaultBackendFormat(GrColorType::kAlpha_8,
GrRenderable::kNo);
- return proxyProvider->createProxy(format, desc, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin,
- GrMipMapped::kNo, fit, SkBudgeted::kYes, GrProtected::kNo);
+ GrSwizzle swizzle = caps->getReadSwizzle(format, GrColorType::kAlpha_8);
+
+ return proxyProvider->createProxy(format, desc, swizzle, GrRenderable::kNo, 1,
+ kTopLeft_GrSurfaceOrigin, GrMipMapped::kNo, fit,
+ SkBudgeted::kYes, GrProtected::kNo);
}
namespace {
diff --git a/src/gpu/GrSurfaceContext.cpp b/src/gpu/GrSurfaceContext.cpp
index 82be5aa..0a95298 100644
--- a/src/gpu/GrSurfaceContext.cpp
+++ b/src/gpu/GrSurfaceContext.cpp
@@ -84,14 +84,15 @@
desc.fHeight = dimensions.height();
desc.fConfig = config;
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, colorType);
+
sk_sp<GrTextureProxy> proxy = context->priv().proxyProvider()->createProxy(
- format, desc, renderable, renderTargetSampleCnt, origin, mipMapped, fit, budgeted,
- isProtected);
+ format, desc, swizzle, renderable, renderTargetSampleCnt, origin, mipMapped, fit,
+ budgeted, isProtected);
if (!proxy) {
return nullptr;
}
- GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, colorType);
GrSurfaceProxyView view(std::move(proxy), origin, swizzle);
return GrSurfaceContext::Make(context, std::move(view), colorType, alphaType,
std::move(colorSpace));
@@ -387,7 +388,7 @@
GrSurfaceOrigin tempOrigin =
this->asRenderTargetContext() ? kTopLeft_GrSurfaceOrigin : dstProxy->origin();
auto tempProxy = direct->priv().proxyProvider()->createProxy(
- format, desc, GrRenderable::kNo, 1, tempOrigin, GrMipMapped::kNo,
+ format, desc, tempReadSwizzle, GrRenderable::kNo, 1, tempOrigin, GrMipMapped::kNo,
SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
if (!tempProxy) {
return false;
diff --git a/src/gpu/ops/GrLatticeOp.cpp b/src/gpu/ops/GrLatticeOp.cpp
index 9d84a5b..f0ec914 100644
--- a/src/gpu/ops/GrLatticeOp.cpp
+++ b/src/gpu/ops/GrLatticeOp.cpp
@@ -411,8 +411,11 @@
const GrBackendFormat format =
context->priv().caps()->getDefaultBackendFormat(GrColorType::kRGBA_8888,
GrRenderable::kNo);
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, GrColorType::kRGBA_8888);
+
auto proxy = context->priv().proxyProvider()->createProxy(format,
desc,
+ swizzle,
GrRenderable::kNo,
1,
origin,
diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp
index d27d634..b1e7a2b 100644
--- a/src/gpu/ops/GrTextureOp.cpp
+++ b/src/gpu/ops/GrTextureOp.cpp
@@ -1292,10 +1292,11 @@
const GrBackendFormat format =
context->priv().caps()->getDefaultBackendFormat(GrColorType::kRGBA_8888,
GrRenderable::kNo);
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, GrColorType::kRGBA_8888);
GrProxyProvider* proxyProvider = context->priv().proxyProvider();
sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(
- format, desc, GrRenderable::kNo, 1, origin, mipMapped, fit, SkBudgeted::kNo,
+ format, desc, swizzle, GrRenderable::kNo, 1, origin, mipMapped, fit, SkBudgeted::kNo,
GrProtected::kNo, GrInternalSurfaceFlags::kNone);
SkRect rect = GrTest::TestRect(random);
diff --git a/tests/BulkRectTest.cpp b/tests/BulkRectTest.cpp
index 3e6d741..b952aa7 100644
--- a/tests/BulkRectTest.cpp
+++ b/tests/BulkRectTest.cpp
@@ -26,9 +26,10 @@
const GrBackendFormat format = context->priv().caps()->getDefaultBackendFormat(
GrColorType::kRGBA_8888,
GrRenderable::kYes);
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, GrColorType::kRGBA_8888);
return context->priv().proxyProvider()->createProxy(
- format, desc, GrRenderable::kYes, 1, kTopLeft_GrSurfaceOrigin, GrMipMapped::kNo,
+ format, desc, swizzle, GrRenderable::kYes, 1, kTopLeft_GrSurfaceOrigin, GrMipMapped::kNo,
SkBackingFit::kExact, SkBudgeted::kNo, GrProtected::kNo, GrInternalSurfaceFlags::kNone);
}
diff --git a/tests/DetermineDomainModeTest.cpp b/tests/DetermineDomainModeTest.cpp
index 16eaa28..e075e51 100644
--- a/tests/DetermineDomainModeTest.cpp
+++ b/tests/DetermineDomainModeTest.cpp
@@ -148,8 +148,11 @@
(isPowerOfTwo || isExact) ? RectInfo::kHard : RectInfo::kBad,
name);
- return proxyProvider->createProxy(format, desc, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin,
- GrMipMapped::kNo, fit, SkBudgeted::kYes, GrProtected::kNo);
+ GrSwizzle swizzle = caps->getReadSwizzle(format, GrColorType::kRGBA_8888);
+
+ return proxyProvider->createProxy(format, desc, swizzle, GrRenderable::kNo, 1,
+ kTopLeft_GrSurfaceOrigin, GrMipMapped::kNo, fit,
+ SkBudgeted::kYes, GrProtected::kNo);
}
static RectInfo::EdgeType compute_inset_edgetype(RectInfo::EdgeType previous,
diff --git a/tests/GrMipMappedTest.cpp b/tests/GrMipMappedTest.cpp
index 2ea4ecb..cba7c1d 100644
--- a/tests/GrMipMappedTest.cpp
+++ b/tests/GrMipMappedTest.cpp
@@ -16,6 +16,7 @@
#include "src/gpu/GrContextPriv.h"
#include "src/gpu/GrDrawingManager.h"
#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrRecordingContextPriv.h"
#include "src/gpu/GrRenderTargetContext.h"
#include "src/gpu/GrSemaphore.h"
#include "src/gpu/GrSurfaceProxyPriv.h"
@@ -345,9 +346,12 @@
desc.fWidth = 1;
desc.fHeight = 1;
desc.fConfig = mipmapProxy->config();
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(mipmapProxy->backendFormat(),
+ colorType);
sk_sp<GrSurfaceProxy> renderTarget = proxyProvider->createProxy(
- mipmapProxy->backendFormat(), desc, GrRenderable::kYes, 1, kTopLeft_GrSurfaceOrigin,
- GrMipMapped::kNo, SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
+ mipmapProxy->backendFormat(), desc, swizzle, GrRenderable::kYes, 1,
+ kTopLeft_GrSurfaceOrigin, GrMipMapped::kNo, SkBackingFit::kApprox, SkBudgeted::kYes,
+ GrProtected::kNo);
auto rtc = GrRenderTargetContext::Make(
context, colorType, nullptr, std::move(renderTarget), kTopLeft_GrSurfaceOrigin,
@@ -393,9 +397,12 @@
desc.fWidth = 4;
desc.fHeight = 4;
desc.fConfig = config;
+
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, colorType);
+
sk_sp<GrTextureProxy> mipmapProxy = proxyProvider->createProxy(
- format, desc, GrRenderable::kYes, 1, kTopLeft_GrSurfaceOrigin, GrMipMapped::kYes,
- SkBackingFit::kExact, SkBudgeted::kYes, GrProtected::kNo);
+ format, desc, swizzle, GrRenderable::kYes, 1, kTopLeft_GrSurfaceOrigin,
+ GrMipMapped::kYes, SkBackingFit::kExact, SkBudgeted::kYes, GrProtected::kNo);
// Mark the mipmaps clean to ensure things still work properly when they won't be marked
// dirty again until GrRenderTask::makeClosed().
diff --git a/tests/GrSurfaceTest.cpp b/tests/GrSurfaceTest.cpp
index 6ca743c..581940f 100644
--- a/tests/GrSurfaceTest.cpp
+++ b/tests/GrSurfaceTest.cpp
@@ -165,9 +165,11 @@
bool expectedMipMapability = isTexturable && caps->mipMapSupport() &&
!isCompressed;
+ GrSwizzle swizzle = caps->getReadSwizzle(combo.fFormat, combo.fColorType);
+
sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(
- combo.fFormat, desc, GrRenderable::kNo, 1, origin, GrMipMapped::kYes,
- SkBackingFit::kExact, SkBudgeted::kNo, GrProtected::kNo);
+ combo.fFormat, desc, swizzle, GrRenderable::kNo, 1, origin,
+ GrMipMapped::kYes, SkBackingFit::kExact, SkBudgeted::kNo, GrProtected::kNo);
REPORTER_ASSERT(reporter, SkToBool(proxy.get()) == expectedMipMapability,
"ct:%s format:%s, tex:%d, expectedMipMapability:%d",
GrColorTypeToStr(combo.fColorType),
diff --git a/tests/OpChainTest.cpp b/tests/OpChainTest.cpp
index bbe9e5a..dd192e5 100644
--- a/tests/OpChainTest.cpp
+++ b/tests/OpChainTest.cpp
@@ -174,10 +174,11 @@
const GrBackendFormat format =
context->priv().caps()->getDefaultBackendFormat(GrColorType::kRGBA_8888,
GrRenderable::kYes);
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, GrColorType::kRGBA_8888);
static const GrSurfaceOrigin kOrigin = kTopLeft_GrSurfaceOrigin;
auto proxy = context->priv().proxyProvider()->createProxy(
- format, desc, GrRenderable::kYes, 1, kOrigin, GrMipMapped::kNo,
+ format, desc, swizzle, GrRenderable::kYes, 1, kOrigin, GrMipMapped::kNo,
SkBackingFit::kExact, SkBudgeted::kNo, GrProtected::kNo, GrInternalSurfaceFlags::kNone);
SkASSERT(proxy);
proxy->instantiate(context->priv().resourceProvider());
diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp
index 90d2396..fe876c4 100644
--- a/tests/ProcessorTest.cpp
+++ b/tests/ProcessorTest.cpp
@@ -156,6 +156,7 @@
const GrBackendFormat format =
context->priv().caps()->getDefaultBackendFormat(GrColorType::kRGBA_8888,
GrRenderable::kNo);
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, GrColorType::kRGBA_8888);
for (bool makeClone : {false, true}) {
for (int parentCnt = 0; parentCnt < 2; parentCnt++) {
@@ -163,7 +164,7 @@
context, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kApprox, {1, 1});
{
sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(
- format, desc, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin,
+ format, desc, swizzle, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin,
GrMipMapped::kNo, SkBackingFit::kExact, SkBudgeted::kYes, GrProtected::kNo);
{
diff --git a/tests/ProgramsTest.cpp b/tests/ProgramsTest.cpp
index 97c00c1..2bebc28 100644
--- a/tests/ProgramsTest.cpp
+++ b/tests/ProgramsTest.cpp
@@ -268,7 +268,8 @@
const GrBackendFormat format =
context->priv().caps()->getDefaultBackendFormat(GrColorType::kRGBA_8888,
GrRenderable::kYes);
- proxies[0] = {proxyProvider->createProxy(format, dummyDesc, GrRenderable::kYes, 1,
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, GrColorType::kRGBA_8888);
+ proxies[0] = {proxyProvider->createProxy(format, dummyDesc, swizzle, GrRenderable::kYes, 1,
kBottomLeft_GrSurfaceOrigin, mipMapped,
SkBackingFit::kExact, SkBudgeted::kNo,
GrProtected::kNo, GrInternalSurfaceFlags::kNone),
@@ -284,7 +285,8 @@
const GrBackendFormat format =
context->priv().caps()->getDefaultBackendFormat(GrColorType::kAlpha_8,
GrRenderable::kNo);
- proxies[1] = {proxyProvider->createProxy(format, dummyDesc, GrRenderable::kNo, 1,
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(format, GrColorType::kAlpha_8);
+ proxies[1] = {proxyProvider->createProxy(format, dummyDesc, swizzle, GrRenderable::kNo, 1,
kTopLeft_GrSurfaceOrigin, mipMapped,
SkBackingFit::kExact, SkBudgeted::kNo,
GrProtected::kNo, GrInternalSurfaceFlags::kNone),
diff --git a/tests/ProxyConversionTest.cpp b/tests/ProxyConversionTest.cpp
index 6622354..26b1cff 100644
--- a/tests/ProxyConversionTest.cpp
+++ b/tests/ProxyConversionTest.cpp
@@ -137,11 +137,12 @@
const GrBackendFormat format = caps->getDefaultBackendFormat(GrColorType::kRGBA_8888,
GrRenderable::kYes);
+ GrSwizzle swizzle = caps->getReadSwizzle(format, GrColorType::kRGBA_8888);
{
sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(
- format, desc, GrRenderable::kYes, 1, kBottomLeft_GrSurfaceOrigin, GrMipMapped::kNo,
- SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
+ format, desc, swizzle, GrRenderable::kYes, 1, kBottomLeft_GrSurfaceOrigin,
+ GrMipMapped::kNo, SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
// Both RenderTarget and Texture
GrRenderTargetProxy* rtProxy = proxy->asRenderTargetProxy();
@@ -154,8 +155,8 @@
{
sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(
- format, desc, GrRenderable::kYes, 1, kBottomLeft_GrSurfaceOrigin, GrMipMapped::kNo,
- SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
+ format, desc, swizzle, GrRenderable::kYes, 1, kBottomLeft_GrSurfaceOrigin,
+ GrMipMapped::kNo, SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
// Both RenderTarget and Texture - but via GrTextureProxy
GrTextureProxy* tProxy = proxy->asTextureProxy();
@@ -168,8 +169,8 @@
{
sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(
- format, desc, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin, GrMipMapped::kNo,
- SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
+ format, desc, swizzle, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin,
+ GrMipMapped::kNo, SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
// Texture-only
GrTextureProxy* tProxy = proxy->asTextureProxy();
REPORTER_ASSERT(reporter, tProxy);
diff --git a/tests/ProxyRefTest.cpp b/tests/ProxyRefTest.cpp
index cbec417..8710bc5 100644
--- a/tests/ProxyRefTest.cpp
+++ b/tests/ProxyRefTest.cpp
@@ -31,7 +31,8 @@
const GrBackendFormat format = caps->getDefaultBackendFormat(GrColorType::kRGBA_8888,
GrRenderable::kYes);
- return proxyProvider->createProxy(format, desc, GrRenderable::kYes, 1,
+ GrSwizzle swizzle = caps->getReadSwizzle(format, GrColorType::kRGBA_8888);
+ return proxyProvider->createProxy(format, desc, swizzle, GrRenderable::kYes, 1,
kBottomLeft_GrSurfaceOrigin, GrMipMapped::kNo,
SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
}
diff --git a/tests/ProxyTest.cpp b/tests/ProxyTest.cpp
index 5a83ccd..1bca59c 100644
--- a/tests/ProxyTest.cpp
+++ b/tests/ProxyTest.cpp
@@ -139,6 +139,7 @@
if (!format.isValid()) {
continue;
}
+ GrSwizzle swizzle = caps.getReadSwizzle(format, ct);
// Renderable
{
@@ -154,8 +155,8 @@
}
sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(
- format, desc, GrRenderable::kYes, numSamples, origin,
- GrMipMapped::kNo, fit, budgeted, GrProtected::kNo);
+ format, desc, swizzle, GrRenderable::kYes, numSamples,
+ origin, GrMipMapped::kNo, fit, budgeted, GrProtected::kNo);
REPORTER_ASSERT(reporter, SkToBool(tex) == SkToBool(proxy));
if (proxy) {
REPORTER_ASSERT(reporter, proxy->asRenderTargetProxy());
@@ -191,8 +192,8 @@
}
sk_sp<GrTextureProxy> proxy(proxyProvider->createProxy(
- format, desc, GrRenderable::kNo, numSamples, origin,
- GrMipMapped::kNo, fit, budgeted, GrProtected::kNo));
+ format, desc, swizzle, GrRenderable::kNo, numSamples,
+ origin, GrMipMapped::kNo, fit, budgeted, GrProtected::kNo));
REPORTER_ASSERT(reporter, SkToBool(tex) == SkToBool(proxy));
if (proxy) {
// This forces the proxy to compute and cache its
@@ -393,9 +394,11 @@
context->priv().caps()->getDefaultBackendFormat(
GrColorType::kRGBA_8888,
renderable);
+ GrSwizzle swizzle = context->priv().caps()->getReadSwizzle(
+ format, GrColorType::kRGBA_8888);
sk_sp<GrTextureProxy> proxy = provider->createProxy(
- format, desc, renderable, 1, kBottomLeft_GrSurfaceOrigin,
+ format, desc, swizzle, renderable, 1, kBottomLeft_GrSurfaceOrigin,
GrMipMapped::kNo, fit, SkBudgeted::kNo, GrProtected::kNo);
REPORTER_ASSERT(reporter, !proxy);
}
diff --git a/tests/ResourceAllocatorTest.cpp b/tests/ResourceAllocatorTest.cpp
index fc234f1..95d603f 100644
--- a/tests/ResourceAllocatorTest.cpp
+++ b/tests/ResourceAllocatorTest.cpp
@@ -41,8 +41,9 @@
desc.fConfig = config;
const GrBackendFormat format = caps->getDefaultBackendFormat(p.fColorType, p.fRenderable);
+ GrSwizzle swizzle = caps->getReadSwizzle(format, p.fColorType);
- return proxyProvider->createProxy(format, desc, p.fRenderable, p.fSampleCnt, p.fOrigin,
+ return proxyProvider->createProxy(format, desc, swizzle, p.fRenderable, p.fSampleCnt, p.fOrigin,
GrMipMapped::kNo, p.fFit, p.fBudgeted, GrProtected::kNo);
}
diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp
index 72d672f..5fc96c1 100644
--- a/tests/ResourceCacheTest.cpp
+++ b/tests/ResourceCacheTest.cpp
@@ -1638,8 +1638,9 @@
GrRenderable::kNo);
auto origin = renderable == GrRenderable::kYes ? kBottomLeft_GrSurfaceOrigin
: kTopLeft_GrSurfaceOrigin;
+ GrSwizzle swizzle = caps->getReadSwizzle(format, GrColorType::kRGBA_8888);
- return proxyProvider->createProxy(format, desc, renderable, sampleCnt, origin,
+ return proxyProvider->createProxy(format, desc, swizzle, renderable, sampleCnt, origin,
GrMipMapped::kYes, SkBackingFit::kExact, SkBudgeted::kYes,
GrProtected::kNo);
}
diff --git a/tests/TextureProxyTest.cpp b/tests/TextureProxyTest.cpp
index ca5aadd..577f608 100644
--- a/tests/TextureProxyTest.cpp
+++ b/tests/TextureProxyTest.cpp
@@ -43,10 +43,11 @@
const GrSurfaceDesc desc = make_desc();
GrBackendFormat format = caps->getDefaultBackendFormat(kColorType, GrRenderable::kNo);
+ GrSwizzle swizzle = caps->getReadSwizzle(format, kColorType);
sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(
- format, desc, GrRenderable::kNo, 1, kBottomLeft_GrSurfaceOrigin, GrMipMapped::kNo, fit,
- SkBudgeted::kYes, GrProtected::kNo);
+ format, desc, swizzle, GrRenderable::kNo, 1, kBottomLeft_GrSurfaceOrigin,
+ GrMipMapped::kNo, fit, SkBudgeted::kYes, GrProtected::kNo);
// Only budgeted & wrapped external proxies get to carry uniqueKeys
REPORTER_ASSERT(reporter, !proxy->getUniqueKey().isValid());
return proxy;
@@ -59,10 +60,11 @@
const GrSurfaceDesc desc = make_desc();
GrBackendFormat format = caps->getDefaultBackendFormat(kColorType, GrRenderable::kYes);
+ GrSwizzle swizzle = caps->getReadSwizzle(format, kColorType);
sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(
- format, desc, GrRenderable::kYes, 1, kBottomLeft_GrSurfaceOrigin, GrMipMapped::kNo, fit,
- SkBudgeted::kYes, GrProtected::kNo);
+ format, desc, swizzle, GrRenderable::kYes, 1, kBottomLeft_GrSurfaceOrigin,
+ GrMipMapped::kNo, fit, SkBudgeted::kYes, GrProtected::kNo);
// Only budgeted & wrapped external proxies get to carry uniqueKeys
REPORTER_ASSERT(reporter, !proxy->getUniqueKey().isValid());
return proxy;
diff --git a/tests/WritePixelsTest.cpp b/tests/WritePixelsTest.cpp
index 68d1baf..ad5dd32 100644
--- a/tests/WritePixelsTest.cpp
+++ b/tests/WritePixelsTest.cpp
@@ -531,9 +531,11 @@
const GrBackendFormat format = caps->getDefaultBackendFormat(GrColorType::kRGBA_8888,
GrRenderable::kNo);
+ GrSwizzle swizzle = caps->getReadSwizzle(format, GrColorType::kRGBA_8888);
+
sk_sp<GrTextureProxy> temp = proxyProvider->createProxy(
- format, desc, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin, GrMipMapped::kNo,
- SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
+ format, desc, swizzle, GrRenderable::kNo, 1, kTopLeft_GrSurfaceOrigin,
+ GrMipMapped::kNo, SkBackingFit::kApprox, SkBudgeted::kYes, GrProtected::kNo);
temp->instantiate(context->priv().resourceProvider());
}
diff --git a/tools/gpu/ProxyUtils.cpp b/tools/gpu/ProxyUtils.cpp
index e537580..c74967b 100644
--- a/tools/gpu/ProxyUtils.cpp
+++ b/tools/gpu/ProxyUtils.cpp
@@ -34,19 +34,20 @@
if (!format.isValid()) {
return nullptr;
}
+ GrSwizzle swizzle = caps->getReadSwizzle(format, imageInfo.colorType());
sk_sp<GrTextureProxy> proxy;
GrSurfaceDesc desc;
desc.fConfig = GrColorTypeToPixelConfig(imageInfo.colorType());
desc.fWidth = imageInfo.width();
desc.fHeight = imageInfo.height();
- proxy = context->priv().proxyProvider()->createProxy(format, desc, renderable, 1, origin,
- GrMipMapped::kNo, SkBackingFit::kExact,
- SkBudgeted::kYes, GrProtected::kNo);
+ proxy = context->priv().proxyProvider()->createProxy(format, desc, swizzle, renderable, 1,
+ origin, GrMipMapped::kNo,
+ SkBackingFit::kExact, SkBudgeted::kYes,
+ GrProtected::kNo);
if (!proxy) {
return nullptr;
}
- GrSwizzle swizzle = caps->getReadSwizzle(format, imageInfo.colorType());
GrSurfaceProxyView view(proxy, origin, swizzle);
auto sContext = GrSurfaceContext::Make(context, std::move(view), imageInfo.colorType(),
imageInfo.alphaType(), imageInfo.refColorSpace());