Revert of Add guards to GrTextureProvider (patchset #5 id:80001 of https://codereview.chromium.org/1567983002/ )
Reason for revert:
breaking asan bot
Original issue's description:
> Add guards to GrTextureProvider
>
> TBR=bsalomon@google.com
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1567983002
>
> Committed: https://skia.googlesource.com/skia/+/b30dd1db1d914b85a691b4724713ba1b0f16cd6c
TBR=robertphillips@google.com,joshualitt@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1565313003
diff --git a/include/gpu/GrDrawContext.h b/include/gpu/GrDrawContext.h
index 2f664ba..7ae6f5e 100644
--- a/include/gpu/GrDrawContext.h
+++ b/include/gpu/GrDrawContext.h
@@ -310,7 +310,7 @@
SkSurfaceProps fSurfaceProps;
// In debug builds we guard against improper thread handling
- SkDEBUGCODE(mutable GrSingleOwner* fSingleOwner;)
+ mutable GrSingleOwner* fSingleOwner;
};
#endif
diff --git a/include/gpu/GrTextureProvider.h b/include/gpu/GrTextureProvider.h
index 46f381d..5635583 100644
--- a/include/gpu/GrTextureProvider.h
+++ b/include/gpu/GrTextureProvider.h
@@ -11,8 +11,6 @@
#include "GrTexture.h"
#include "SkImageFilter.h"
-class GrSingleOwner;
-
class SK_API GrTextureProvider {
public:
///////////////////////////////////////////////////////////////////////////
@@ -44,7 +42,15 @@
}
/** Finds a texture by unique key. If the texture is found it is ref'ed and returned. */
- GrTexture* findAndRefTextureByUniqueKey(const GrUniqueKey& key);
+ GrTexture* findAndRefTextureByUniqueKey(const GrUniqueKey& key) {
+ GrGpuResource* resource = this->findAndRefResourceByUniqueKey(key);
+ if (resource) {
+ GrTexture* texture = static_cast<GrSurface*>(resource)->asTexture();
+ SkASSERT(texture);
+ return texture;
+ }
+ return NULL;
+ }
/**
* Determines whether a texture is associated with the unique key. If the texture is found it
@@ -128,7 +134,7 @@
GrRenderTarget* wrapBackendRenderTarget(const GrBackendRenderTargetDesc& desc);
protected:
- GrTextureProvider(GrGpu* gpu, GrResourceCache* cache, GrSingleOwner* singleOwner);
+ GrTextureProvider(GrGpu* gpu, GrResourceCache* cache) : fCache(cache), fGpu(gpu) {}
/**
* Assigns a unique key to a resource. If the key is associated with another resource that
@@ -180,9 +186,6 @@
private:
GrResourceCache* fCache;
GrGpu* fGpu;
-
- // In debug builds we guard against improper thread handling
- SkDEBUGCODE(mutable GrSingleOwner* fSingleOwner;)
};
#endif
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index c37f31c..2bf887c 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -85,7 +85,7 @@
fCaps = SkRef(fGpu->caps());
fResourceCache = new GrResourceCache(fCaps);
fResourceCache->setOverBudgetCallback(OverBudgetCB, this);
- fResourceProvider = new GrResourceProvider(fGpu, fResourceCache, &fSingleOwner);
+ fResourceProvider = new GrResourceProvider(fGpu, fResourceCache);
fLayerCache.reset(new GrLayerCache(this));
diff --git a/src/gpu/GrDrawContext.cpp b/src/gpu/GrDrawContext.cpp
index 497af7c..01bd161 100644
--- a/src/gpu/GrDrawContext.cpp
+++ b/src/gpu/GrDrawContext.cpp
@@ -57,10 +57,7 @@
, fDrawTarget(SkSafeRef(rt->getLastDrawTarget()))
, fTextContext(nullptr)
, fSurfaceProps(SkSurfacePropsCopyOrDefault(surfaceProps))
-#ifdef SK_DEBUG
- , fSingleOwner(singleOwner)
-#endif
-{
+ , fSingleOwner(singleOwner) {
SkDEBUGCODE(this->validate();)
}
diff --git a/src/gpu/GrResourceProvider.cpp b/src/gpu/GrResourceProvider.cpp
index 19fa1cf..a8bccfe 100644
--- a/src/gpu/GrResourceProvider.cpp
+++ b/src/gpu/GrResourceProvider.cpp
@@ -19,8 +19,7 @@
GR_DECLARE_STATIC_UNIQUE_KEY(gQuadIndexBufferKey);
-GrResourceProvider::GrResourceProvider(GrGpu* gpu, GrResourceCache* cache, GrSingleOwner* owner)
- : INHERITED(gpu, cache, owner) {
+GrResourceProvider::GrResourceProvider(GrGpu* gpu, GrResourceCache* cache) : INHERITED(gpu, cache) {
GR_DEFINE_STATIC_UNIQUE_KEY(gQuadIndexBufferKey);
fQuadIndexBufferKey = gQuadIndexBufferKey;
}
diff --git a/src/gpu/GrResourceProvider.h b/src/gpu/GrResourceProvider.h
index 783c7c7..bffd572 100644
--- a/src/gpu/GrResourceProvider.h
+++ b/src/gpu/GrResourceProvider.h
@@ -17,7 +17,6 @@
class GrIndexBuffer;
class GrPath;
class GrRenderTarget;
-class GrSingleOwner;
class GrStencilAttachment;
class GrStrokeInfo;
class GrVertexBuffer;
@@ -36,7 +35,7 @@
*/
class GrResourceProvider : protected GrTextureProvider {
public:
- GrResourceProvider(GrGpu* gpu, GrResourceCache* cache, GrSingleOwner* owner);
+ GrResourceProvider(GrGpu* gpu, GrResourceCache* cache);
template <typename T> T* findAndRefTByUniqueKey(const GrUniqueKey& key) {
return static_cast<T*>(this->findAndRefResourceByUniqueKey(key));
diff --git a/src/gpu/GrTextureProvider.cpp b/src/gpu/GrTextureProvider.cpp
index 1c2f365..cb652f7 100644
--- a/src/gpu/GrTextureProvider.cpp
+++ b/src/gpu/GrTextureProvider.cpp
@@ -10,10 +10,6 @@
#include "GrTexturePriv.h"
#include "GrResourceCache.h"
#include "GrGpu.h"
-#include "../private/GrSingleOwner.h"
-
-#define ASSERT_SINGLE_OWNER \
- SkDEBUGCODE(GrSingleOwner::AutoEnforce debug_SingleOwner(fSingleOwner);)
enum ScratchTextureFlags {
kExact_ScratchTextureFlag = 0x1,
@@ -21,18 +17,8 @@
kNoCreate_ScratchTextureFlag = 0x4,
};
-GrTextureProvider::GrTextureProvider(GrGpu* gpu, GrResourceCache* cache, GrSingleOwner* singleOwner)
- : fCache(cache)
- , fGpu(gpu)
-#ifdef SK_DEBUG
- , fSingleOwner(singleOwner)
-#endif
- {
-}
-
GrTexture* GrTextureProvider::createTexture(const GrSurfaceDesc& desc, bool budgeted,
const void* srcData, size_t rowBytes) {
- ASSERT_SINGLE_OWNER
if (this->isAbandoned()) {
return nullptr;
}
@@ -58,13 +44,11 @@
}
GrTexture* GrTextureProvider::createApproxTexture(const GrSurfaceDesc& desc) {
- ASSERT_SINGLE_OWNER
return this->internalCreateApproxTexture(desc, 0);
}
GrTexture* GrTextureProvider::internalCreateApproxTexture(const GrSurfaceDesc& desc,
uint32_t scratchFlags) {
- ASSERT_SINGLE_OWNER
if (this->isAbandoned()) {
return nullptr;
}
@@ -78,7 +62,6 @@
GrTexture* GrTextureProvider::refScratchTexture(const GrSurfaceDesc& inDesc,
uint32_t flags) {
- ASSERT_SINGLE_OWNER
SkASSERT(!this->isAbandoned());
SkASSERT(!GrPixelConfigIsCompressed(inDesc.fConfig));
@@ -125,7 +108,6 @@
GrTexture* GrTextureProvider::wrapBackendTexture(const GrBackendTextureDesc& desc,
GrWrapOwnership ownership) {
- ASSERT_SINGLE_OWNER
if (this->isAbandoned()) {
return nullptr;
}
@@ -133,13 +115,11 @@
}
GrRenderTarget* GrTextureProvider::wrapBackendRenderTarget(const GrBackendRenderTargetDesc& desc) {
- ASSERT_SINGLE_OWNER
return this->isAbandoned() ? nullptr : fGpu->wrapBackendRenderTarget(desc,
- kBorrow_GrWrapOwnership);
+ kBorrow_GrWrapOwnership);
}
void GrTextureProvider::assignUniqueKeyToResource(const GrUniqueKey& key, GrGpuResource* resource) {
- ASSERT_SINGLE_OWNER
if (this->isAbandoned() || !resource) {
return;
}
@@ -147,22 +127,9 @@
}
bool GrTextureProvider::existsResourceWithUniqueKey(const GrUniqueKey& key) const {
- ASSERT_SINGLE_OWNER
return this->isAbandoned() ? false : fCache->hasUniqueKey(key);
}
GrGpuResource* GrTextureProvider::findAndRefResourceByUniqueKey(const GrUniqueKey& key) {
- ASSERT_SINGLE_OWNER
return this->isAbandoned() ? nullptr : fCache->findAndRefUniqueResource(key);
}
-
-GrTexture* GrTextureProvider::findAndRefTextureByUniqueKey(const GrUniqueKey& key) {
- ASSERT_SINGLE_OWNER
- GrGpuResource* resource = this->findAndRefResourceByUniqueKey(key);
- if (resource) {
- GrTexture* texture = static_cast<GrSurface*>(resource)->asTexture();
- SkASSERT(texture);
- return texture;
- }
- return NULL;
-}