aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
diff options
context:
space:
mode:
authorGravatar hendrikw <hendrikw@chromium.org>2015-03-04 10:33:49 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-03-04 10:33:50 -0800
commit876c3132d75966829ad58b2f9b2957d50457cc29 (patch)
tree102a04aa6eaa8cbac7491ddf052382004d1aa577 /src/gpu
parent8c7ba092a68836c5db95c2a80b74d4f9cb475cc2 (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.cpp9
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();
}