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
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 @@
#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 @@
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 @@
}
///////////////////////////////////////////////////////////////////////////////
-#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 @@
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 @@
fClientDetachedCount += 1;
fClientDetachedBytes += entry->resource()->sizeInBytes();
-#if GR_DEBUG
+#if GR_CACHE_STATS
if (fHighWaterClientDetachedCount < fClientDetachedCount) {
fHighWaterClientDetachedCount = fClientDetachedCount;
}
@@ -158,7 +158,7 @@
if (!entry->isLocked()) {
++fUnlockedEntryCount;
-#if GR_DEBUG
+#if GR_CACHE_STATS
if (fHighWaterUnlockedEntryCount < fUnlockedEntryCount) {
fHighWaterUnlockedEntryCount = fUnlockedEntryCount;
}
@@ -173,7 +173,7 @@
fEntryCount += 1;
fEntryBytes += entry->resource()->sizeInBytes();
-#if GR_DEBUG
+#if GR_CACHE_STATS
if (fHighWaterEntryCount < fEntryCount) {
fHighWaterEntryCount = fEntryCount;
}
@@ -308,7 +308,7 @@
entry->unlock();
if (!entry->isLocked()) {
++fUnlockedEntryCount;
-#if GR_DEBUG
+#if GR_CACHE_STATS
if (fHighWaterUnlockedEntryCount < fUnlockedEntryCount) {
fHighWaterUnlockedEntryCount = fUnlockedEntryCount;
}
@@ -472,6 +472,9 @@
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 @@
#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 @@
size_t fMaxBytes;
// our current stats, related to our budget
-#if GR_DEBUG
+#if GR_CACHE_STATS
int fHighWaterEntryCount;
int fHighWaterUnlockedEntryCount;
size_t fHighWaterEntryBytes;