diff options
author | Robert Phillips <robertphillips@google.com> | 2017-04-24 10:57:28 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-04-25 11:44:20 +0000 |
commit | dd3b3f41829d32d7eaf3eb4903570d49c2ba9ff8 (patch) | |
tree | 10b4a5919c2a7565510c7f6c4e2cbb311bb2822a | |
parent | c1889823de68ffd2ef08b5c1969d41c98034ec6a (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>
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, |