From 5955202c805c7ef1448103cbf666972ea9d1ded1 Mon Sep 17 00:00:00 2001 From: "robertphillips@google.com" Date: Fri, 31 Aug 2012 13:07:37 +0000 Subject: [PATCH] Allow cache tracking to be enabled in release https://codereview.appspot.com/6500057/ git-svn-id: http://skia.googlecode.com/svn/trunk@5365 2bbb7eff-a529-9590-31e7-b0007b416f81 --- gm/gmmain.cpp | 2 +- include/gpu/GrConfig.h | 5 +++++ include/gpu/GrContext.h | 3 ++- src/gpu/GrContext.cpp | 2 +- src/gpu/GrResourceCache.cpp | 13 ++++++++----- src/gpu/GrResourceCache.h | 8 ++++++-- 6 files changed, 23 insertions(+), 10 deletions(-) diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp index feee33d..f13d99f 100644 --- a/gm/gmmain.cpp +++ b/gm/gmmain.cpp @@ -1151,7 +1151,7 @@ int main(int argc, char * const argv[]) { #if SK_SUPPORT_GPU -#if SK_DEBUG +#if GR_CACHE_STATS for (int i = 0; i < configs.count(); i++) { ConfigData config = gRec[configs[i]]; diff --git a/include/gpu/GrConfig.h b/include/gpu/GrConfig.h index 327dbb4..c61c34e 100644 --- a/include/gpu/GrConfig.h +++ b/include/gpu/GrConfig.h @@ -11,6 +11,8 @@ #ifndef GrConfig_DEFINED #define GrConfig_DEFINED +#include "SkTypes.h" + /////////////////////////////////////////////////////////////////////////////// // preconfig section: // @@ -48,6 +50,9 @@ #if !defined(GR_QNX_BUILD) #define GR_QNX_BUILD 0 #endif +#if !defined(GR_CACHE_STATS) + #define GR_CACHE_STATS 0 +#endif /** * If no build target has been defined, attempt to infer. diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h index d4657a7..f456a81 100644 --- a/include/gpu/GrContext.h +++ b/include/gpu/GrContext.h @@ -10,6 +10,7 @@ #ifndef GrContext_DEFINED #define GrContext_DEFINED +#include "GrConfig.h" #include "GrPaint.h" #include "GrAARectRenderer.h" #include "GrClipData.h" @@ -775,7 +776,7 @@ public: bool antiAlias, bool allowSW); -#ifdef GR_DEBUG +#if GR_CACHE_STATS void printCacheStats() const; #endif diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp index 6a4a557..2c724b5 100644 --- a/src/gpu/GrContext.cpp +++ b/src/gpu/GrContext.cpp @@ -1964,7 +1964,7 @@ GrTexture* GrContext::gaussianBlur(GrTexture* srcTexture, } /////////////////////////////////////////////////////////////////////////////// -#if GR_DEBUG +#if GR_CACHE_STATS void GrContext::printCacheStats() const { fTextureCache->printStats(); } diff --git a/src/gpu/GrResourceCache.cpp b/src/gpu/GrResourceCache.cpp index 3a3bd73..ee127c8 100644 --- a/src/gpu/GrResourceCache.cpp +++ b/src/gpu/GrResourceCache.cpp @@ -68,7 +68,7 @@ public: GrResourceCache::GrResourceCache(int maxCount, size_t maxBytes) : fMaxCount(maxCount), fMaxBytes(maxBytes) { -#if GR_DEBUG +#if GR_CACHE_STATS fHighWaterEntryCount = 0; fHighWaterUnlockedEntryCount = 0; fHighWaterEntryBytes = 0; @@ -137,7 +137,7 @@ void GrResourceCache::internalDetach(GrResourceEntry* entry, fClientDetachedCount += 1; fClientDetachedBytes += entry->resource()->sizeInBytes(); -#if GR_DEBUG +#if GR_CACHE_STATS if (fHighWaterClientDetachedCount < fClientDetachedCount) { fHighWaterClientDetachedCount = fClientDetachedCount; } @@ -158,7 +158,7 @@ void GrResourceCache::attachToHead(GrResourceEntry* entry, if (!entry->isLocked()) { ++fUnlockedEntryCount; -#if GR_DEBUG +#if GR_CACHE_STATS if (fHighWaterUnlockedEntryCount < fUnlockedEntryCount) { fHighWaterUnlockedEntryCount = fUnlockedEntryCount; } @@ -173,7 +173,7 @@ void GrResourceCache::attachToHead(GrResourceEntry* entry, fEntryCount += 1; fEntryBytes += entry->resource()->sizeInBytes(); -#if GR_DEBUG +#if GR_CACHE_STATS if (fHighWaterEntryCount < fEntryCount) { fHighWaterEntryCount = fEntryCount; } @@ -308,7 +308,7 @@ void GrResourceCache::unlock(GrResourceEntry* entry) { entry->unlock(); if (!entry->isLocked()) { ++fUnlockedEntryCount; -#if GR_DEBUG +#if GR_CACHE_STATS if (fHighWaterUnlockedEntryCount < fUnlockedEntryCount) { fHighWaterUnlockedEntryCount = fUnlockedEntryCount; } @@ -472,6 +472,9 @@ void GrResourceCache::validate() const { GrAssert(fExclusiveList.countEntries() == fClientDetachedCount); } +#endif // GR_DEBUG + +#if GR_CACHE_STATS void GrResourceCache::printStats() const { SkDebugf("Budget: %d items %d bytes\n", fMaxCount, fMaxBytes); diff --git a/src/gpu/GrResourceCache.h b/src/gpu/GrResourceCache.h index 00e62ea..bfa528d 100644 --- a/src/gpu/GrResourceCache.h +++ b/src/gpu/GrResourceCache.h @@ -11,6 +11,7 @@ #ifndef GrResourceCache_DEFINED #define GrResourceCache_DEFINED +#include "GrConfig.h" #include "GrTypes.h" #include "GrTHashCache.h" #include "SkTDLinkedList.h" @@ -297,11 +298,14 @@ public: #if GR_DEBUG void validate() const; - void printStats() const; #else void validate() const {} #endif +#if GR_CACHE_STATS + void printStats() const; +#endif + private: void internalDetach(GrResourceEntry*, bool); void attachToHead(GrResourceEntry*, bool); @@ -326,7 +330,7 @@ private: size_t fMaxBytes; // our current stats, related to our budget -#if GR_DEBUG +#if GR_CACHE_STATS int fHighWaterEntryCount; int fHighWaterUnlockedEntryCount; size_t fHighWaterEntryBytes; -- 2.7.4