diff options
36 files changed, 213 insertions, 287 deletions
diff --git a/bench/GrResourceCacheBench.cpp b/bench/GrResourceCacheBench.cpp index a530e628e8..c48aed5e0b 100644 --- a/bench/GrResourceCacheBench.cpp +++ b/bench/GrResourceCacheBench.cpp @@ -83,7 +83,7 @@ protected: cache->purgeAllUnlocked(); SkASSERT(0 == cache->getResourceCount() && 0 == cache->getResourceBytes()); - GrGpu* gpu = context->contextPriv().getGpu(); + GrGpu* gpu = context->getGpu(); for (int i = 0; i < loops; ++i) { populate_cache(gpu, CACHE_SIZE_COUNT, fKeyData32Count); @@ -129,7 +129,7 @@ protected: cache->purgeAllUnlocked(); SkASSERT(0 == cache->getResourceCount() && 0 == cache->getResourceBytes()); - GrGpu* gpu = fContext->contextPriv().getGpu(); + GrGpu* gpu = fContext->getGpu(); populate_cache(gpu, CACHE_SIZE_COUNT, fKeyData32Count); } diff --git a/bench/SKPBench.cpp b/bench/SKPBench.cpp index 4fbb1bba29..013ec53cda 100644 --- a/bench/SKPBench.cpp +++ b/bench/SKPBench.cpp @@ -12,7 +12,6 @@ #if SK_SUPPORT_GPU #include "GrContext.h" -#include "GrContextPriv.h" #endif // These CPU tile sizes are not good per se, but they are similar to what Chrome uses. @@ -190,7 +189,7 @@ void SKPBench::getGpuStats(SkCanvas* canvas, SkTArray<SkString>* keys, SkTArray< context->flush(); context->freeGpuResources(); context->resetContext(); - context->contextPriv().getGpu()->resetShaderCacheForTesting(); + context->getGpu()->resetShaderCacheForTesting(); draw_pic_for_stats(canvas, context, fPic.get(), keys, values, "first_frame"); // draw second frame diff --git a/gm/imagefromyuvtextures.cpp b/gm/imagefromyuvtextures.cpp index a14674db5a..6334611666 100644 --- a/gm/imagefromyuvtextures.cpp +++ b/gm/imagefromyuvtextures.cpp @@ -12,7 +12,6 @@ #if SK_SUPPORT_GPU #include "GrContext.h" -#include "GrContextPriv.h" #include "GrGpu.h" #include "GrTest.h" #include "SkBitmap.h" @@ -95,7 +94,7 @@ protected: } void createYUVTextures(GrContext* context, GrBackendTexture yuvTextures[3]) { - GrGpu* gpu = context->contextPriv().getGpu(); + GrGpu* gpu = context->getGpu(); if (!gpu) { return; } @@ -113,7 +112,7 @@ protected: void deleteYUVTextures(GrContext* context, GrBackendTexture yuvTextures[3]) { - GrGpu* gpu = context->contextPriv().getGpu(); + GrGpu* gpu = context->getGpu(); if (!gpu) { return; } diff --git a/gm/rectangletexture.cpp b/gm/rectangletexture.cpp index 1ce915bf52..2fb64be90e 100644 --- a/gm/rectangletexture.cpp +++ b/gm/rectangletexture.cpp @@ -13,7 +13,6 @@ #include "GrBackendSurface.h" #include "GrContext.h" -#include "GrContextPriv.h" #include "GrGpu.h" #include "GrTest.h" #include "gl/GrGLContext.h" @@ -62,7 +61,7 @@ protected: if (!context) { return nullptr; } - GrGpu* gpu = context->contextPriv().getGpu(); + GrGpu* gpu = context->getGpu(); if (!gpu) { return nullptr; } diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h index dd6c6f8f39..6b5d7500fa 100644 --- a/include/gpu/GrContext.h +++ b/include/gpu/GrContext.h @@ -300,6 +300,10 @@ public: /////////////////////////////////////////////////////////////////////////// // Functions intended for internal use only. + GrGpu* getGpu() { return fGpu.get(); } + const GrGpu* getGpu() const { return fGpu.get(); } + GrAtlasGlyphCache* getAtlasGlyphCache() { return fAtlasGlyphCache; } + GrTextBlobCache* getTextBlobCache() { return fTextBlobCache.get(); } bool abandoned() const; /** Reset GPU stats */ diff --git a/src/atlastext/SkAtlasTextTarget.cpp b/src/atlastext/SkAtlasTextTarget.cpp index d80c7a45d7..0a318e0c8e 100644 --- a/src/atlastext/SkAtlasTextTarget.cpp +++ b/src/atlastext/SkAtlasTextTarget.cpp @@ -183,7 +183,7 @@ void GrAtlasTextOp::executeForTextTarget(SkAtlasTextTarget* target) { FlushInfo flushInfo; SkAutoGlyphCache glyphCache; auto& context = target->context()->internal(); - auto* atlasGlyphCache = context.grContext()->contextPriv().getAtlasGlyphCache(); + auto* atlasGlyphCache = context.grContext()->getAtlasGlyphCache(); for (int i = 0; i < fGeoCount; ++i) { GrAtlasTextBlob::VertexRegenerator regenerator( fGeoData[i].fBlob, fGeoData[i].fRun, fGeoData[i].fSubRun, fGeoData[i].fViewMatrix, diff --git a/src/atlastext/SkInternalAtlasTextContext.cpp b/src/atlastext/SkInternalAtlasTextContext.cpp index 58b8788943..fba0cbcdbe 100644 --- a/src/atlastext/SkInternalAtlasTextContext.cpp +++ b/src/atlastext/SkInternalAtlasTextContext.cpp @@ -7,7 +7,6 @@ #include "SkInternalAtlasTextContext.h" #include "GrContext.h" -#include "GrContextPriv.h" #include "SkAtlasTextContext.h" #include "SkAtlasTextRenderer.h" #include "text/GrAtlasGlyphCache.h" @@ -37,20 +36,17 @@ SkInternalAtlasTextContext::SkInternalAtlasTextContext(sk_sp<SkAtlasTextRenderer SkInternalAtlasTextContext::~SkInternalAtlasTextContext() { if (fDistanceFieldAtlas.fProxy) { -#ifdef SK_DEBUG - auto atlasGlyphCache = fGrContext->contextPriv().getAtlasGlyphCache(); - SkASSERT(1 == atlasGlyphCache->getAtlasPageCount(kA8_GrMaskFormat)); -#endif + SkASSERT(1 == fGrContext->getAtlasGlyphCache()->getAtlasPageCount(kA8_GrMaskFormat)); fRenderer->deleteTexture(fDistanceFieldAtlas.fTextureHandle); } } GrAtlasGlyphCache* SkInternalAtlasTextContext::atlasGlyphCache() { - return fGrContext->contextPriv().getAtlasGlyphCache(); + return fGrContext->getAtlasGlyphCache(); } GrTextBlobCache* SkInternalAtlasTextContext::textBlobCache() { - return fGrContext->contextPriv().getTextBlobCache(); + return fGrContext->getTextBlobCache(); } GrDeferredUploadToken SkInternalAtlasTextContext::addInlineUpload( @@ -84,7 +80,7 @@ void SkInternalAtlasTextContext::recordDraw(const void* srcVertexData, int glyph } void SkInternalAtlasTextContext::flush() { - auto* atlasGlyphCache = fGrContext->contextPriv().getAtlasGlyphCache(); + auto* atlasGlyphCache = fGrContext->getAtlasGlyphCache(); if (!fDistanceFieldAtlas.fProxy) { SkASSERT(1 == atlasGlyphCache->getAtlasPageCount(kA8_GrMaskFormat)); fDistanceFieldAtlas.fProxy = atlasGlyphCache->getProxies(kA8_GrMaskFormat)->get(); diff --git a/src/gpu/GrContextPriv.h b/src/gpu/GrContextPriv.h index 2ce3947658..bbf67a569a 100644 --- a/src/gpu/GrContextPriv.h +++ b/src/gpu/GrContextPriv.h @@ -175,12 +175,6 @@ public: GrResourceCache* getResourceCache() { return fContext->fResourceCache; } - GrGpu* getGpu() { return fContext->fGpu.get(); } - const GrGpu* getGpu() const { return fContext->fGpu.get(); } - - GrAtlasGlyphCache* getAtlasGlyphCache() { return fContext->fAtlasGlyphCache; } - GrTextBlobCache* getTextBlobCache() { return fContext->fTextBlobCache.get(); } - private: explicit GrContextPriv(GrContext* context) : fContext(context) {} GrContextPriv(const GrContextPriv&); // unimpl diff --git a/src/gpu/GrDrawingManager.cpp b/src/gpu/GrDrawingManager.cpp index 302da06c07..3f6c77379a 100644 --- a/src/gpu/GrDrawingManager.cpp +++ b/src/gpu/GrDrawingManager.cpp @@ -121,9 +121,8 @@ GrSemaphoresSubmitted GrDrawingManager::internalFlush(GrSurfaceProxy*, SkASSERT(result); #endif - GrGpu* gpu = fContext->contextPriv().getGpu(); - - GrOpFlushState flushState(gpu, fContext->contextPriv().resourceProvider(), + GrOpFlushState flushState(fContext->getGpu(), + fContext->contextPriv().resourceProvider(), &fTokenTracker); GrOnFlushResourceProvider onFlushProvider(this); @@ -194,7 +193,8 @@ GrSemaphoresSubmitted GrDrawingManager::internalFlush(GrSurfaceProxy*, fOpLists.reset(); - GrSemaphoresSubmitted result = gpu->finishFlush(numSemaphores, backendSemaphores); + GrSemaphoresSubmitted result = fContext->getGpu()->finishFlush(numSemaphores, + backendSemaphores); // We always have to notify the cache when it requested a flush so it can reset its state. if (flushed || type == GrResourceCache::FlushType::kCacheRequested) { @@ -299,11 +299,10 @@ GrSemaphoresSubmitted GrDrawingManager::prepareSurfaceForExternalIO( return result; } - GrGpu* gpu = fContext->contextPriv().getGpu(); GrSurface* surface = proxy->priv().peekSurface(); - if (gpu && surface->asRenderTarget()) { - gpu->resolveRenderTarget(surface->asRenderTarget(), proxy->origin()); + if (fContext->getGpu() && surface->asRenderTarget()) { + fContext->getGpu()->resolveRenderTarget(surface->asRenderTarget(), proxy->origin()); } return result; } @@ -323,10 +322,8 @@ sk_sp<GrRenderTargetOpList> GrDrawingManager::newRTOpList(GrRenderTargetProxy* r fOpLists.back()->makeClosed(*fContext->caps()); } - auto resourceProvider = fContext->contextPriv().resourceProvider(); - sk_sp<GrRenderTargetOpList> opList(new GrRenderTargetOpList(rtp, - resourceProvider, + fContext->getGpu(), fContext->getAuditTrail())); SkASSERT(rtp->getLastOpList() == opList.get()); diff --git a/src/gpu/GrRenderTargetOpList.cpp b/src/gpu/GrRenderTargetOpList.cpp index 0c806bfe2c..0f62bc6a35 100644 --- a/src/gpu/GrRenderTargetOpList.cpp +++ b/src/gpu/GrRenderTargetOpList.cpp @@ -24,10 +24,9 @@ static const int kMaxOpLookback = 10; static const int kMaxOpLookahead = 10; -GrRenderTargetOpList::GrRenderTargetOpList(GrRenderTargetProxy* proxy, - GrResourceProvider* resourceProvider, +GrRenderTargetOpList::GrRenderTargetOpList(GrRenderTargetProxy* proxy, GrGpu* gpu, GrAuditTrail* auditTrail) - : INHERITED(resourceProvider, proxy, auditTrail) + : INHERITED(gpu->getContext()->contextPriv().resourceProvider(), proxy, auditTrail) , fLastClipStackGenID(SK_InvalidUniqueID) SkDEBUGCODE(, fNumClips(0)) { } diff --git a/src/gpu/GrRenderTargetOpList.h b/src/gpu/GrRenderTargetOpList.h index 6b736338f7..5803d38f37 100644 --- a/src/gpu/GrRenderTargetOpList.h +++ b/src/gpu/GrRenderTargetOpList.h @@ -32,7 +32,7 @@ private: using DstProxy = GrXferProcessor::DstProxy; public: - GrRenderTargetOpList(GrRenderTargetProxy*, GrResourceProvider*, GrAuditTrail*); + GrRenderTargetOpList(GrRenderTargetProxy*, GrGpu*, GrAuditTrail*); ~GrRenderTargetOpList() override; diff --git a/src/gpu/GrTextureAdjuster.cpp b/src/gpu/GrTextureAdjuster.cpp index fbfffb3bb8..b307607c7e 100644 --- a/src/gpu/GrTextureAdjuster.cpp +++ b/src/gpu/GrTextureAdjuster.cpp @@ -75,8 +75,8 @@ sk_sp<GrTextureProxy> GrTextureAdjuster::refTextureProxySafeForParams(const GrSa return nullptr; } - GrGpu* gpu = fContext->contextPriv().getGpu(); - if (!gpu->isACopyNeededForTextureParams(proxy.get(), params, ©Params, scaleAdjust)) { + if (!fContext->getGpu()->isACopyNeededForTextureParams(proxy.get(), params, ©Params, + scaleAdjust)) { return proxy; } diff --git a/src/gpu/GrTextureMaker.cpp b/src/gpu/GrTextureMaker.cpp index 5043675a0d..1fc5f7a0ee 100644 --- a/src/gpu/GrTextureMaker.cpp +++ b/src/gpu/GrTextureMaker.cpp @@ -28,16 +28,16 @@ sk_sp<GrTextureProxy> GrTextureMaker::refTextureProxyForParams(const GrSamplerSt *texColorSpace = this->getColorSpace(dstColorSpace); } - GrGpu* gpu = fContext->contextPriv().getGpu(); sk_sp<GrTextureProxy> original(this->refOriginalTextureProxy(willBeMipped, dstColorSpace, AllowedTexGenType::kCheap)); if (original) { - if (!gpu->isACopyNeededForTextureParams(original.get(), params, ©Params, scaleAdjust)) { + if (!fContext->getGpu()->isACopyNeededForTextureParams(original.get(), params, ©Params, + scaleAdjust)) { return original; } } else { - if (!gpu->isACopyNeededForTextureParams(this->width(), this->height(), - params, ©Params, scaleAdjust)) { + if (!fContext->getGpu()->isACopyNeededForTextureParams(this->width(), this->height(), + params, ©Params, scaleAdjust)) { return this->refOriginalTextureProxy(willBeMipped, dstColorSpace, AllowedTexGenType::kAny); } diff --git a/src/gpu/text/GrAtlasTextBlob.cpp b/src/gpu/text/GrAtlasTextBlob.cpp index 8c3cefe33f..df848db6f7 100644 --- a/src/gpu/text/GrAtlasTextBlob.cpp +++ b/src/gpu/text/GrAtlasTextBlob.cpp @@ -348,7 +348,7 @@ static void calculate_translation(bool applyVM, } } -void GrAtlasTextBlob::flushBigGlyphs(GrTextUtils::Target* target, +void GrAtlasTextBlob::flushBigGlyphs(GrContext* context, GrTextUtils::Target* target, const GrClip& clip, const SkPaint& paint, const SkMatrix& viewMatrix, SkScalar x, SkScalar y, const SkIRect& clipBounds) { @@ -367,11 +367,11 @@ void GrAtlasTextBlob::flushBigGlyphs(GrTextUtils::Target* target, } } -void GrAtlasTextBlob::flushBigRun(GrTextUtils::Target* target, - const SkSurfaceProps& props, const SkTextBlobRunIterator& it, - const GrClip& clip, const GrTextUtils::Paint& paint, - SkDrawFilter* drawFilter, const SkMatrix& viewMatrix, - const SkIRect& clipBounds, SkScalar x, SkScalar y) { +void GrAtlasTextBlob::flushBigRun(GrContext* context, GrTextUtils::Target* target, + const SkSurfaceProps& props, const SkTextBlobRunIterator& it, + const GrClip& clip, const GrTextUtils::Paint& paint, + SkDrawFilter* drawFilter, const SkMatrix& viewMatrix, + const SkIRect& clipBounds, SkScalar x, SkScalar y) { size_t textLen = it.glyphCount() * sizeof(uint16_t); const SkPoint& offset = it.offset(); @@ -382,24 +382,24 @@ void GrAtlasTextBlob::flushBigRun(GrTextUtils::Target* target, switch (it.positioning()) { case SkTextBlob::kDefault_Positioning: - GrTextUtils::DrawBigText(target, clip, runPaint, viewMatrix, + GrTextUtils::DrawBigText(context, target, clip, runPaint, viewMatrix, (const char*)it.glyphs(), textLen, x + offset.x(), y + offset.y(), clipBounds); break; case SkTextBlob::kHorizontal_Positioning: - GrTextUtils::DrawBigPosText(target, props, clip, runPaint, viewMatrix, + GrTextUtils::DrawBigPosText(context, target, props, clip, runPaint, viewMatrix, (const char*)it.glyphs(), textLen, it.pos(), 1, SkPoint::Make(x, y + offset.y()), clipBounds); break; case SkTextBlob::kFull_Positioning: - GrTextUtils::DrawBigPosText(target, props, clip, runPaint, viewMatrix, + GrTextUtils::DrawBigPosText(context, target, props, clip, runPaint, viewMatrix, (const char*)it.glyphs(), textLen, it.pos(), 2, SkPoint::Make(x, y), clipBounds); break; } } -void GrAtlasTextBlob::flushCached(GrAtlasGlyphCache* atlasGlyphCache, GrTextUtils::Target* target, +void GrAtlasTextBlob::flushCached(GrContext* context, GrTextUtils::Target* target, const SkTextBlob* blob, const SkSurfaceProps& props, const GrDistanceFieldAdjustTable* distanceAdjustTable, const GrTextUtils::Paint& paint, SkDrawFilter* drawFilter, @@ -410,20 +410,19 @@ void GrAtlasTextBlob::flushCached(GrAtlasGlyphCache* atlasGlyphCache, GrTextUtil SkTextBlobRunIterator it(blob); for (int run = 0; !it.done(); it.next(), run++) { if (fRuns[run].fTooBigForAtlas) { - this->flushBigRun(target, props, it, clip, paint, drawFilter, viewMatrix, + this->flushBigRun(context, target, props, it, clip, paint, drawFilter, viewMatrix, clipBounds, x, y); continue; } this->flushRun(target, clip, run, viewMatrix, x, y, paint, props, distanceAdjustTable, - atlasGlyphCache); + context->getAtlasGlyphCache()); } // Now flush big glyphs - this->flushBigGlyphs(target, clip, paint, viewMatrix, x, y, clipBounds); + this->flushBigGlyphs(context, target, clip, paint, viewMatrix, x, y, clipBounds); } -void GrAtlasTextBlob::flushThrowaway(GrAtlasGlyphCache* atlasGlyphCache, - GrTextUtils::Target* target, +void GrAtlasTextBlob::flushThrowaway(GrContext* context, GrTextUtils::Target* target, const SkSurfaceProps& props, const GrDistanceFieldAdjustTable* distanceAdjustTable, const GrTextUtils::Paint& paint, const GrClip& clip, @@ -431,11 +430,11 @@ void GrAtlasTextBlob::flushThrowaway(GrAtlasGlyphCache* atlasGlyphCache, SkScalar x, SkScalar y) { for (int run = 0; run < fRunCount; run++) { this->flushRun(target, clip, run, viewMatrix, x, y, paint, props, distanceAdjustTable, - atlasGlyphCache); + context->getAtlasGlyphCache()); } // Now flush big glyphs - this->flushBigGlyphs(target, clip, paint, viewMatrix, x, y, clipBounds); + this->flushBigGlyphs(context, target, clip, paint, viewMatrix, x, y, clipBounds); } std::unique_ptr<GrDrawOp> GrAtlasTextBlob::test_makeOp( diff --git a/src/gpu/text/GrAtlasTextBlob.h b/src/gpu/text/GrAtlasTextBlob.h index 2b4047bdd6..b93632fcfe 100644 --- a/src/gpu/text/GrAtlasTextBlob.h +++ b/src/gpu/text/GrAtlasTextBlob.h @@ -195,14 +195,14 @@ public: const SkMatrix& viewMatrix, SkScalar x, SkScalar y); // flush a GrAtlasTextBlob associated with a SkTextBlob - void flushCached(GrAtlasGlyphCache*, GrTextUtils::Target*, const SkTextBlob* blob, + void flushCached(GrContext* context, GrTextUtils::Target*, const SkTextBlob* blob, const SkSurfaceProps& props, const GrDistanceFieldAdjustTable* distanceAdjustTable, const GrTextUtils::Paint&, SkDrawFilter* drawFilter, const GrClip& clip, const SkMatrix& viewMatrix, const SkIRect& clipBounds, SkScalar x, SkScalar y); // flush a throwaway GrAtlasTextBlob *not* associated with an SkTextBlob - void flushThrowaway(GrAtlasGlyphCache*, GrTextUtils::Target*, const SkSurfaceProps& props, + void flushThrowaway(GrContext* context, GrTextUtils::Target*, const SkSurfaceProps& props, const GrDistanceFieldAdjustTable* distanceAdjustTable, const GrTextUtils::Paint& paint, const GrClip& clip, const SkMatrix& viewMatrix, const SkIRect& clipBounds, SkScalar x, @@ -295,11 +295,11 @@ private: const GrDistanceFieldAdjustTable* distanceAdjustTable, GrAtlasGlyphCache* cache); - void flushBigGlyphs(GrTextUtils::Target*, const GrClip& clip, + void flushBigGlyphs(GrContext* context, GrTextUtils::Target*, const GrClip& clip, const SkPaint& paint, const SkMatrix& viewMatrix, SkScalar x, SkScalar y, const SkIRect& clipBounds); - void flushBigRun(GrTextUtils::Target*, const SkSurfaceProps& props, + void flushBigRun(GrContext* context, GrTextUtils::Target*, const SkSurfaceProps& props, const SkTextBlobRunIterator& it, const GrClip& clip, const GrTextUtils::Paint& paint, SkDrawFilter* drawFilter, const SkMatrix& viewMatrix, const SkIRect& clipBounds, SkScalar x, diff --git a/src/gpu/text/GrAtlasTextContext.cpp b/src/gpu/text/GrAtlasTextContext.cpp index 9fef8e39a3..bdbc600cc1 100644 --- a/src/gpu/text/GrAtlasTextContext.cpp +++ b/src/gpu/text/GrAtlasTextContext.cpp @@ -6,7 +6,6 @@ */ #include "GrAtlasTextContext.h" #include "GrContext.h" -#include "GrContextPriv.h" #include "GrTextBlobCache.h" #include "SkDistanceFieldGen.h" #include "SkDraw.h" @@ -122,9 +121,7 @@ void GrAtlasTextContext::drawTextBlob(GrContext* context, GrTextUtils::Target* t drawFilter); uint32_t scalerContextFlags = ComputeScalerContextFlags(target->colorSpaceInfo()); - auto atlasGlyphCache = context->contextPriv().getAtlasGlyphCache(); - GrTextBlobCache* textBlobCache = context->contextPriv().getTextBlobCache(); - + GrTextBlobCache* cache = context->getTextBlobCache(); if (canCache) { bool hasLCD = HasLCD(blob); @@ -144,7 +141,7 @@ void GrAtlasTextContext::drawTextBlob(GrContext* context, GrTextUtils::Target* t key.fHasBlur = SkToBool(mf); key.fCanonicalColor = canonicalColor; key.fScalerContextFlags = scalerContextFlags; - cacheBlob = textBlobCache->find(key); + cacheBlob = cache->find(key); } GrTextUtils::Paint paint(&skPaint, &target->colorSpaceInfo()); @@ -153,21 +150,21 @@ void GrAtlasTextContext::drawTextBlob(GrContext* context, GrTextUtils::Target* t // We have to remake the blob because changes may invalidate our masks. // TODO we could probably get away reuse most of the time if the pointer is unique, // but we'd have to clear the subrun information - textBlobCache->remove(cacheBlob.get()); - cacheBlob = textBlobCache->makeCachedBlob(blob, key, blurRec, skPaint); - this->regenerateTextBlob(cacheBlob.get(), atlasGlyphCache, + cache->remove(cacheBlob.get()); + cacheBlob = cache->makeCachedBlob(blob, key, blurRec, skPaint); + this->regenerateTextBlob(cacheBlob.get(), context->getAtlasGlyphCache(), *context->caps()->shaderCaps(), paint, scalerContextFlags, viewMatrix, props, blob, x, y, drawFilter); } else { - textBlobCache->makeMRU(cacheBlob.get()); + cache->makeMRU(cacheBlob.get()); if (CACHE_SANITY_CHECK) { int glyphCount = 0; int runCount = 0; GrTextBlobCache::BlobGlyphCount(&glyphCount, &runCount, blob); - sk_sp<GrAtlasTextBlob> sanityBlob(textBlobCache->makeBlob(glyphCount, runCount)); + sk_sp<GrAtlasTextBlob> sanityBlob(cache->makeBlob(glyphCount, runCount)); sanityBlob->setupKey(key, blurRec, skPaint); - this->regenerateTextBlob(sanityBlob.get(), atlasGlyphCache, + this->regenerateTextBlob(sanityBlob.get(), context->getAtlasGlyphCache(), *context->caps()->shaderCaps(), paint, scalerContextFlags, viewMatrix, props, blob, x, y, drawFilter); GrAtlasTextBlob::AssertEqual(*sanityBlob, *cacheBlob); @@ -175,16 +172,16 @@ void GrAtlasTextContext::drawTextBlob(GrContext* context, GrTextUtils::Target* t } } else { if (canCache) { - cacheBlob = textBlobCache->makeCachedBlob(blob, key, blurRec, skPaint); + cacheBlob = cache->makeCachedBlob(blob, key, blurRec, skPaint); } else { - cacheBlob = textBlobCache->makeBlob(blob); + cacheBlob = cache->makeBlob(blob); } - this->regenerateTextBlob(cacheBlob.get(), atlasGlyphCache, + this->regenerateTextBlob(cacheBlob.get(), context->getAtlasGlyphCache(), *context->caps()->shaderCaps(), paint, scalerContextFlags, viewMatrix, props, blob, x, y, drawFilter); } - cacheBlob->flushCached(atlasGlyphCache, target, blob, props, fDistanceAdjustTable.get(), paint, + cacheBlob->flushCached(context, target, blob, props, fDistanceAdjustTable.get(), paint, drawFilter, clip, viewMatrix, clipBounds, x, y); } @@ -321,27 +318,23 @@ void GrAtlasTextContext::drawText(GrContext* context, GrTextUtils::Target* targe if (context->abandoned()) { return; } - - auto atlasGlyphCache = context->contextPriv().getAtlasGlyphCache(); - auto textBlobCache = context->contextPriv().getTextBlobCache(); - GrTextUtils::Paint paint(&skPaint, &target->colorSpaceInfo()); - if (this->canDraw(atlasGlyphCache, skPaint, viewMatrix, props, + if (this->canDraw(context->getAtlasGlyphCache(), skPaint, viewMatrix, props, *context->caps()->shaderCaps())) { sk_sp<GrAtlasTextBlob> blob( - this->makeDrawTextBlob(textBlobCache, atlasGlyphCache, + this->makeDrawTextBlob(context->getTextBlobCache(), context->getAtlasGlyphCache(), *context->caps()->shaderCaps(), paint, ComputeScalerContextFlags(target->colorSpaceInfo()), viewMatrix, props, text, byteLength, x, y)); if (blob) { - blob->flushThrowaway(atlasGlyphCache, target, props, fDistanceAdjustTable.get(), paint, - clip, viewMatrix, regionClipBounds, x, y); + blob->flushThrowaway(context, target, props, fDistanceAdjustTable.get(), paint, clip, + viewMatrix, regionClipBounds, x, y); } return; } // fall back to drawing as a path or scaled glyph - GrTextUtils::DrawBigText(target, clip, paint, viewMatrix, text, byteLength, x, y, + GrTextUtils::DrawBigText(context, target, clip, paint, viewMatrix, text, byteLength, x, y, regionClipBounds); } @@ -354,27 +347,22 @@ void GrAtlasTextContext::drawPosText(GrContext* context, GrTextUtils::Target* ta GrTextUtils::Paint paint(&skPaint, &target->colorSpaceInfo()); if (context->abandoned()) { return; - } - - auto atlasGlyphCache = context->contextPriv().getAtlasGlyphCache(); - auto textBlobCache = context->contextPriv().getTextBlobCache(); - - if (this->canDraw(atlasGlyphCache, skPaint, viewMatrix, props, - *context->caps()->shaderCaps())) { + } else if (this->canDraw(context->getAtlasGlyphCache(), skPaint, viewMatrix, props, + *context->caps()->shaderCaps())) { sk_sp<GrAtlasTextBlob> blob(this->makeDrawPosTextBlob( - textBlobCache, atlasGlyphCache, + context->getTextBlobCache(), context->getAtlasGlyphCache(), *context->caps()->shaderCaps(), paint, ComputeScalerContextFlags(target->colorSpaceInfo()), viewMatrix, props, text, byteLength, pos, scalarsPerPosition, offset)); if (blob) { - blob->flushThrowaway(atlasGlyphCache, target, props, fDistanceAdjustTable.get(), paint, - clip, viewMatrix, regionClipBounds, offset.fX, offset.fY); + blob->flushThrowaway(context, target, props, fDistanceAdjustTable.get(), paint, clip, + viewMatrix, regionClipBounds, offset.fX, offset.fY); } return; } // fall back to drawing as a path or scaled glyph - GrTextUtils::DrawBigPosText(target, props, clip, paint, viewMatrix, text, + GrTextUtils::DrawBigPosText(context, target, props, clip, paint, viewMatrix, text, byteLength, pos, scalarsPerPosition, offset, regionClipBounds); } @@ -848,18 +836,16 @@ GR_DRAW_OP_TEST_DEFINE(GrAtlasTextOp) { SkScalar x = SkIntToScalar(xInt); SkScalar y = SkIntToScalar(yInt); - auto atlasGlyphCache = context->contextPriv().getAtlasGlyphCache(); - // right now we don't handle textblobs, nor do we handle drawPosText. Since we only intend to // test the text op with this unit test, that is okay. sk_sp<GrAtlasTextBlob> blob(gTextContext->makeDrawTextBlob( - context->contextPriv().getTextBlobCache(), atlasGlyphCache, + context->getTextBlobCache(), context->getAtlasGlyphCache(), *context->caps()->shaderCaps(), utilsPaint, GrAtlasTextContext::kTextBlobOpScalerContextFlags, viewMatrix, gSurfaceProps, text, static_cast<size_t>(textLen), x, y)); return blob->test_makeOp(textLen, 0, 0, viewMatrix, x, y, utilsPaint, gSurfaceProps, - gTextContext->dfAdjustTable(), atlasGlyphCache, + gTextContext->dfAdjustTable(), context->getAtlasGlyphCache(), rtc->textTarget()); } diff --git a/src/gpu/text/GrTextUtils.cpp b/src/gpu/text/GrTextUtils.cpp index d4a80e0600..20a3a5c52c 100644 --- a/src/gpu/text/GrTextUtils.cpp +++ b/src/gpu/text/GrTextUtils.cpp @@ -78,7 +78,7 @@ bool GrTextUtils::ShouldDisableLCD(const SkPaint& paint) { paint.isFakeBoldText() || paint.getStyle() != SkPaint::kFill_Style; } -void GrTextUtils::DrawBigText(GrTextUtils::Target* target, +void GrTextUtils::DrawBigText(GrContext* context, GrTextUtils::Target* target, const GrClip& clip, const SkPaint& paint, const SkMatrix& viewMatrix, const char text[], size_t byteLength, SkScalar x, SkScalar y, const SkIRect& clipBounds) { @@ -104,7 +104,7 @@ void GrTextUtils::DrawBigText(GrTextUtils::Target* target, } } -void GrTextUtils::DrawBigPosText(GrTextUtils::Target* target, +void GrTextUtils::DrawBigPosText(GrContext* context, GrTextUtils::Target* target, const SkSurfaceProps& props, const GrClip& clip, const SkPaint& origPaint, const SkMatrix& viewMatrix, const char text[], size_t byteLength, const SkScalar pos[], diff --git a/src/gpu/text/GrTextUtils.h b/src/gpu/text/GrTextUtils.h index 252cd7c626..3b1968decd 100644 --- a/src/gpu/text/GrTextUtils.h +++ b/src/gpu/text/GrTextUtils.h @@ -129,17 +129,17 @@ public: static bool ShouldDisableLCD(const SkPaint& paint); // Functions for drawing large text either as paths or (for color emoji) as scaled glyphs - static void DrawBigText(GrTextUtils::Target*, const GrClip& clip, - const SkPaint& paint, const SkMatrix& viewMatrix, const char text[], - size_t byteLength, SkScalar x, SkScalar y, - const SkIRect& clipBounds); - - static void DrawBigPosText(GrTextUtils::Target*, - const SkSurfaceProps& props, const GrClip& clip, - const SkPaint& paint, const SkMatrix& viewMatrix, - const char text[], size_t byteLength, const SkScalar pos[], - int scalarsPerPosition, const SkPoint& offset, + static void DrawBigText(GrContext*, GrTextUtils::Target*, const GrClip& clip, + const SkPaint& paint, const SkMatrix& viewMatrix, const char text[], + size_t byteLength, SkScalar x, SkScalar y, const SkIRect& clipBounds); + + static void DrawBigPosText(GrContext* context, GrTextUtils::Target*, + const SkSurfaceProps& props, const GrClip& clip, + const SkPaint& paint, const SkMatrix& viewMatrix, + const char text[], size_t byteLength, const SkScalar pos[], + int scalarsPerPosition, const SkPoint& offset, + const SkIRect& clipBounds); }; #endif diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp index 304a4cd6d0..d078de1f20 100644 --- a/src/image/SkImage_Gpu.cpp +++ b/src/image/SkImage_Gpu.cpp @@ -590,8 +590,7 @@ sk_sp<SkImage> SkImage::MakeCrossContextFromEncoded(GrContext* context, sk_sp<Sk // Flush any writes or uploads context->contextPriv().prepareSurfaceForExternalIO(proxy.get()); - GrGpu* gpu = context->contextPriv().getGpu(); - sk_sp<GrSemaphore> sema = gpu->prepareTextureForCrossContextUsage(texture.get()); + sk_sp<GrSemaphore> sema = context->getGpu()->prepareTextureForCrossContextUsage(texture.get()); auto gen = GrBackendTextureImageGenerator::Make(std::move(texture), proxy->origin(), std::move(sema), codecImage->alphaType(), @@ -626,9 +625,8 @@ sk_sp<SkImage> SkImage::MakeCrossContextFromPixmap(GrContext* context, const SkP // Flush any writes or uploads context->contextPriv().prepareSurfaceForExternalIO(proxy.get()); - GrGpu* gpu = context->contextPriv().getGpu(); - sk_sp<GrSemaphore> sema = gpu->prepareTextureForCrossContextUsage(texture.get()); + sk_sp<GrSemaphore> sema = context->getGpu()->prepareTextureForCrossContextUsage(texture.get()); auto gen = GrBackendTextureImageGenerator::Make(std::move(texture), proxy->origin(), std::move(sema), pixmap.alphaType(), diff --git a/tests/EGLImageTest.cpp b/tests/EGLImageTest.cpp index dac78a89c0..efa7de20d7 100644 --- a/tests/EGLImageTest.cpp +++ b/tests/EGLImageTest.cpp @@ -28,7 +28,7 @@ static void cleanup(GLTestContext* glctx0, GrGLuint texID0, GLTestContext* glctx glctx1->makeCurrent(); if (grctx1) { if (backendTex1 && backendTex1->isValid()) { - GrGLGpu* gpu1 = static_cast<GrGLGpu*>(grctx1->contextPriv().getGpu()); + GrGLGpu* gpu1 = static_cast<GrGLGpu*>(grctx1->getGpu()); gpu1->deleteTestingOnlyBackendTexture(backendTex1); } } @@ -53,7 +53,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(EGLImageTest, reporter, ctxInfo) { if (kGLES_GrGLStandard != glCtx0->gl()->fStandard) { return; } - GrGLGpu* gpu0 = static_cast<GrGLGpu*>(context0->contextPriv().getGpu()); + GrGLGpu* gpu0 = static_cast<GrGLGpu*>(context0->getGpu()); if (!gpu0->glCaps().shaderCaps()->externalTextureSupport()) { return; } @@ -83,7 +83,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(EGLImageTest, reporter, ctxInfo) { // Use GL Context 1 to create a texture unknown to GrContext. context1->flush(); - GrGpu* gpu1 = context1->contextPriv().getGpu(); + GrGpu* gpu1 = context1->getGpu(); static const int kSize = 100; backendTexture1 = gpu1->createTestingOnlyBackendTexture(nullptr, kSize, kSize, kRGBA_8888_GrPixelConfig, diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp index 6c2e8d2f04..cf920957be 100644 --- a/tests/GLProgramsTest.cpp +++ b/tests/GLProgramsTest.cpp @@ -348,7 +348,7 @@ bool GrDrawingManager::ProgramUnitTest(GrContext* context, int maxStages, int ma static int get_glprograms_max_stages(const sk_gpu_test::ContextInfo& ctxInfo) { GrContext* context = ctxInfo.grContext(); - GrGLGpu* gpu = static_cast<GrGLGpu*>(context->contextPriv().getGpu()); + GrGLGpu* gpu = static_cast<GrGLGpu*>(context->getGpu()); int maxStages = 6; if (kGLES_GrGLStandard == gpu->glStandard()) { // We've had issues with driver crashes and HW limits being exceeded with many effects on diff --git a/tests/GrMipMappedTest.cpp b/tests/GrMipMappedTest.cpp index 006fd00a28..df1e8ee901 100644 --- a/tests/GrMipMappedTest.cpp +++ b/tests/GrMipMappedTest.cpp @@ -37,14 +37,12 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrWrappedMipMappedTest, reporter, ctxInfo) { if (!context->caps()->mipMapSupport()) { return; } - GrGpu* gpu = context->contextPriv().getGpu(); - for (auto mipMapped : {GrMipMapped::kNo, GrMipMapped::kYes}) { for (auto isRT : {false, true}) { // CreateTestingOnlyBackendTexture currently doesn't support uploading data to mip maps // so we don't send any. However, we pretend there is data for the checks below which is // fine since we are never actually using these textures for any work on the gpu. - GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture( + GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture( nullptr, kSize, kSize, kRGBA_8888_GrPixelConfig, isRT, mipMapped); sk_sp<GrTextureProxy> proxy; @@ -71,7 +69,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrWrappedMipMappedTest, reporter, ctxInfo) { } REPORTER_ASSERT(reporter, proxy); if (!proxy) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); return; } @@ -80,7 +78,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrWrappedMipMappedTest, reporter, ctxInfo) { GrTexture* texture = proxy->priv().peekTexture(); REPORTER_ASSERT(reporter, texture); if (!texture) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); return; } @@ -94,7 +92,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrWrappedMipMappedTest, reporter, ctxInfo) { } else { REPORTER_ASSERT(reporter, GrMipMapped::kNo == texture->texturePriv().mipMapped()); } - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } } } @@ -106,11 +104,9 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter, if (!context->caps()->mipMapSupport()) { return; } - GrGpu* gpu = context->contextPriv().getGpu(); - for (auto mipMapped : {GrMipMapped::kNo, GrMipMapped::kYes}) { for (auto willUseMips : {false, true}) { - GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture( + GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture( nullptr, kSize, kSize, kRGBA_8888_GrPixelConfig, false, mipMapped); sk_sp<SkImage> image = SkImage::MakeFromTexture(context, backendTex, @@ -122,7 +118,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter, GrTextureProxy* proxy = as_IB(image)->peekProxy(); REPORTER_ASSERT(reporter, proxy); if (!proxy) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); return; } @@ -131,7 +127,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter, sk_sp<GrTexture> texture = sk_ref_sp(proxy->priv().peekTexture()); REPORTER_ASSERT(reporter, texture); if (!texture) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); return; } @@ -139,7 +135,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter, texture, kTopLeft_GrSurfaceOrigin, nullptr, kPremul_SkAlphaType, nullptr); REPORTER_ASSERT(reporter, imageGen); if (!imageGen) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); return; } @@ -155,7 +151,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter, REPORTER_ASSERT(reporter, genProxy); if (!genProxy) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); return; } @@ -168,7 +164,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter, GrTexture* genTexture = genProxy->priv().peekTexture(); REPORTER_ASSERT(reporter, genTexture); if (!genTexture) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); return; } @@ -206,7 +202,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter, bitmap.allocPixels(imageInfo); surfContext->readPixels(imageInfo, bitmap.getPixels(), 0, 0, 0, 0); - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } } } @@ -220,13 +216,12 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrImageSnapshotMipMappedTest, reporter, ctxIn } auto resourceProvider = context->contextPriv().resourceProvider(); - GrGpu* gpu = context->contextPriv().getGpu(); for (auto willUseMips : {false, true}) { for (auto isWrapped : {false, true}) { GrMipMapped mipMapped = willUseMips ? GrMipMapped::kYes : GrMipMapped::kNo; sk_sp<SkSurface> surface; - GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture( + GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture( nullptr, kSize, kSize, kRGBA_8888_GrPixelConfig, true, mipMapped); if (isWrapped) { surface = SkSurface::MakeFromBackendTexture(context, @@ -245,7 +240,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrImageSnapshotMipMappedTest, reporter, ctxIn } REPORTER_ASSERT(reporter, surface); if (!surface) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } SkGpuDevice* device = ((SkSurface_Gpu*)surface.get())->getDevice(); GrTextureProxy* texProxy = device->accessRenderTargetContext()->asTextureProxy(); @@ -258,7 +253,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrImageSnapshotMipMappedTest, reporter, ctxIn sk_sp<SkImage> image = surface->makeImageSnapshot(); REPORTER_ASSERT(reporter, image); if (!image) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } texProxy = as_IB(image)->peekProxy(); REPORTER_ASSERT(reporter, mipMapped == texProxy->mipMapped()); @@ -270,7 +265,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrImageSnapshotMipMappedTest, reporter, ctxIn // Must flush the context to make sure all the cmds (copies, etc.) from above are sent // to the gpu before we delete the backendHandle. context->flush(); - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } } } diff --git a/tests/GrPorterDuffTest.cpp b/tests/GrPorterDuffTest.cpp index 7e938c7761..6c1f209527 100644 --- a/tests/GrPorterDuffTest.cpp +++ b/tests/GrPorterDuffTest.cpp @@ -30,7 +30,7 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps); static void test_lcd_coverage_fallback_case(skiatest::Reporter* reporter, const GrCaps& caps); DEF_GPUTEST_FOR_NULLGL_CONTEXT(GrPorterDuff, reporter, ctxInfo) { - const GrCaps& caps = *ctxInfo.grContext()->contextPriv().getGpu()->caps(); + const GrCaps& caps = *ctxInfo.grContext()->getGpu()->caps(); if (!caps.shaderCaps()->dualSourceBlendingSupport()) { SK_ABORT("Null context does not support dual source blending."); return; @@ -1061,7 +1061,6 @@ DEF_GPUTEST(PorterDuffNoDualSourceBlending, reporter, options) { return; } - GrGpu* gpu = ctx->contextPriv().getGpu(); GrProxyProvider* proxyProvider = ctx->contextPriv().proxyProvider(); const GrCaps& caps = *ctx->caps(); if (caps.shaderCaps()->dualSourceBlendingSupport()) { @@ -1070,8 +1069,8 @@ DEF_GPUTEST(PorterDuffNoDualSourceBlending, reporter, options) { } GrBackendTexture backendTex = - gpu->createTestingOnlyBackendTexture(nullptr, 100, 100, kRGBA_8888_GrPixelConfig, - false, GrMipMapped::kNo); + ctx->getGpu()->createTestingOnlyBackendTexture(nullptr, 100, 100, kRGBA_8888_GrPixelConfig, + false, GrMipMapped::kNo); GrXferProcessor::DstProxy fakeDstProxy; { @@ -1102,7 +1101,7 @@ DEF_GPUTEST(PorterDuffNoDualSourceBlending, reporter, options) { } } } - gpu->deleteTestingOnlyBackendTexture(&backendTex); + ctx->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } #endif diff --git a/tests/GrSurfaceTest.cpp b/tests/GrSurfaceTest.cpp index 72a92a709d..eab930145c 100644 --- a/tests/GrSurfaceTest.cpp +++ b/tests/GrSurfaceTest.cpp @@ -25,7 +25,6 @@ DEF_GPUTEST_FOR_NULLGL_CONTEXT(GrSurface, reporter, ctxInfo) { GrContext* context = ctxInfo.grContext(); auto resourceProvider = context->contextPriv().resourceProvider(); - GrGpu* gpu = context->contextPriv().getGpu(); GrSurfaceDesc desc; desc.fFlags = kRenderTarget_GrSurfaceFlag; @@ -52,7 +51,7 @@ DEF_GPUTEST_FOR_NULLGL_CONTEXT(GrSurface, reporter, ctxInfo) { REPORTER_ASSERT(reporter, tex1.get() == tex1->asTexture()); REPORTER_ASSERT(reporter, static_cast<GrSurface*>(tex1.get()) == tex1->asTexture()); - GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture( + GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture( nullptr, 256, 256, kRGBA_8888_GrPixelConfig, false, GrMipMapped::kNo); sk_sp<GrSurface> texRT2 = resourceProvider->wrapRenderableBackendTexture( @@ -67,7 +66,7 @@ DEF_GPUTEST_FOR_NULLGL_CONTEXT(GrSurface, reporter, ctxInfo) { REPORTER_ASSERT(reporter, static_cast<GrSurface*>(texRT2->asRenderTarget()) == static_cast<GrSurface*>(texRT2->asTexture())); - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } // This test checks that the isConfigTexturable and isConfigRenderable are diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp index 83ff47c256..078bd7c1bd 100644 --- a/tests/ImageTest.cpp +++ b/tests/ImageTest.cpp @@ -723,9 +723,8 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SkImage_NewFromTextureRelease, reporter, c std::unique_ptr<uint32_t[]> pixels(new uint32_t[kWidth * kHeight]); GrContext* ctx = ctxInfo.grContext(); - GrGpu* gpu = ctx->contextPriv().getGpu(); - GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture( + GrBackendTexture backendTex = ctxInfo.grContext()->getGpu()->createTestingOnlyBackendTexture( pixels.get(), kWidth, kHeight, kRGBA_8888_GrPixelConfig, true, GrMipMapped::kNo); TextureReleaseChecker releaseChecker; @@ -757,7 +756,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SkImage_NewFromTextureRelease, reporter, c refImg.reset(nullptr); // force a release of the image REPORTER_ASSERT(reporter, 1 == releaseChecker.fReleaseCount); - gpu->deleteTestingOnlyBackendTexture(&backendTex); + ctxInfo.grContext()->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } static void test_cross_context_image(skiatest::Reporter* reporter, const GrContextOptions& options, diff --git a/tests/PrimitiveProcessorTest.cpp b/tests/PrimitiveProcessorTest.cpp index 406d5e2104..b8b9e6f3ce 100644 --- a/tests/PrimitiveProcessorTest.cpp +++ b/tests/PrimitiveProcessorTest.cpp @@ -111,9 +111,6 @@ private: DEF_GPUTEST_FOR_ALL_CONTEXTS(VertexAttributeCount, reporter, ctxInfo) { GrContext* context = ctxInfo.grContext(); -#if GR_GPU_STATS - GrGpu* gpu = context->contextPriv().getGpu(); -#endif sk_sp<GrRenderTargetContext> renderTargetContext(context->makeDeferredRenderTargetContext( SkBackingFit::kApprox, @@ -131,23 +128,23 @@ DEF_GPUTEST_FOR_ALL_CONTEXTS(VertexAttributeCount, reporter, ctxInfo) { context->flush(); context->resetGpuStats(); #if GR_GPU_STATS - REPORTER_ASSERT(reporter, gpu->stats()->numDraws() == 0); - REPORTER_ASSERT(reporter, gpu->stats()->numFailedDraws() == 0); + REPORTER_ASSERT(reporter, context->getGpu()->stats()->numDraws() == 0); + REPORTER_ASSERT(reporter, context->getGpu()->stats()->numFailedDraws() == 0); #endif GrPaint grPaint; // This one should succeed. renderTargetContext->priv().testingOnly_addDrawOp(Op::Make(attribCnt)); context->flush(); #if GR_GPU_STATS - REPORTER_ASSERT(reporter, gpu->stats()->numDraws() == 1); - REPORTER_ASSERT(reporter, gpu->stats()->numFailedDraws() == 0); + REPORTER_ASSERT(reporter, context->getGpu()->stats()->numDraws() == 1); + REPORTER_ASSERT(reporter, context->getGpu()->stats()->numFailedDraws() == 0); #endif context->resetGpuStats(); renderTargetContext->priv().testingOnly_addDrawOp(Op::Make(attribCnt + 1)); context->flush(); #if GR_GPU_STATS - REPORTER_ASSERT(reporter, gpu->stats()->numDraws() == 0); - REPORTER_ASSERT(reporter, gpu->stats()->numFailedDraws() == 1); + REPORTER_ASSERT(reporter, context->getGpu()->stats()->numDraws() == 0); + REPORTER_ASSERT(reporter, context->getGpu()->stats()->numFailedDraws() == 1); #endif } #endif diff --git a/tests/ResourceAllocatorTest.cpp b/tests/ResourceAllocatorTest.cpp index 121cf86345..55a7766944 100644 --- a/tests/ResourceAllocatorTest.cpp +++ b/tests/ResourceAllocatorTest.cpp @@ -47,17 +47,16 @@ static sk_sp<GrSurfaceProxy> make_deferred(GrProxyProvider* proxyProvider, const static sk_sp<GrSurfaceProxy> make_backend(GrContext* context, const ProxyParams& p, GrBackendTexture* backendTex) { GrProxyProvider* proxyProvider = context->contextPriv().proxyProvider(); - GrGpu* gpu = context->contextPriv().getGpu(); - *backendTex = gpu->createTestingOnlyBackendTexture(nullptr, p.fSize, p.fSize, - p.fConfig, false, - GrMipMapped::kNo); + *backendTex = context->getGpu()->createTestingOnlyBackendTexture(nullptr, p.fSize, p.fSize, + p.fConfig, false, + GrMipMapped::kNo); return proxyProvider->createWrappedTextureProxy(*backendTex, p.fOrigin); } static void cleanup_backend(GrContext* context, GrBackendTexture* backendTex) { - context->contextPriv().getGpu()->deleteTestingOnlyBackendTexture(backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(backendTex); } // Basic test that two proxies with overlapping intervals and compatible descriptors are diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp index 34ed4f7328..dd122a0dea 100644 --- a/tests/ResourceCacheTest.cpp +++ b/tests/ResourceCacheTest.cpp @@ -200,7 +200,7 @@ DEF_GPUTEST_FOR_CONTEXTS(ResourceCacheStencilBuffers, &is_rendering_and_not_angl DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ResourceCacheWrappedResources, reporter, ctxInfo) { GrContext* context = ctxInfo.grContext(); GrResourceProvider* resourceProvider = context->contextPriv().resourceProvider(); - GrGpu* gpu = context->contextPriv().getGpu(); + GrGpu* gpu = context->getGpu(); // this test is only valid for GL if (!gpu || !gpu->glContextForTesting()) { return; @@ -370,13 +370,12 @@ static void test_no_key(skiatest::Reporter* reporter) { Mock mock(10, 30000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); // Create a bunch of resources with no keys - TestResource* a = new TestResource(gpu); - TestResource* b = new TestResource(gpu); - TestResource* c = new TestResource(gpu); - TestResource* d = new TestResource(gpu); + TestResource* a = new TestResource(context->getGpu()); + TestResource* b = new TestResource(context->getGpu()); + TestResource* c = new TestResource(context->getGpu()); + TestResource* d = new TestResource(context->getGpu()); a->setSize(11); b->setSize(12); c->setSize(13); @@ -428,21 +427,21 @@ static void test_budgeting(skiatest::Reporter* reporter) { Mock mock(10, 300); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); GrUniqueKey uniqueKey; make_unique_key<0>(&uniqueKey, 0); // Create a scratch, a unique, and a wrapped resource TestResource* scratch = - TestResource::CreateScratch(gpu, SkBudgeted::kYes, TestResource::kB_SimulatedProperty); + TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kB_SimulatedProperty); scratch->setSize(10); - TestResource* unique = new TestResource(gpu); + TestResource* unique = new TestResource(context->getGpu()); unique->setSize(11); unique->resourcePriv().setUniqueKey(uniqueKey); - TestResource* wrapped = TestResource::CreateWrapped(gpu); + TestResource* wrapped = TestResource::CreateWrapped(context->getGpu()); wrapped->setSize(12); - TestResource* unbudgeted = new TestResource(gpu, SkBudgeted::kNo); + TestResource* unbudgeted = + new TestResource(context->getGpu(), SkBudgeted::kNo); unbudgeted->setSize(13); // Make sure we can add a unique key to the wrapped resource @@ -484,7 +483,7 @@ static void test_budgeting(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 0 == cache->getPurgeableBytes()); // Now try freeing the budgeted resources first - wrapped = TestResource::CreateWrapped(gpu); + wrapped = TestResource::CreateWrapped(context->getGpu()); scratch->setSize(12); unique->unref(); REPORTER_ASSERT(reporter, 11 == cache->getPurgeableBytes()); @@ -525,7 +524,6 @@ static void test_unbudgeted(skiatest::Reporter* reporter) { Mock mock(10, 30000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); GrUniqueKey uniqueKey; make_unique_key<0>(&uniqueKey, 0); @@ -536,7 +534,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) { TestResource* unbudgeted; // A large uncached or wrapped resource shouldn't evict anything. - scratch = TestResource::CreateScratch(gpu, SkBudgeted::kYes, + scratch = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kB_SimulatedProperty); scratch->setSize(10); @@ -547,7 +545,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 10 == cache->getBudgetedResourceBytes()); REPORTER_ASSERT(reporter, 10 == cache->getPurgeableBytes()); - unique = new TestResource(gpu); + unique = new TestResource(context->getGpu()); unique->setSize(11); unique->resourcePriv().setUniqueKey(uniqueKey); unique->unref(); @@ -558,7 +556,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 21 == cache->getPurgeableBytes()); size_t large = 2 * cache->getResourceBytes(); - unbudgeted = new TestResource(gpu, SkBudgeted::kNo, large); + unbudgeted = new TestResource(context->getGpu(), SkBudgeted::kNo, large); REPORTER_ASSERT(reporter, 3 == cache->getResourceCount()); REPORTER_ASSERT(reporter, 21 + large == cache->getResourceBytes()); REPORTER_ASSERT(reporter, 2 == cache->getBudgetedResourceCount()); @@ -572,7 +570,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 21 == cache->getBudgetedResourceBytes()); REPORTER_ASSERT(reporter, 21 == cache->getPurgeableBytes()); - wrapped = TestResource::CreateWrapped(gpu, large); + wrapped = TestResource::CreateWrapped(context->getGpu(), large); REPORTER_ASSERT(reporter, 3 == cache->getResourceCount()); REPORTER_ASSERT(reporter, 21 + large == cache->getResourceBytes()); REPORTER_ASSERT(reporter, 2 == cache->getBudgetedResourceCount()); @@ -600,10 +598,10 @@ void test_unbudgeted_to_scratch(skiatest::Reporter* reporter); Mock mock(10, 300); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); TestResource* resource = - TestResource::CreateScratch(gpu, SkBudgeted::kNo, TestResource::kA_SimulatedProperty); + TestResource::CreateScratch(context->getGpu(), SkBudgeted::kNo, + TestResource::kA_SimulatedProperty); GrScratchKey key; TestResource::ComputeScratchKey(TestResource::kA_SimulatedProperty, &key); @@ -664,13 +662,12 @@ static void test_duplicate_scratch_key(skiatest::Reporter* reporter) { Mock mock(5, 30000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); // Create two resources that have the same scratch key. - TestResource* a = TestResource::CreateScratch(gpu, + TestResource* a = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kB_SimulatedProperty); - TestResource* b = TestResource::CreateScratch(gpu, + TestResource* b = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kB_SimulatedProperty); a->setSize(11); @@ -712,12 +709,11 @@ static void test_remove_scratch_key(skiatest::Reporter* reporter) { Mock mock(5, 30000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); // Create two resources that have the same scratch key. - TestResource* a = TestResource::CreateScratch(gpu, SkBudgeted::kYes, + TestResource* a = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kB_SimulatedProperty); - TestResource* b = TestResource::CreateScratch(gpu, SkBudgeted::kYes, + TestResource* b = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kB_SimulatedProperty); a->unref(); b->unref(); @@ -772,12 +768,11 @@ static void test_scratch_key_consistency(skiatest::Reporter* reporter) { Mock mock(5, 30000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); // Create two resources that have the same scratch key. - TestResource* a = TestResource::CreateScratch(gpu, SkBudgeted::kYes, + TestResource* a = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kB_SimulatedProperty); - TestResource* b = TestResource::CreateScratch(gpu, SkBudgeted::kYes, + TestResource* b = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kB_SimulatedProperty); a->unref(); b->unref(); @@ -832,13 +827,12 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) { Mock mock(5, 30000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); GrUniqueKey key; make_unique_key<0>(&key, 0); // Create two resources that we will attempt to register with the same unique key. - TestResource* a = new TestResource(gpu); + TestResource* a = new TestResource(context->getGpu()); a->setSize(11); // Set key on resource a. @@ -855,7 +849,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 1 == TestResource::NumAlive()); // Create resource b and set the same key. It should replace a's unique key cache entry. - TestResource* b = new TestResource(gpu); + TestResource* b = new TestResource(context->getGpu()); b->setSize(12); b->resourcePriv().setUniqueKey(key); REPORTER_ASSERT(reporter, b == cache->findAndRefUniqueResource(key)); @@ -875,7 +869,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) { // Now replace b with c, but make sure c can start with one unique key and change it to b's key. // Also make b be unreffed when replacement occurs. b->unref(); - TestResource* c = new TestResource(gpu); + TestResource* c = new TestResource(context->getGpu()); GrUniqueKey differentKey; make_unique_key<0>(&differentKey, 1); c->setSize(13); @@ -912,7 +906,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) { { GrUniqueKey key2; make_unique_key<0>(&key2, 0); - sk_sp<TestResource> d(new TestResource(gpu)); + sk_sp<TestResource> d(new TestResource(context->getGpu())); int foo = 4132; key2.setCustomData(SkData::MakeWithCopy(&foo, sizeof(foo))); d->resourcePriv().setUniqueKey(key2); @@ -928,7 +922,6 @@ static void test_purge_invalidated(skiatest::Reporter* reporter) { Mock mock(5, 30000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); GrUniqueKey key1, key2, key3; make_unique_key<0>(&key1, 1); @@ -936,9 +929,9 @@ static void test_purge_invalidated(skiatest::Reporter* reporter) { make_unique_key<0>(&key3, 3); // Add three resources to the cache. Only c is usable as scratch. - TestResource* a = new TestResource(gpu); - TestResource* b = new TestResource(gpu); - TestResource* c = TestResource::CreateScratch(gpu, SkBudgeted::kYes, + TestResource* a = new TestResource(context->getGpu()); + TestResource* b = new TestResource(context->getGpu()); + TestResource* c = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kA_SimulatedProperty); a->resourcePriv().setUniqueKey(key1); b->resourcePriv().setUniqueKey(key2); @@ -997,14 +990,13 @@ static void test_cache_chained_purge(skiatest::Reporter* reporter) { Mock mock(3, 30000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); GrUniqueKey key1, key2; make_unique_key<0>(&key1, 1); make_unique_key<0>(&key2, 2); - TestResource* a = new TestResource(gpu); - TestResource* b = new TestResource(gpu); + TestResource* a = new TestResource(context->getGpu()); + TestResource* b = new TestResource(context->getGpu()); a->resourcePriv().setUniqueKey(key1); b->resourcePriv().setUniqueKey(key2); @@ -1040,13 +1032,12 @@ static void test_resource_size_changed(skiatest::Reporter* reporter) { Mock mock(3, 30000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); - TestResource* a = new TestResource(gpu); + TestResource* a = new TestResource(context->getGpu()); a->resourcePriv().setUniqueKey(key1); a->unref(); - TestResource* b = new TestResource(gpu); + TestResource* b = new TestResource(context->getGpu()); b->resourcePriv().setUniqueKey(key2); b->unref(); @@ -1070,14 +1061,13 @@ static void test_resource_size_changed(skiatest::Reporter* reporter) { Mock mock(2, 300); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); - TestResource* a = new TestResource(gpu); + TestResource* a = new TestResource(context->getGpu()); a->setSize(100); a->resourcePriv().setUniqueKey(key1); a->unref(); - TestResource* b = new TestResource(gpu); + TestResource* b = new TestResource(context->getGpu()); b->setSize(100); b->resourcePriv().setUniqueKey(key2); b->unref(); @@ -1110,7 +1100,6 @@ static void test_timestamp_wrap(skiatest::Reporter* reporter) { Mock mock(kBudgetCnt, kBudgetSize); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); // Pick a random number of resources to add before the timestamp will wrap. cache->changeTimestamp(SK_MaxU32 - random.nextULessThan(kCount + 1)); @@ -1127,7 +1116,7 @@ static void test_timestamp_wrap(skiatest::Reporter* reporter) { GrUniqueKey key; make_unique_key<0>(&key, j); - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(context->getGpu()); r->resourcePriv().setUniqueKey(key); if (random.nextU() % kLockedFreq) { // Make this is purgeable. @@ -1167,7 +1156,6 @@ static void test_flush(skiatest::Reporter* reporter) { Mock mock(1000000, 1000000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); // The current cache impl will round the max flush count to the next power of 2. So we choose a // power of two here to keep things simpler. @@ -1177,7 +1165,7 @@ static void test_flush(skiatest::Reporter* reporter) { { // Insert a resource and send a flush notification kFlushCount times. for (int i = 0; i < kFlushCount; ++i) { - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(context->getGpu()); GrUniqueKey k; make_unique_key<1>(&k, i); r->resourcePriv().setUniqueKey(k); @@ -1207,7 +1195,7 @@ static void test_flush(skiatest::Reporter* reporter) { { GrGpuResource* refedResources[kFlushCount >> 1]; for (int i = 0; i < kFlushCount; ++i) { - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(context->getGpu()); GrUniqueKey k; make_unique_key<1>(&k, i); r->resourcePriv().setUniqueKey(k); @@ -1248,7 +1236,7 @@ static void test_flush(skiatest::Reporter* reporter) { // eviction. context->flush(); for (int i = 0; i < 10; ++i) { - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(context->getGpu()); GrUniqueKey k; make_unique_key<1>(&k, i); r->resourcePriv().setUniqueKey(k); @@ -1265,7 +1253,6 @@ static void test_time_purge(skiatest::Reporter* reporter) { Mock mock(1000000, 1000000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); static constexpr int kCnts[] = {1, 10, 1024}; auto nowish = []() { @@ -1284,7 +1271,7 @@ static void test_time_purge(skiatest::Reporter* reporter) { { // Insert resources and get time points between each addition. for (int i = 0; i < cnt; ++i) { - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(context->getGpu()); GrUniqueKey k; make_unique_key<1>(&k, i); r->resourcePriv().setUniqueKey(k); @@ -1315,7 +1302,7 @@ static void test_time_purge(skiatest::Reporter* reporter) { { std::unique_ptr<GrGpuResource* []> refedResources(new GrGpuResource*[cnt / 2]); for (int i = 0; i < cnt; ++i) { - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(context->getGpu()); GrUniqueKey k; make_unique_key<1>(&k, i); r->resourcePriv().setUniqueKey(k); @@ -1350,7 +1337,7 @@ static void test_time_purge(skiatest::Reporter* reporter) { // eviction context->flush(); for (int i = 0; i < 10; ++i) { - TestResource* r = new TestResource(gpu); + TestResource* r = new TestResource(context->getGpu()); GrUniqueKey k; make_unique_key<1>(&k, i); r->resourcePriv().setUniqueKey(k); @@ -1368,7 +1355,6 @@ static void test_partial_purge(skiatest::Reporter* reporter) { Mock mock(6, 100); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); enum TestsCase { kOnlyScratch_TestCase = 0, @@ -1388,9 +1374,9 @@ static void test_partial_purge(skiatest::Reporter* reporter) { make_unique_key<0>(&key3, 3); // Add three unique resources to the cache. - TestResource *unique1 = new TestResource(gpu); - TestResource *unique2 = new TestResource(gpu); - TestResource *unique3 = new TestResource(gpu); + TestResource *unique1 = new TestResource(context->getGpu()); + TestResource *unique2 = new TestResource(context->getGpu()); + TestResource *unique3 = new TestResource(context->getGpu()); unique1->resourcePriv().setUniqueKey(key1); unique2->resourcePriv().setUniqueKey(key2); @@ -1401,9 +1387,9 @@ static void test_partial_purge(skiatest::Reporter* reporter) { unique3->setSize(12); // Add two scratch resources to the cache. - TestResource *scratch1 = TestResource::CreateScratch(gpu, SkBudgeted::kYes, + TestResource *scratch1 = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kA_SimulatedProperty); - TestResource *scratch2 = TestResource::CreateScratch(gpu, SkBudgeted::kYes, + TestResource *scratch2 = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kB_SimulatedProperty); scratch1->setSize(13); scratch2->setSize(14); @@ -1482,7 +1468,6 @@ static void test_large_resource_count(skiatest::Reporter* reporter) { Mock mock(2 * kResourceCnt, 2 * kResourceCnt + 1000); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); for (int i = 0; i < kResourceCnt; ++i) { GrUniqueKey key1, key2; @@ -1491,12 +1476,12 @@ static void test_large_resource_count(skiatest::Reporter* reporter) { TestResource* resource; - resource = new TestResource(gpu); + resource = new TestResource(context->getGpu()); resource->resourcePriv().setUniqueKey(key1); resource->setSize(1); resource->unref(); - resource = new TestResource(gpu); + resource = new TestResource(context->getGpu()); resource->resourcePriv().setUniqueKey(key2); resource->setSize(1); resource->unref(); @@ -1552,9 +1537,7 @@ static void test_custom_data(skiatest::Reporter* reporter) { static void test_abandoned(skiatest::Reporter* reporter) { Mock mock(10, 300); GrContext* context = mock.context(); - GrGpu* gpu = context->contextPriv().getGpu(); - - sk_sp<GrGpuResource> resource(new TestResource(gpu)); + sk_sp<GrGpuResource> resource(new TestResource(context->getGpu())); context->abandonContext(); REPORTER_ASSERT(reporter, resource->wasDestroyed()); @@ -1588,14 +1571,13 @@ static void test_tags(skiatest::Reporter* reporter) { Mock mock(kNumResources, kNumResources * TestResource::kDefaultSize); GrContext* context = mock.context(); GrResourceCache* cache = mock.cache(); - GrGpu* gpu = context->contextPriv().getGpu(); SkString tagStr; int tagIdx = 0; int currTagCnt = 0; for (int i = 0; i < kNumResources; ++i, ++currTagCnt) { - sk_sp<GrGpuResource> resource(new TestResource(gpu)); + sk_sp<GrGpuResource> resource(new TestResource(context->getGpu())); GrUniqueKey key; if (currTagCnt == tagIdx) { tagIdx += 1; diff --git a/tests/SRGBMipMapTest.cpp b/tests/SRGBMipMapTest.cpp index b24b7f77f9..7d6f6a9546 100644 --- a/tests/SRGBMipMapTest.cpp +++ b/tests/SRGBMipMapTest.cpp @@ -169,7 +169,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SRGBMipMaps, reporter, ctxInfo) { // // TODO: Once Vulkan supports legacy mip-mapping, we can promote this to GrCaps. Right now, // Vulkan has most of the functionality, but not the mip-mapping part that's being tested here. - GrGLGpu* glGpu = static_cast<GrGLGpu*>(context->contextPriv().getGpu()); + GrGLGpu* glGpu = static_cast<GrGLGpu*>(context->getGpu()); if (glGpu->glCaps().srgbDecodeDisableSupport() && glGpu->glCaps().srgbDecodeDisableAffectsMipmaps()) { read_and_check_pixels(reporter, l32RenderTargetContext.get(), expectedLinear, iiRGBA, diff --git a/tests/SurfaceSemaphoreTest.cpp b/tests/SurfaceSemaphoreTest.cpp index eea6e37670..b4f63fec41 100644 --- a/tests/SurfaceSemaphoreTest.cpp +++ b/tests/SurfaceSemaphoreTest.cpp @@ -8,7 +8,6 @@ #include "SkTypes.h" #if SK_SUPPORT_GPU -#include "GrContextPriv.h" #include "GrContextFactory.h" #include "GrTest.h" #include "Test.h" @@ -133,7 +132,7 @@ void surface_semaphore_test(skiatest::Reporter* reporter, #ifdef SK_VULKAN if (kVulkan_GrBackend == mainInfo.backend()) { // Initialize the secondary semaphore instead of having Ganesh create one internally - GrVkGpu* gpu = static_cast<GrVkGpu*>(mainCtx->contextPriv().getGpu()); + GrVkGpu* gpu = static_cast<GrVkGpu*>(mainCtx->getGpu()); const GrVkInterface* interface = gpu->vkInterface(); VkDevice device = gpu->device(); @@ -236,7 +235,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(EmptySurfaceSemaphoreTest, reporter, ctxInfo) REPORTER_ASSERT(reporter, GrSemaphoresSubmitted::kYes == submitted); if (kOpenGL_GrBackend == ctxInfo.backend()) { - GrGLGpu* gpu = static_cast<GrGLGpu*>(ctx->contextPriv().getGpu()); + GrGLGpu* gpu = static_cast<GrGLGpu*>(ctx->getGpu()); const GrGLInterface* interface = gpu->glInterface(); GrGLsync sync = semaphore.glSync(); REPORTER_ASSERT(reporter, sync); @@ -247,7 +246,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(EmptySurfaceSemaphoreTest, reporter, ctxInfo) #ifdef SK_VULKAN if (kVulkan_GrBackend == ctxInfo.backend()) { - GrVkGpu* gpu = static_cast<GrVkGpu*>(ctx->contextPriv().getGpu()); + GrVkGpu* gpu = static_cast<GrVkGpu*>(ctx->getGpu()); const GrVkInterface* interface = gpu->vkInterface(); VkDevice device = gpu->device(); VkQueue queue = gpu->queue(); diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp index c06ba240ed..7f0d9973b5 100644 --- a/tests/SurfaceTest.cpp +++ b/tests/SurfaceTest.cpp @@ -584,17 +584,15 @@ DEF_TEST(surface_raster_zeroinitialized, reporter) { #if SK_SUPPORT_GPU static sk_sp<SkSurface> create_gpu_surface_backend_texture( GrContext* context, int sampleCnt, uint32_t color, GrBackendTexture* outTexture) { - GrGpu* gpu = context->contextPriv().getGpu(); - const int kWidth = 10; const int kHeight = 10; std::unique_ptr<uint32_t[]> pixels(new uint32_t[kWidth * kHeight]); sk_memset32(pixels.get(), color, kWidth * kHeight); - *outTexture = gpu->createTestingOnlyBackendTexture( + *outTexture = context->getGpu()->createTestingOnlyBackendTexture( pixels.get(), kWidth, kHeight, kRGBA_8888_GrPixelConfig, true, GrMipMapped::kNo); - if (!outTexture->isValid() || !gpu->isTestingOnlyBackendTexture(*outTexture)) { + if (!outTexture->isValid() || !context->getGpu()->isTestingOnlyBackendTexture(*outTexture)) { return nullptr; } @@ -603,7 +601,7 @@ static sk_sp<SkSurface> create_gpu_surface_backend_texture( kRGBA_8888_SkColorType, nullptr, nullptr); if (!surface) { - gpu->deleteTestingOnlyBackendTexture(outTexture); + context->getGpu()->deleteTestingOnlyBackendTexture(outTexture); return nullptr; } return surface; @@ -611,17 +609,15 @@ static sk_sp<SkSurface> create_gpu_surface_backend_texture( static sk_sp<SkSurface> create_gpu_surface_backend_texture_as_render_target( GrContext* context, int sampleCnt, uint32_t color, GrBackendTexture* outTexture) { - GrGpu* gpu = context->contextPriv().getGpu(); - const int kWidth = 10; const int kHeight = 10; std::unique_ptr<uint32_t[]> pixels(new uint32_t[kWidth * kHeight]); sk_memset32(pixels.get(), color, kWidth * kHeight); - *outTexture = gpu->createTestingOnlyBackendTexture( + *outTexture = context->getGpu()->createTestingOnlyBackendTexture( pixels.get(), kWidth, kHeight, kRGBA_8888_GrPixelConfig, true, GrMipMapped::kNo); - if (!outTexture->isValid() || !gpu->isTestingOnlyBackendTexture(*outTexture)) { + if (!outTexture->isValid() || !context->getGpu()->isTestingOnlyBackendTexture(*outTexture)) { return nullptr; } @@ -630,7 +626,7 @@ static sk_sp<SkSurface> create_gpu_surface_backend_texture_as_render_target( nullptr, nullptr); if (!surface) { - gpu->deleteTestingOnlyBackendTexture(outTexture); + context->getGpu()->deleteTestingOnlyBackendTexture(outTexture); return nullptr; } return surface; @@ -678,7 +674,6 @@ static void test_surface_clear(skiatest::Reporter* reporter, sk_sp<SkSurface> su DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceClear_Gpu, reporter, ctxInfo) { GrContext* context = ctxInfo.grContext(); - GrGpu* gpu = context->contextPriv().getGpu(); std::function<sk_sp<GrSurfaceContext>(SkSurface*)> grSurfaceContextGetters[] = { [] (SkSurface* s){ @@ -708,7 +703,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceClear_Gpu, reporter, ctxInfo) { auto surface = surfaceFunc(context, 0, kOrigColor, &backendTex); test_surface_clear(reporter, surface, grSurfaceGetter, kOrigColor); surface.reset(); - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } } } @@ -756,7 +751,7 @@ static void test_surface_draw_partially( } DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfacePartialDraw_Gpu, reporter, ctxInfo) { - GrGpu* gpu = ctxInfo.grContext()->contextPriv().getGpu(); + GrGpu* gpu = ctxInfo.grContext()->getGpu(); if (!gpu) { return; } @@ -779,7 +774,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfacePartialDraw_Gpu, reporter, ctxInfo) { DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceAttachStencil_Gpu, reporter, ctxInfo) { - GrGpu* gpu = ctxInfo.grContext()->contextPriv().getGpu(); + GrGpu* gpu = ctxInfo.grContext()->getGpu(); if (!gpu) { return; } @@ -880,7 +875,6 @@ DEF_TEST(SurfaceCreationWithColorSpace, reporter) { #if SK_SUPPORT_GPU DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCreationWithColorSpace_Gpu, reporter, ctxInfo) { GrContext* context = ctxInfo.grContext(); - bool f16Support = context->caps()->isConfigRenderable(kRGBA_half_GrPixelConfig, false); auto surfaceMaker = [context](const SkImageInfo& info) { return SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, info); @@ -890,16 +884,14 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCreationWithColorSpace_Gpu, reporter, std::vector<GrBackendTexture> backendTextures; auto wrappedSurfaceMaker = [ context, &backendTextures ](const SkImageInfo& info) { - GrGpu* gpu = context->contextPriv().getGpu(); - static const int kSize = 10; GrPixelConfig config = SkImageInfo2GrPixelConfig(info, *context->caps()); - GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture( + GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture( nullptr, kSize, kSize, config, true, GrMipMapped::kNo); if (!backendTex.isValid() || - !gpu->isTestingOnlyBackendTexture(backendTex)) { + !context->getGpu()->isTestingOnlyBackendTexture(backendTex)) { return sk_sp<SkSurface>(nullptr); } backendTextures.push_back(backendTex); @@ -915,9 +907,8 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCreationWithColorSpace_Gpu, reporter, context->flush(); - GrGpu* gpu = context->contextPriv().getGpu(); for (auto backendTex : backendTextures) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } } #endif diff --git a/tests/TransferPixelsTest.cpp b/tests/TransferPixelsTest.cpp index ce8d1edc4f..ee1a233d63 100755 --- a/tests/TransferPixelsTest.cpp +++ b/tests/TransferPixelsTest.cpp @@ -69,7 +69,6 @@ void basic_transfer_test(skiatest::Reporter* reporter, GrContext* context, GrPix } auto resourceProvider = context->contextPriv().resourceProvider(); - GrGpu* gpu = context->contextPriv().getGpu(); // set up the data const int kTextureWidth = 16; @@ -111,13 +110,13 @@ void basic_transfer_test(skiatest::Reporter* reporter, GrContext* context, GrPix // transfer full data bool result; - result = gpu->transferPixels(tex.get(), 0, 0, kTextureWidth, kTextureHeight, - config, buffer.get(), 0, rowBytes); + result = context->getGpu()->transferPixels(tex.get(), 0, 0, kTextureWidth, kTextureHeight, + config, buffer.get(), 0, rowBytes); REPORTER_ASSERT(reporter, result); memset(dstBuffer.get(), 0xCDCD, size); - result = gpu->readPixels(tex.get(), origin, 0, 0, kTextureWidth, kTextureHeight, - config, dstBuffer.get(), rowBytes); + result = context->getGpu()->readPixels(tex.get(), origin, 0, 0, kTextureWidth, kTextureHeight, + config, dstBuffer.get(), rowBytes); if (result) { REPORTER_ASSERT(reporter, does_full_buffer_contain_correct_values(srcBuffer, dstBuffer, @@ -143,13 +142,13 @@ void basic_transfer_test(skiatest::Reporter* reporter, GrContext* context, GrPix buffer->unmap(); size_t offset = sizeof(GrColor)*(kTop*kBufferWidth + kLeft); - result = gpu->transferPixels(tex.get(), kLeft, kTop, kWidth, kHeight, config, - buffer.get(), offset, rowBytes); + result = context->getGpu()->transferPixels(tex.get(), kLeft, kTop, kWidth, kHeight, config, + buffer.get(), offset, rowBytes); REPORTER_ASSERT(reporter, result); memset(dstBuffer.get(), 0xCDCD, size); - result = gpu->readPixels(tex.get(), origin, 0, 0, kTextureWidth, kTextureHeight, - config, dstBuffer.get(), rowBytes); + result = context->getGpu()->readPixels(tex.get(), origin, 0, 0, kTextureWidth, kTextureHeight, + config, dstBuffer.get(), rowBytes); if (result) { REPORTER_ASSERT(reporter, does_full_buffer_contain_correct_values(srcBuffer, dstBuffer, diff --git a/tests/VkHeapTests.cpp b/tests/VkHeapTests.cpp index 29e4e7906b..fd5f88a1bb 100644 --- a/tests/VkHeapTests.cpp +++ b/tests/VkHeapTests.cpp @@ -11,7 +11,6 @@ #if SK_SUPPORT_GPU && defined(SK_VULKAN) -#include "GrContextPriv.h" #include "GrContextFactory.h" #include "GrTest.h" #include "Test.h" @@ -20,7 +19,7 @@ using sk_gpu_test::GrContextFactory; void subheap_test(skiatest::Reporter* reporter, GrContext* context) { - GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu()); + GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu()); // memtype doesn't matter, we're just testing the suballocation algorithm so we'll use 0 GrVkSubHeap heap(gpu, 0, 0, 64 * 1024, 32); @@ -117,7 +116,7 @@ void subheap_test(skiatest::Reporter* reporter, GrContext* context) { } void suballoc_test(skiatest::Reporter* reporter, GrContext* context) { - GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu()); + GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu()); // memtype/heap index don't matter, we're just testing the allocation algorithm so we'll use 0 GrVkHeap heap(gpu, GrVkHeap::kSubAlloc_Strategy, 64 * 1024); @@ -177,7 +176,7 @@ void suballoc_test(skiatest::Reporter* reporter, GrContext* context) { } void singlealloc_test(skiatest::Reporter* reporter, GrContext* context) { - GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu()); + GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu()); // memtype/heap index don't matter, we're just testing the allocation algorithm so we'll use 0 GrVkHeap heap(gpu, GrVkHeap::kSingleAlloc_Strategy, 64 * 1024); diff --git a/tests/VkWrapTests.cpp b/tests/VkWrapTests.cpp index 6cfbba65b6..cf28586196 100644 --- a/tests/VkWrapTests.cpp +++ b/tests/VkWrapTests.cpp @@ -11,7 +11,6 @@ #if SK_SUPPORT_GPU && defined(SK_VULKAN) -#include "GrContextPriv.h" #include "GrContextFactory.h" #include "GrRenderTarget.h" #include "GrTest.h" @@ -31,7 +30,7 @@ const GrPixelConfig kPixelConfig = kRGBA_8888_GrPixelConfig; void wrap_tex_test(skiatest::Reporter* reporter, GrContext* context) { - GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu()); + GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu()); GrBackendTexture origBackendTex = gpu->createTestingOnlyBackendTexture(nullptr, kW, kH, kPixelConfig, false, @@ -76,7 +75,7 @@ void wrap_tex_test(skiatest::Reporter* reporter, GrContext* context) { } void wrap_rt_test(skiatest::Reporter* reporter, GrContext* context) { - GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu()); + GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu()); GrBackendTexture origBackendTex = gpu->createTestingOnlyBackendTexture(nullptr, kW, kH, kPixelConfig, true, @@ -113,7 +112,7 @@ void wrap_rt_test(skiatest::Reporter* reporter, GrContext* context) { } void wrap_trt_test(skiatest::Reporter* reporter, GrContext* context) { - GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu()); + GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu()); GrBackendTexture origBackendTex = gpu->createTestingOnlyBackendTexture(nullptr, kW, kH, kPixelConfig, true, diff --git a/tests/WritePixelsTest.cpp b/tests/WritePixelsTest.cpp index a16752f229..a41e8f4071 100644 --- a/tests/WritePixelsTest.cpp +++ b/tests/WritePixelsTest.cpp @@ -427,11 +427,10 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixels_Gpu, reporter, ctxInfo) { DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixelsNonTexture_Gpu, reporter, ctxInfo) { GrContext* context = ctxInfo.grContext(); - GrGpu* gpu = context->contextPriv().getGpu(); for (auto& origin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin }) { for (int sampleCnt : {0, 4}) { - GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture( + GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture( nullptr, DEV_W, DEV_H, kSkia8888_GrPixelConfig, true, GrMipMapped::kNo); SkColorType colorType; if (kRGBA_8888_GrPixelConfig == kSkia8888_GrPixelConfig) { @@ -442,14 +441,14 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixelsNonTexture_Gpu, reporter, ctxInfo) sk_sp<SkSurface> surface(SkSurface::MakeFromBackendTextureAsRenderTarget( context, backendTex, origin, sampleCnt, colorType, nullptr, nullptr)); if (!surface) { - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); continue; } test_write_pixels(reporter, surface.get()); surface.reset(); - gpu->deleteTestingOnlyBackendTexture(&backendTex); + context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex); } } } diff --git a/tools/gpu/GrTest.cpp b/tools/gpu/GrTest.cpp index 25c5a602f9..f511574726 100644 --- a/tools/gpu/GrTest.cpp +++ b/tools/gpu/GrTest.cpp @@ -148,7 +148,7 @@ void GrContext::printGpuStats() const { } sk_sp<SkImage> GrContext::getFontAtlasImage_ForTesting(GrMaskFormat format) { - GrAtlasGlyphCache* cache = this->contextPriv().getAtlasGlyphCache(); + GrAtlasGlyphCache* cache = this->getAtlasGlyphCache(); const sk_sp<GrTextureProxy>* proxies = cache->getProxies(format); if (!proxies[0]) { |