aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2017-04-24 10:57:28 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-04-25 11:44:20 +0000
commitdd3b3f41829d32d7eaf3eb4903570d49c2ba9ff8 (patch)
tree10b4a5919c2a7565510c7f6c4e2cbb311bb2822a
parentc1889823de68ffd2ef08b5c1969d41c98034ec6a (diff)
Rm makeRenderTargetContext in favor of deferred version (take 3)
This is a reland of: https://skia-review.googlesource.com/c/13001/ (Rm makeRenderTargetContext in favor of deferred version) TBR=bsalomon@google.com Change-Id: If81f4d9fb889c091cd37ffde133d906fb3e37773 Reviewed-on: https://skia-review.googlesource.com/14027 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
-rw-r--r--gm/windowrectangles.cpp8
-rw-r--r--include/gpu/GrCaps.h1
-rw-r--r--include/gpu/GrContext.h34
-rw-r--r--src/core/SkSpecialSurface.cpp2
-rw-r--r--src/gpu/GrClipStackClip.cpp2
-rw-r--r--src/gpu/GrContext.cpp63
-rw-r--r--src/gpu/GrRenderTargetOpList.cpp7
-rw-r--r--src/gpu/GrTextureProducer.cpp2
-rw-r--r--src/gpu/GrTextureToYUVPlanes.cpp10
-rw-r--r--src/gpu/GrYUVProvider.cpp2
-rw-r--r--src/gpu/SkGpuDevice.cpp14
-rw-r--r--src/gpu/effects/GrConfigConversionEffect.cpp6
-rw-r--r--src/gpu/effects/GrSimpleTextureEffect.h24
-rw-r--r--src/gpu/text/GrAtlasTextContext.cpp2
-rw-r--r--src/image/SkImage_Gpu.cpp4
-rw-r--r--tests/ClearTest.cpp4
-rw-r--r--tests/GLProgramsTest.cpp4
-rw-r--r--tests/GpuSampleLocationsTest.cpp4
-rw-r--r--tests/ImageStorageTest.cpp4
-rw-r--r--tests/IntTextureTest.cpp2
-rw-r--r--tests/PreFlushCallbackTest.cpp6
-rw-r--r--tests/PrimitiveProcessorTest.cpp2
-rw-r--r--tests/ProcessorTest.cpp4
-rw-r--r--tests/RectangleTextureTest.cpp6
-rw-r--r--tests/RenderTargetContextTest.cpp25
-rw-r--r--tests/SRGBMipMapTest.cpp4
-rw-r--r--tests/TessellatingPathRendererTests.cpp3
27 files changed, 93 insertions, 156 deletions
diff --git a/gm/windowrectangles.cpp b/gm/windowrectangles.cpp
index 8110574a65..544f5e0c71 100644
--- a/gm/windowrectangles.cpp
+++ b/gm/windowrectangles.cpp
@@ -202,10 +202,10 @@ void WindowRectanglesMaskGM::visualizeAlphaMask(GrContext* ctx, GrRenderTargetCo
const int padRight = (kDeviceRect.right() - kCoverRect.right()) / 2;
const int padBottom = (kDeviceRect.bottom() - kCoverRect.bottom()) / 2;
sk_sp<GrRenderTargetContext> maskRTC(
- ctx->makeRenderTargetContextWithFallback(SkBackingFit::kExact,
- kCoverRect.width() + padRight,
- kCoverRect.height() + padBottom,
- kAlpha_8_GrPixelConfig, nullptr));
+ ctx->makeDeferredRenderTargetContextWithFallback(SkBackingFit::kExact,
+ kCoverRect.width() + padRight,
+ kCoverRect.height() + padBottom,
+ kAlpha_8_GrPixelConfig, nullptr));
if (!maskRTC ||
!ctx->resourceProvider()->attachStencilAttachment(maskRTC->accessRenderTarget())) {
return;
diff --git a/include/gpu/GrCaps.h b/include/gpu/GrCaps.h
index 8b005800cc..abd10a1c01 100644
--- a/include/gpu/GrCaps.h
+++ b/include/gpu/GrCaps.h
@@ -26,7 +26,6 @@ public:
GrCaps(const GrContextOptions&);
virtual SkString dump() const;
-
const GrShaderCaps* shaderCaps() const { return fShaderCaps.get(); }
bool npotTextureTileSupport() const { return fNPOTTextureTileSupport; }
diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h
index 158699b837..ec07e96965 100644
--- a/include/gpu/GrContext.h
+++ b/include/gpu/GrContext.h
@@ -183,25 +183,13 @@ public:
*/
int getRecommendedSampleCount(GrPixelConfig config, SkScalar dpi) const;
- /**
- * Create both a GrRenderTarget and a matching GrRenderTargetContext to wrap it.
- * We guarantee that "asTexture" will succeed for renderTargetContexts created
- * via this entry point.
+ /*
+ * Create a new render target context backed by a deferred-style
+ * GrRenderTargetProxy. We guarantee that "asTextureProxy" will succeed for
+ * renderTargetContexts created via this entry point.
*/
- sk_sp<GrRenderTargetContext> makeRenderTargetContext(
- SkBackingFit fit,
- int width, int height,
- GrPixelConfig config,
- sk_sp<SkColorSpace> colorSpace,
- int sampleCnt = 0,
- GrSurfaceOrigin origin = kBottomLeft_GrSurfaceOrigin,
- const SkSurfaceProps* surfaceProps = nullptr,
- SkBudgeted = SkBudgeted::kYes);
-
- // Create a new render target context as above but have it backed by a deferred-style
- // GrRenderTargetProxy rather than one that is backed by an actual GrRenderTarget
sk_sp<GrRenderTargetContext> makeDeferredRenderTargetContext(
- SkBackingFit fit,
+ SkBackingFit fit,
int width, int height,
GrPixelConfig config,
sk_sp<SkColorSpace> colorSpace,
@@ -215,18 +203,6 @@ public:
* converted to 8888). It may also swizzle the channels (e.g., BGRA -> RGBA).
* SRGB-ness will be preserved.
*/
- sk_sp<GrRenderTargetContext> makeRenderTargetContextWithFallback(
- SkBackingFit fit,
- int width, int height,
- GrPixelConfig config,
- sk_sp<SkColorSpace> colorSpace,
- int sampleCnt = 0,
- GrSurfaceOrigin origin = kBottomLeft_GrSurfaceOrigin,
- const SkSurfaceProps* surfaceProps = nullptr,
- SkBudgeted budgeted = SkBudgeted::kYes);
-
- // Create a new render target context as above but have it backed by a deferred-style
- // GrRenderTargetProxy rather than one that is backed by an actual GrRenderTarget
sk_sp<GrRenderTargetContext> makeDeferredRenderTargetContextWithFallback(
SkBackingFit fit,
int width, int height,
diff --git a/src/core/SkSpecialSurface.cpp b/src/core/SkSpecialSurface.cpp
index 40afb57cec..33ef97e5bd 100644
--- a/src/core/SkSpecialSurface.cpp
+++ b/src/core/SkSpecialSurface.cpp
@@ -164,7 +164,7 @@ sk_sp<SkSpecialSurface> SkSpecialSurface::MakeRenderTarget(GrContext* context,
return nullptr;
}
- sk_sp<GrRenderTargetContext> renderTargetContext(context->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> renderTargetContext(context->makeDeferredRenderTargetContext(
SkBackingFit::kApprox, width, height, config, std::move(colorSpace)));
if (!renderTargetContext) {
return nullptr;
diff --git a/src/gpu/GrClipStackClip.cpp b/src/gpu/GrClipStackClip.cpp
index b0109819d7..18df1d6711 100644
--- a/src/gpu/GrClipStackClip.cpp
+++ b/src/gpu/GrClipStackClip.cpp
@@ -392,7 +392,7 @@ sk_sp<GrTextureProxy> GrClipStackClip::createAlphaClipMask(GrContext* context,
return proxy;
}
- sk_sp<GrRenderTargetContext> rtc(context->makeRenderTargetContextWithFallback(
+ sk_sp<GrRenderTargetContext> rtc(context->makeDeferredRenderTargetContextWithFallback(
SkBackingFit::kApprox,
reducedClip.width(),
reducedClip.height(),
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 7d6a90a44d..2a3852ce03 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -484,7 +484,7 @@ bool GrContextPriv::readSurfacePixels(GrSurfaceContext* src,
// TODO: Need to decide the semantics of this function for color spaces. Do we support
// conversion to a passed-in color space? For now, specifying nullptr means that this
// path will do no conversion, so it will match the behavior of the non-draw path.
- sk_sp<GrRenderTargetContext> tempRTC = fContext->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> tempRTC = fContext->makeDeferredRenderTargetContext(
tempDrawInfo.fTempSurfaceFit,
tempDrawInfo.fTempSurfaceDesc.fWidth,
tempDrawInfo.fTempSurfaceDesc.fHeight,
@@ -771,23 +771,6 @@ static inline GrPixelConfig GrPixelConfigFallback(GrPixelConfig config) {
}
}
-sk_sp<GrRenderTargetContext> GrContext::makeRenderTargetContextWithFallback(
- SkBackingFit fit,
- int width, int height,
- GrPixelConfig config,
- sk_sp<SkColorSpace> colorSpace,
- int sampleCnt,
- GrSurfaceOrigin origin,
- const SkSurfaceProps* surfaceProps,
- SkBudgeted budgeted) {
- if (!this->caps()->isConfigRenderable(config, sampleCnt > 0)) {
- config = GrPixelConfigFallback(config);
- }
-
- return this->makeRenderTargetContext(fit, width, height, config, std::move(colorSpace),
- sampleCnt, origin, surfaceProps, budgeted);
-}
-
sk_sp<GrRenderTargetContext> GrContext::makeDeferredRenderTargetContextWithFallback(
SkBackingFit fit,
int width, int height,
@@ -805,48 +788,6 @@ sk_sp<GrRenderTargetContext> GrContext::makeDeferredRenderTargetContextWithFallb
sampleCnt, origin, surfaceProps, budgeted);
}
-sk_sp<GrRenderTargetContext> GrContext::makeRenderTargetContext(SkBackingFit fit,
- int width, int height,
- GrPixelConfig config,
- sk_sp<SkColorSpace> colorSpace,
- int sampleCnt,
- GrSurfaceOrigin origin,
- const SkSurfaceProps* surfaceProps,
- SkBudgeted budgeted) {
- if (!this->caps()->isConfigRenderable(config, sampleCnt > 0)) {
- return nullptr;
- }
-
- GrSurfaceDesc desc;
- desc.fFlags = kRenderTarget_GrSurfaceFlag;
- desc.fOrigin = origin;
- desc.fWidth = width;
- desc.fHeight = height;
- desc.fConfig = config;
- desc.fSampleCnt = sampleCnt;
-
- sk_sp<GrTexture> tex;
- if (SkBackingFit::kExact == fit) {
- tex = this->resourceProvider()->createTexture(desc, budgeted);
- } else {
- tex.reset(this->resourceProvider()->createApproxTexture(desc, 0));
- }
- if (!tex) {
- return nullptr;
- }
-
- sk_sp<GrRenderTargetContext> renderTargetContext(
- this->contextPriv().makeWrappedRenderTargetContext(sk_ref_sp(tex->asRenderTarget()),
- std::move(colorSpace), surfaceProps));
- if (!renderTargetContext) {
- return nullptr;
- }
-
- renderTargetContext->discard();
-
- return renderTargetContext;
-}
-
sk_sp<GrRenderTargetContext> GrContext::makeDeferredRenderTargetContext(
SkBackingFit fit,
int width, int height,
@@ -856,6 +797,8 @@ sk_sp<GrRenderTargetContext> GrContext::makeDeferredRenderTargetContext(
GrSurfaceOrigin origin,
const SkSurfaceProps* surfaceProps,
SkBudgeted budgeted) {
+ SkASSERT(kDefault_GrSurfaceOrigin != origin);
+
GrSurfaceDesc desc;
desc.fFlags = kRenderTarget_GrSurfaceFlag;
desc.fOrigin = origin;
diff --git a/src/gpu/GrRenderTargetOpList.cpp b/src/gpu/GrRenderTargetOpList.cpp
index 0bc6708f3a..3d4edb2350 100644
--- a/src/gpu/GrRenderTargetOpList.cpp
+++ b/src/gpu/GrRenderTargetOpList.cpp
@@ -227,8 +227,11 @@ void GrRenderTargetOpList::fullClear(GrRenderTargetContext* renderTargetContext,
// remove all the previously recorded ops and change the load op to clear with supplied
// color.
// TODO: this needs to be updated to use GrSurfaceProxy::UniqueID
- SkASSERT((fLastFullClearResourceID == renderTarget->uniqueID()) ==
- (fLastFullClearProxyID == renderTargetContext->asRenderTargetProxy()->uniqueID()));
+ // MDB TODO: re-enable once opLists are divided. This assertion fails when a rendering is
+ // aborted but the same RT is reused for the next draw. The clears really shouldn't be
+ // fused in that case.
+ //SkASSERT((fLastFullClearResourceID == renderTarget->uniqueID()) ==
+ // (fLastFullClearProxyID == renderTargetContext->asRenderTargetProxy()->uniqueID()));
if (fLastFullClearResourceID == renderTarget->uniqueID()) {
// As currently implemented, fLastFullClearOp should be the last op because we would
// have cleared it when another op was recorded.
diff --git a/src/gpu/GrTextureProducer.cpp b/src/gpu/GrTextureProducer.cpp
index d226c3feb6..75796b1aa4 100644
--- a/src/gpu/GrTextureProducer.cpp
+++ b/src/gpu/GrTextureProducer.cpp
@@ -27,7 +27,7 @@ sk_sp<GrTextureProxy> GrTextureProducer::CopyOnGpu(GrContext* context,
const SkRect dstRect = SkRect::MakeIWH(copyParams.fWidth, copyParams.fHeight);
- sk_sp<GrRenderTargetContext> copyRTC = context->makeRenderTargetContextWithFallback(
+ sk_sp<GrRenderTargetContext> copyRTC = context->makeDeferredRenderTargetContextWithFallback(
SkBackingFit::kExact, dstRect.width(), dstRect.height(), config, nullptr);
if (!copyRTC) {
return nullptr;
diff --git a/src/gpu/GrTextureToYUVPlanes.cpp b/src/gpu/GrTextureToYUVPlanes.cpp
index 0a0edee4df..c6f9794192 100644
--- a/src/gpu/GrTextureToYUVPlanes.cpp
+++ b/src/gpu/GrTextureToYUVPlanes.cpp
@@ -73,7 +73,7 @@ bool GrTextureToYUVPlanes(GrContext* context, sk_sp<GrTextureProxy> proxy,
// sizes however we optimize for two other cases - all planes are the same (1 draw to YUV),
// and U and V are the same but Y differs (2 draws, one for Y, one for UV).
if (sizes[0] == sizes[1] && sizes[1] == sizes[2]) {
- yuvRenderTargetContext = context->makeRenderTargetContextWithFallback(
+ yuvRenderTargetContext = context->makeDeferredRenderTargetContextWithFallback(
SkBackingFit::kApprox,
sizes[0].fWidth,
sizes[0].fHeight,
@@ -83,7 +83,7 @@ bool GrTextureToYUVPlanes(GrContext* context, sk_sp<GrTextureProxy> proxy,
return false;
}
} else {
- yRenderTargetContext = context->makeRenderTargetContextWithFallback(
+ yRenderTargetContext = context->makeDeferredRenderTargetContextWithFallback(
SkBackingFit::kApprox,
sizes[0].fWidth,
sizes[0].fHeight,
@@ -94,7 +94,7 @@ bool GrTextureToYUVPlanes(GrContext* context, sk_sp<GrTextureProxy> proxy,
}
if (sizes[1] == sizes[2]) {
// TODO: Add support for GL_RG when available.
- uvRenderTargetContext = context->makeRenderTargetContextWithFallback(
+ uvRenderTargetContext = context->makeDeferredRenderTargetContextWithFallback(
SkBackingFit::kApprox,
sizes[1].fWidth,
sizes[1].fHeight,
@@ -104,13 +104,13 @@ bool GrTextureToYUVPlanes(GrContext* context, sk_sp<GrTextureProxy> proxy,
return false;
}
} else {
- uRenderTargetContext = context->makeRenderTargetContextWithFallback(
+ uRenderTargetContext = context->makeDeferredRenderTargetContextWithFallback(
SkBackingFit::kApprox,
sizes[1].fWidth,
sizes[1].fHeight,
kAlpha_8_GrPixelConfig,
nullptr);
- vRenderTargetContext = context->makeRenderTargetContextWithFallback(
+ vRenderTargetContext = context->makeDeferredRenderTargetContextWithFallback(
SkBackingFit::kApprox,
sizes[2].fWidth,
sizes[2].fHeight,
diff --git a/src/gpu/GrYUVProvider.cpp b/src/gpu/GrYUVProvider.cpp
index cfd27d0d39..6b51303488 100644
--- a/src/gpu/GrYUVProvider.cpp
+++ b/src/gpu/GrYUVProvider.cpp
@@ -121,7 +121,7 @@ sk_sp<GrTextureProxy> GrYUVProvider::refAsTextureProxy(GrContext* ctx,
}
// We never want to perform color-space conversion during the decode
- sk_sp<GrRenderTargetContext> renderTargetContext(ctx->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> renderTargetContext(ctx->makeDeferredRenderTargetContext(
SkBackingFit::kExact,
desc.fWidth, desc.fHeight,
desc.fConfig, nullptr,
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 7046f1cefe..6ddae65a9c 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -168,7 +168,8 @@ sk_sp<GrRenderTargetContext> SkGpuDevice::MakeRenderTargetContext(
GrPixelConfig config = SkImageInfo2GrPixelConfig(origInfo, *context->caps());
// This method is used to create SkGpuDevice's for SkSurface_Gpus. In this case
// they need to be exact.
- return context->makeRenderTargetContext(SkBackingFit::kExact,
+ return context->makeDeferredRenderTargetContext(
+ SkBackingFit::kExact,
origInfo.width(), origInfo.height(),
config, origInfo.refColorSpace(), sampleCount,
origin, surfaceProps, budgeted);
@@ -1329,7 +1330,6 @@ sk_sp<SkSpecialImage> SkGpuDevice::snapSpecial() {
const SkImageInfo ii = this->imageInfo();
const SkIRect srcRect = SkIRect::MakeWH(ii.width(), ii.height());
- SkASSERT(proxy->priv().isExact());
return SkSpecialImage::MakeDeferredFromGpu(fContext.get(),
srcRect,
kNeedNewImageUniqueID_SpecialImage,
@@ -1760,13 +1760,13 @@ SkBaseDevice* SkGpuDevice::onCreateDevice(const CreateInfo& cinfo, const SkPaint
SkBackingFit fit = kNever_TileUsage == cinfo.fTileUsage ? SkBackingFit::kApprox
: SkBackingFit::kExact;
- sk_sp<GrRenderTargetContext> rtc(fContext->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> rtc(fContext->makeDeferredRenderTargetContext(
fit,
cinfo.fInfo.width(), cinfo.fInfo.height(),
- fRenderTargetContext->config(),
- fRenderTargetContext->refColorSpace(),
- fRenderTargetContext->desc().fSampleCnt,
- kDefault_GrSurfaceOrigin,
+ fRenderTargetContext->config(),
+ fRenderTargetContext->refColorSpace(),
+ fRenderTargetContext->desc().fSampleCnt,
+ kBottomLeft_GrSurfaceOrigin,
&props));
if (!rtc) {
return nullptr;
diff --git a/src/gpu/effects/GrConfigConversionEffect.cpp b/src/gpu/effects/GrConfigConversionEffect.cpp
index 2e0886f698..41c7e6f56c 100644
--- a/src/gpu/effects/GrConfigConversionEffect.cpp
+++ b/src/gpu/effects/GrConfigConversionEffect.cpp
@@ -121,10 +121,12 @@ bool GrConfigConversionEffect::TestForPreservingPMConversions(GrContext* context
const SkImageInfo ii = SkImageInfo::Make(kSize, kSize,
kRGBA_8888_SkColorType, kPremul_SkAlphaType);
- sk_sp<GrRenderTargetContext> readRTC(context->makeRenderTargetContext(SkBackingFit::kExact,
+ sk_sp<GrRenderTargetContext> readRTC(context->makeDeferredRenderTargetContext(
+ SkBackingFit::kExact,
kSize, kSize,
kConfig, nullptr));
- sk_sp<GrRenderTargetContext> tempRTC(context->makeRenderTargetContext(SkBackingFit::kExact,
+ sk_sp<GrRenderTargetContext> tempRTC(context->makeDeferredRenderTargetContext(
+ SkBackingFit::kExact,
kSize, kSize,
kConfig, nullptr));
if (!readRTC || !readRTC->asTextureProxy() || !tempRTC) {
diff --git a/src/gpu/effects/GrSimpleTextureEffect.h b/src/gpu/effects/GrSimpleTextureEffect.h
index 8edec81a83..7d5232c3e0 100644
--- a/src/gpu/effects/GrSimpleTextureEffect.h
+++ b/src/gpu/effects/GrSimpleTextureEffect.h
@@ -25,6 +25,14 @@ public:
sk_sp<GrTextureProxy> proxy,
sk_sp<GrColorSpaceXform> colorSpaceXform,
const SkMatrix& matrix) {
+ // MDB TODO: remove this instantiation once instantiation is pushed past the
+ // TextureSamplers. Instantiation failure in the TextureSampler is difficult to
+ // recover from.
+ GrTexture* temp = proxy->instantiate(resourceProvider);
+ if (!temp) {
+ return nullptr;
+ }
+
return sk_sp<GrFragmentProcessor>(
new GrSimpleTextureEffect(resourceProvider, std::move(proxy),
std::move(colorSpaceXform), matrix,
@@ -37,6 +45,14 @@ public:
sk_sp<GrColorSpaceXform> colorSpaceXform,
const SkMatrix& matrix,
GrSamplerParams::FilterMode filterMode) {
+ // MDB TODO: remove this instantiation once instantiation is pushed past the
+ // TextureSamplers. Instantiation failure in the TextureSampler is difficult to
+ // recover from.
+ GrTexture* temp = proxy->instantiate(resourceProvider);
+ if (!temp) {
+ return nullptr;
+ }
+
return sk_sp<GrFragmentProcessor>(
new GrSimpleTextureEffect(resourceProvider, std::move(proxy),
std::move(colorSpaceXform),
@@ -48,6 +64,14 @@ public:
sk_sp<GrColorSpaceXform> colorSpaceXform,
const SkMatrix& matrix,
const GrSamplerParams& p) {
+ // MDB TODO: remove this instantiation once instantiation is pushed past the
+ // TextureSamplers. Instantiation failure in the TextureSampler is difficult to
+ // recover from.
+ GrTexture* temp = proxy->instantiate(resourceProvider);
+ if (!temp) {
+ return nullptr;
+ }
+
return sk_sp<GrFragmentProcessor>(new GrSimpleTextureEffect(resourceProvider,
std::move(proxy),
std::move(colorSpaceXform),
diff --git a/src/gpu/text/GrAtlasTextContext.cpp b/src/gpu/text/GrAtlasTextContext.cpp
index 4e377c9595..d99f2828fc 100644
--- a/src/gpu/text/GrAtlasTextContext.cpp
+++ b/src/gpu/text/GrAtlasTextContext.cpp
@@ -352,7 +352,7 @@ DRAW_OP_TEST_DEFINE(TextBlobOp) {
}
// Setup dummy SkPaint / GrPaint / GrRenderTargetContext
- sk_sp<GrRenderTargetContext> renderTargetContext(context->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> renderTargetContext(context->makeDeferredRenderTargetContext(
SkBackingFit::kApprox, 1024, 1024, kRGBA_8888_GrPixelConfig, nullptr));
SkMatrix viewMatrix = GrTest::TestMatrixInvertible(random);
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index dd1b0c166e..96a81f5d01 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -385,7 +385,7 @@ static sk_sp<SkImage> make_from_yuv_textures_copy(GrContext* ctx, SkYUVColorSpac
const int height = yuvSizes[0].fHeight;
// Needs to be a render target in order to draw to it for the yuv->rgb conversion.
- sk_sp<GrRenderTargetContext> renderTargetContext(ctx->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> renderTargetContext(ctx->makeDeferredRenderTargetContext(
SkBackingFit::kExact,
width, height,
kRGBA_8888_GrPixelConfig,
@@ -922,7 +922,7 @@ sk_sp<SkImage> SkImage_Gpu::onMakeColorSpace(sk_sp<SkColorSpace> colorSpace) con
return sk_ref_sp(const_cast<SkImage_Gpu*>(this));
}
- sk_sp<GrRenderTargetContext> renderTargetContext(fContext->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> renderTargetContext(fContext->makeDeferredRenderTargetContext(
SkBackingFit::kExact, this->width(), this->height(), kRGBA_8888_GrPixelConfig, nullptr));
if (!renderTargetContext) {
return nullptr;
diff --git a/tests/ClearTest.cpp b/tests/ClearTest.cpp
index 843c4c371c..45eb2afa2d 100644
--- a/tests/ClearTest.cpp
+++ b/tests/ClearTest.cpp
@@ -57,8 +57,8 @@ static bool reset_rtc(sk_sp<GrRenderTargetContext>* rtc, GrContext* context, int
}
context->freeGpuResources();
- *rtc = context->makeRenderTargetContext(SkBackingFit::kExact, w, h, kRGBA_8888_GrPixelConfig,
- nullptr);
+ *rtc = context->makeDeferredRenderTargetContext(SkBackingFit::kExact, w, h,
+ kRGBA_8888_GrPixelConfig, nullptr);
SkASSERT((*rtc)->accessRenderTarget()->uniqueID() != oldID);
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp
index 5400d92bc6..25cd3125b9 100644
--- a/tests/GLProgramsTest.cpp
+++ b/tests/GLProgramsTest.cpp
@@ -148,7 +148,7 @@ static sk_sp<GrRenderTargetContext> random_render_target_context(GrContext* cont
: kBottomLeft_GrSurfaceOrigin;
int sampleCnt = random->nextBool() ? SkTMin(4, caps->maxSampleCount()) : 0;
- sk_sp<GrRenderTargetContext> renderTargetContext(context->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> renderTargetContext(context->makeDeferredRenderTargetContext(
SkBackingFit::kExact,
kRenderTargetWidth,
kRenderTargetHeight,
@@ -345,7 +345,7 @@ bool GrDrawingManager::ProgramUnitTest(GrContext* context, int maxStages) {
drawingManager->flush(nullptr);
// Validate that GrFPs work correctly without an input.
- sk_sp<GrRenderTargetContext> renderTargetContext(context->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> renderTargetContext(context->makeDeferredRenderTargetContext(
SkBackingFit::kExact,
kRenderTargetWidth,
kRenderTargetHeight,
diff --git a/tests/GpuSampleLocationsTest.cpp b/tests/GpuSampleLocationsTest.cpp
index 26d7e70148..6e685463b7 100644
--- a/tests/GpuSampleLocationsTest.cpp
+++ b/tests/GpuSampleLocationsTest.cpp
@@ -122,11 +122,11 @@ void test_sampleLocations(skiatest::Reporter* reporter, TestSampleLocationsInter
for (int i = 0; i < numTestPatterns; ++i) {
int numSamples = (int)kTestPatterns[i].size();
GrAlwaysAssert(numSamples > 1 && SkIsPow2(numSamples));
- bottomUps[i] = ctx->makeRenderTargetContextWithFallback(
+ bottomUps[i] = ctx->makeDeferredRenderTargetContextWithFallback(
SkBackingFit::kExact, 100, 100, kRGBA_8888_GrPixelConfig, nullptr,
rand.nextRangeU(1 + numSamples / 2, numSamples),
kBottomLeft_GrSurfaceOrigin);
- topDowns[i] = ctx->makeRenderTargetContextWithFallback(
+ topDowns[i] = ctx->makeDeferredRenderTargetContextWithFallback(
SkBackingFit::kExact, 100, 100, kRGBA_8888_GrPixelConfig, nullptr,
rand.nextRangeU(1 + numSamples / 2, numSamples),
kTopLeft_GrSurfaceOrigin);
diff --git a/tests/ImageStorageTest.cpp b/tests/ImageStorageTest.cpp
index f3e3482b07..dc4d21294d 100644
--- a/tests/ImageStorageTest.cpp
+++ b/tests/ImageStorageTest.cpp
@@ -140,8 +140,8 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ImageStorageLoad, reporter, ctxInfo) {
SkBudgeted::kYes, test.fData.get(), 0);
sk_sp<GrRenderTargetContext> rtContext =
- context->makeRenderTargetContext(SkBackingFit::kExact, kS, kS,
- kRGBA_8888_GrPixelConfig, nullptr);
+ context->makeDeferredRenderTargetContext(SkBackingFit::kExact, kS, kS,
+ kRGBA_8888_GrPixelConfig, nullptr);
GrPaint paint;
paint.setPorterDuffXPFactory(SkBlendMode::kSrc);
paint.addColorFragmentProcessor(TestFP::Make(context->resourceProvider(),
diff --git a/tests/IntTextureTest.cpp b/tests/IntTextureTest.cpp
index daeb13e53d..72f05f9591 100644
--- a/tests/IntTextureTest.cpp
+++ b/tests/IntTextureTest.cpp
@@ -244,7 +244,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(IntTexture, reporter, ctxInfo) {
kRGBA_8888_sint_GrPixelConfig, nullptr,
testData.get(), 0);
- sk_sp<GrRenderTargetContext> rtContext = context->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> rtContext = context->makeDeferredRenderTargetContext(
SkBackingFit::kExact, kS, kS, kRGBA_8888_GrPixelConfig, nullptr);
struct {
diff --git a/tests/PreFlushCallbackTest.cpp b/tests/PreFlushCallbackTest.cpp
index 7be01fb709..da7f93b583 100644
--- a/tests/PreFlushCallbackTest.cpp
+++ b/tests/PreFlushCallbackTest.cpp
@@ -419,7 +419,8 @@ private:
static sk_sp<GrTextureProxy> make_upstream_image(GrContext* context, AtlasObject* object, int start,
sk_sp<GrTextureProxy> fakeAtlas) {
- sk_sp<GrRenderTargetContext> rtc(context->makeRenderTargetContext(SkBackingFit::kApprox,
+ sk_sp<GrRenderTargetContext> rtc(context->makeDeferredRenderTargetContext(
+ SkBackingFit::kApprox,
3*kDrawnTileSize,
kDrawnTileSize,
kRGBA_8888_GrPixelConfig,
@@ -554,7 +555,8 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(PreFlushCallbackTest, reporter, ctxInfo) {
static const int kFinalWidth = 6*kDrawnTileSize;
static const int kFinalHeight = kDrawnTileSize;
- sk_sp<GrRenderTargetContext> rtc(context->makeRenderTargetContext(SkBackingFit::kApprox,
+ sk_sp<GrRenderTargetContext> rtc(context->makeDeferredRenderTargetContext(
+ SkBackingFit::kApprox,
kFinalWidth,
kFinalHeight,
kRGBA_8888_GrPixelConfig,
diff --git a/tests/PrimitiveProcessorTest.cpp b/tests/PrimitiveProcessorTest.cpp
index 4e4edb7e35..6afc3acec8 100644
--- a/tests/PrimitiveProcessorTest.cpp
+++ b/tests/PrimitiveProcessorTest.cpp
@@ -105,7 +105,7 @@ private:
DEF_GPUTEST_FOR_ALL_CONTEXTS(VertexAttributeCount, reporter, ctxInfo) {
GrContext* context = ctxInfo.grContext();
- sk_sp<GrRenderTargetContext> renderTargetContext(context->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> renderTargetContext(context->makeDeferredRenderTargetContext(
SkBackingFit::kApprox,
1, 1, kRGBA_8888_GrPixelConfig,
nullptr));
diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp
index 3eb4e16f20..e5bbc92759 100644
--- a/tests/ProcessorTest.cpp
+++ b/tests/ProcessorTest.cpp
@@ -137,7 +137,7 @@ DEF_GPUTEST_FOR_ALL_CONTEXTS(ProcessorRefTest, reporter, ctxInfo) {
desc.fHeight = 10;
for (int parentCnt = 0; parentCnt < 2; parentCnt++) {
- sk_sp<GrRenderTargetContext> renderTargetContext(context->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> renderTargetContext(context->makeDeferredRenderTargetContext(
SkBackingFit::kApprox, 1, 1, kRGBA_8888_GrPixelConfig, nullptr));
{
bool texelBufferSupport = context->caps()->shaderCaps()->texelBufferSupport();
@@ -290,7 +290,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(ProcessorOptimizationValidationTest, repor
// hard-code that value here:
SkRandom random(seed);
- sk_sp<GrRenderTargetContext> rtc = context->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> rtc = context->makeDeferredRenderTargetContext(
SkBackingFit::kExact, 256, 256, kRGBA_8888_GrPixelConfig, nullptr);
GrSurfaceDesc desc;
desc.fWidth = 256;
diff --git a/tests/RectangleTextureTest.cpp b/tests/RectangleTextureTest.cpp
index 967d86c9c4..cdcd8d7ac6 100644
--- a/tests/RectangleTextureTest.cpp
+++ b/tests/RectangleTextureTest.cpp
@@ -22,9 +22,9 @@
static void test_basic_draw_as_src(skiatest::Reporter* reporter, GrContext* context,
sk_sp<GrTextureProxy> rectProxy, uint32_t expectedPixelValues[]) {
sk_sp<GrRenderTargetContext> rtContext(
- context->makeRenderTargetContext(SkBackingFit::kExact, rectProxy->width(),
- rectProxy->height(), rectProxy->config(),
- nullptr));
+ context->makeDeferredRenderTargetContext(SkBackingFit::kExact, rectProxy->width(),
+ rectProxy->height(), rectProxy->config(),
+ nullptr));
for (auto filter : {GrSamplerParams::kNone_FilterMode,
GrSamplerParams::kBilerp_FilterMode,
GrSamplerParams::kMipMap_FilterMode}) {
diff --git a/tests/RenderTargetContextTest.cpp b/tests/RenderTargetContextTest.cpp
index 760b258d07..dbb41851c6 100644
--- a/tests/RenderTargetContextTest.cpp
+++ b/tests/RenderTargetContextTest.cpp
@@ -20,17 +20,10 @@
static const int kSize = 64;
-static sk_sp<GrRenderTargetContext> get_rtc(GrContext* ctx, bool wrapped) {
-
- if (wrapped) {
- return ctx->makeRenderTargetContext(SkBackingFit::kExact,
- kSize, kSize,
- kRGBA_8888_GrPixelConfig, nullptr);
- } else {
- return ctx->makeDeferredRenderTargetContext(SkBackingFit::kExact,
- kSize, kSize,
- kRGBA_8888_GrPixelConfig, nullptr);
- }
+static sk_sp<GrRenderTargetContext> get_rtc(GrContext* ctx) {
+ return ctx->makeDeferredRenderTargetContext(SkBackingFit::kExact,
+ kSize, kSize,
+ kRGBA_8888_GrPixelConfig, nullptr);
}
static void check_is_wrapped_status(skiatest::Reporter* reporter,
@@ -47,16 +40,10 @@ static void check_is_wrapped_status(skiatest::Reporter* reporter,
DEF_GPUTEST_FOR_RENDERING_CONTEXTS(RenderTargetContextTest, reporter, ctxInfo) {
GrContext* ctx = ctxInfo.grContext();
- // A wrapped rtCtx's textureProxy is also wrapped
- {
- sk_sp<GrRenderTargetContext> rtCtx(get_rtc(ctx, true));
- check_is_wrapped_status(reporter, rtCtx.get(), true);
- }
-
// Calling instantiate on a GrRenderTargetContext's textureProxy also instantiates the
// GrRenderTargetContext
{
- sk_sp<GrRenderTargetContext> rtCtx(get_rtc(ctx, false));
+ sk_sp<GrRenderTargetContext> rtCtx(get_rtc(ctx));
check_is_wrapped_status(reporter, rtCtx.get(), false);
@@ -71,7 +58,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(RenderTargetContextTest, reporter, ctxInfo) {
// readPixels switches a deferred rtCtx to wrapped
{
- sk_sp<GrRenderTargetContext> rtCtx(get_rtc(ctx, false));
+ sk_sp<GrRenderTargetContext> rtCtx(get_rtc(ctx));
check_is_wrapped_status(reporter, rtCtx.get(), false);
diff --git a/tests/SRGBMipMapTest.cpp b/tests/SRGBMipMapTest.cpp
index 54c68aeb23..33d99f2208 100644
--- a/tests/SRGBMipMapTest.cpp
+++ b/tests/SRGBMipMapTest.cpp
@@ -136,9 +136,9 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SRGBMipMaps, reporter, ctxInfo) {
// Create two render target contexts (L32 and S32)
sk_sp<SkColorSpace> srgbColorSpace = SkColorSpace::MakeSRGB();
- sk_sp<GrRenderTargetContext> l32RenderTargetContext = context->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> l32RenderTargetContext = context->makeDeferredRenderTargetContext(
SkBackingFit::kExact, rtS, rtS, kRGBA_8888_GrPixelConfig, nullptr);
- sk_sp<GrRenderTargetContext> s32RenderTargetContext = context->makeRenderTargetContext(
+ sk_sp<GrRenderTargetContext> s32RenderTargetContext = context->makeDeferredRenderTargetContext(
SkBackingFit::kExact, rtS, rtS, kSRGBA_8888_GrPixelConfig, std::move(srgbColorSpace));
SkRect rect = SkRect::MakeWH(SkIntToScalar(rtS), SkIntToScalar(rtS));
diff --git a/tests/TessellatingPathRendererTests.cpp b/tests/TessellatingPathRendererTests.cpp
index 8579c4dcbd..162dd7ea80 100644
--- a/tests/TessellatingPathRendererTests.cpp
+++ b/tests/TessellatingPathRendererTests.cpp
@@ -303,7 +303,8 @@ static void test_path(GrContext* ctx,
DEF_GPUTEST_FOR_ALL_CONTEXTS(TessellatingPathRendererTests, reporter, ctxInfo) {
GrContext* ctx = ctxInfo.grContext();
- sk_sp<GrRenderTargetContext> rtc(ctx->makeRenderTargetContext(SkBackingFit::kApprox,
+ sk_sp<GrRenderTargetContext> rtc(ctx->makeDeferredRenderTargetContext(
+ SkBackingFit::kApprox,
800, 800,
kRGBA_8888_GrPixelConfig,
nullptr,