diff options
author | hendrikw <hendrikw@chromium.org> | 2015-03-04 10:33:49 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-04 10:33:50 -0800 |
commit | 876c3132d75966829ad58b2f9b2957d50457cc29 (patch) | |
tree | 102a04aa6eaa8cbac7491ddf052382004d1aa577 /src/gpu | |
parent | 8c7ba092a68836c5db95c2a80b74d4f9cb475cc2 (diff) |
skia: Add tracing for skia's budget
We've run into several places where GPU rasterization slows down a lot,
and in some cases, it's due to use reaching skia's budget. This shows a
graph of skia's used and free budgeted memory.
Review URL: https://codereview.chromium.org/977143002
Diffstat (limited to 'src/gpu')
-rw-r--r-- | src/gpu/GrResourceCache.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gpu/GrResourceCache.cpp b/src/gpu/GrResourceCache.cpp index aed31b73d2..8b44568338 100644 --- a/src/gpu/GrResourceCache.cpp +++ b/src/gpu/GrResourceCache.cpp @@ -9,6 +9,7 @@ #include "GrResourceCache.h" #include "GrGpuResourceCacheAccess.h" +#include "GrTracing.h" #include "SkChecksum.h" #include "SkGr.h" #include "SkMessageBus.h" @@ -108,6 +109,8 @@ void GrResourceCache::insertResource(GrGpuResource* resource) { if (resource->resourcePriv().isBudgeted()) { ++fBudgetedCount; fBudgetedBytes += size; + TRACE_COUNTER2(TRACE_DISABLED_BY_DEFAULT("skia.gpu.cache"), "skia budget", "used", + fBudgetedBytes, "free", fMaxBytes - fBudgetedBytes); #if GR_CACHE_STATS fBudgetedHighWaterCount = SkTMax(fBudgetedCount, fBudgetedHighWaterCount); fBudgetedHighWaterBytes = SkTMax(fBudgetedBytes, fBudgetedHighWaterBytes); @@ -137,6 +140,8 @@ void GrResourceCache::removeResource(GrGpuResource* resource) { if (resource->resourcePriv().isBudgeted()) { --fBudgetedCount; fBudgetedBytes -= size; + TRACE_COUNTER2(TRACE_DISABLED_BY_DEFAULT("skia.gpu.cache"), "skia budget", "used", + fBudgetedBytes, "free", fMaxBytes - fBudgetedBytes); } if (resource->resourcePriv().getScratchKey().isValid()) { @@ -351,6 +356,8 @@ void GrResourceCache::didChangeGpuMemorySize(const GrGpuResource* resource, size #endif if (resource->resourcePriv().isBudgeted()) { fBudgetedBytes += delta; + TRACE_COUNTER2(TRACE_DISABLED_BY_DEFAULT("skia.gpu.cache"), "skia budget", "used", + fBudgetedBytes, "free", fMaxBytes - fBudgetedBytes); #if GR_CACHE_STATS fBudgetedHighWaterBytes = SkTMax(fBudgetedBytes, fBudgetedHighWaterBytes); #endif @@ -378,6 +385,8 @@ void GrResourceCache::didChangeBudgetStatus(GrGpuResource* resource) { --fBudgetedCount; fBudgetedBytes -= size; } + TRACE_COUNTER2(TRACE_DISABLED_BY_DEFAULT("skia.gpu.cache"), "skia budget", "used", + fBudgetedBytes, "free", fMaxBytes - fBudgetedBytes); this->validate(); } |