Only check resource tracking on program shutdown, not context shutdown
BUG=skia:5496 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128273002 Review-Url: https://codereview.chromium.org/2128273002
This commit is contained in:
parent
6e46eea63e
commit
d5f6e9a759
@ -153,7 +153,7 @@ void GrVkBuffer::vkUnmap(GrVkGpu* gpu) {
|
||||
VK_CALL(gpu, UnmapMemory(gpu->device(), this->alloc().fMemory));
|
||||
} else {
|
||||
gpu->updateBuffer(this, fMapPtr, this->size());
|
||||
delete (unsigned char*) fMapPtr;
|
||||
delete [] (unsigned char*)fMapPtr;
|
||||
}
|
||||
|
||||
fMapPtr = nullptr;
|
||||
|
@ -40,7 +40,26 @@ public:
|
||||
#ifdef SK_TRACE_VK_RESOURCES
|
||||
static const uint32_t& GetKey(const GrVkResource& r) { return r.fKey; }
|
||||
static uint32_t Hash(const uint32_t& k) { return k; }
|
||||
static SkTDynamicHash<GrVkResource, uint32_t> fTrace;
|
||||
|
||||
class Trace {
|
||||
public:
|
||||
~Trace() {
|
||||
if (fHash.count()) {
|
||||
SkTDynamicHash<GrVkResource, uint32_t>::Iter iter(&fHash);
|
||||
for (; !iter.done(); ++iter) {
|
||||
(*iter).dumpInfo();
|
||||
}
|
||||
}
|
||||
SkASSERT(0 == fHash.count());
|
||||
}
|
||||
void add(GrVkResource* r) { fHash.add(r); }
|
||||
void remove(const GrVkResource* r) { fHash.remove(GetKey(*r)); }
|
||||
|
||||
private:
|
||||
SkTDynamicHash<GrVkResource, uint32_t> fHash;
|
||||
};
|
||||
static Trace fTrace;
|
||||
|
||||
static SkRandom fRandom;
|
||||
#endif
|
||||
|
||||
@ -144,7 +163,7 @@ private:
|
||||
void internal_dispose(const GrVkGpu* gpu) const {
|
||||
this->freeGPUData(gpu);
|
||||
#ifdef SK_TRACE_VK_RESOURCES
|
||||
fTrace.remove(GetKey(*this));
|
||||
fTrace.remove(this);
|
||||
#endif
|
||||
SkASSERT(0 == fRefCnt);
|
||||
fRefCnt = 1;
|
||||
@ -157,7 +176,7 @@ private:
|
||||
void internal_dispose() const {
|
||||
this->abandonSubResources();
|
||||
#ifdef SK_TRACE_VK_RESOURCES
|
||||
fTrace.remove(GetKey(*this));
|
||||
fTrace.remove(this);
|
||||
#endif
|
||||
SkASSERT(0 == fRefCnt);
|
||||
fRefCnt = 1;
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include "GrVkUtil.h"
|
||||
|
||||
#ifdef SK_TRACE_VK_RESOURCES
|
||||
SkTDynamicHash<GrVkResource, uint32_t> GrVkResource::fTrace;
|
||||
GrVkResource::Trace GrVkResource::fTrace;
|
||||
SkRandom GrVkResource::fRandom;
|
||||
#endif
|
||||
|
||||
@ -314,16 +314,6 @@ void GrVkResourceProvider::destroyResources() {
|
||||
fUniformDescLayout = VK_NULL_HANDLE;
|
||||
}
|
||||
fUniformDescPool->unref(fGpu);
|
||||
|
||||
#ifdef SK_TRACE_VK_RESOURCES
|
||||
if (GrVkResource::fTrace.count()) {
|
||||
SkTDynamicHash<GrVkResource, uint32_t>::Iter iter(&GrVkResource::fTrace);
|
||||
for (; !iter.done(); ++iter) {
|
||||
(*iter).dumpInfo();
|
||||
}
|
||||
}
|
||||
SkASSERT(0 == GrVkResource::fTrace.count());
|
||||
#endif
|
||||
}
|
||||
|
||||
void GrVkResourceProvider::abandonResources() {
|
||||
@ -368,16 +358,6 @@ void GrVkResourceProvider::abandonResources() {
|
||||
|
||||
fUniformDescLayout = VK_NULL_HANDLE;
|
||||
fUniformDescPool->unrefAndAbandon();
|
||||
|
||||
#ifdef SK_TRACE_VK_RESOURCES
|
||||
if (GrVkResource::fTrace.count()) {
|
||||
SkTDynamicHash<GrVkResource, uint32_t>::Iter iter(&GrVkResource::fTrace);
|
||||
for (; !iter.done(); ++iter) {
|
||||
(*iter).dumpInfo();
|
||||
}
|
||||
}
|
||||
SkASSERT(0 == GrVkResource::fTrace.count());
|
||||
#endif
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
Reference in New Issue
Block a user