OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2014 Google Inc. | 3 * Copyright 2014 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #include "GrResourceCache2.h" | 10 #include "GrResourceCache2.h" |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 void GrResourceCache2::insertResource(GrGpuResource* resource) { | 88 void GrResourceCache2::insertResource(GrGpuResource* resource) { |
89 AutoValidate av(this); | 89 AutoValidate av(this); |
90 | 90 |
91 SkASSERT(resource); | 91 SkASSERT(resource); |
92 SkASSERT(!resource->wasDestroyed()); | 92 SkASSERT(!resource->wasDestroyed()); |
93 SkASSERT(!this->isInCache(resource)); | 93 SkASSERT(!this->isInCache(resource)); |
94 SkASSERT(!fPurging); | 94 SkASSERT(!fPurging); |
95 fResources.addToHead(resource); | 95 fResources.addToHead(resource); |
96 | 96 |
97 ++fCount; | 97 ++fCount; |
98 SkDEBUGCODE(fHighWaterCount = SkTMax(fCount, fHighWaterCount)); | |
99 fBytes += resource->gpuMemorySize(); | 98 fBytes += resource->gpuMemorySize(); |
100 SkDEBUGCODE(fHighWaterBytes = SkTMax(fBytes, fHighWaterBytes)); | 99 #if GR_CACHE_STATS |
| 100 fHighWaterCount = SkTMax(fCount, fHighWaterCount); |
| 101 fHighWaterBytes = SkTMax(fBytes, fHighWaterBytes); |
| 102 #endif |
101 if (!resource->cacheAccess().getScratchKey().isNullScratch()) { | 103 if (!resource->cacheAccess().getScratchKey().isNullScratch()) { |
102 // TODO(bsalomon): Make this assertion possible. | 104 // TODO(bsalomon): Make this assertion possible. |
103 // SkASSERT(!resource->isWrapped()); | 105 // SkASSERT(!resource->isWrapped()); |
104 fScratchMap.insert(resource->cacheAccess().getScratchKey(), resource); | 106 fScratchMap.insert(resource->cacheAccess().getScratchKey(), resource); |
105 } | 107 } |
106 | 108 |
107 this->purgeAsNeeded(); | 109 this->purgeAsNeeded(); |
108 } | 110 } |
109 | 111 |
110 void GrResourceCache2::removeResource(GrGpuResource* resource) { | 112 void GrResourceCache2::removeResource(GrGpuResource* resource) { |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 | 251 |
250 this->validate(); | 252 this->validate(); |
251 } | 253 } |
252 | 254 |
253 void GrResourceCache2::didChangeGpuMemorySize(const GrGpuResource* resource, siz
e_t oldSize) { | 255 void GrResourceCache2::didChangeGpuMemorySize(const GrGpuResource* resource, siz
e_t oldSize) { |
254 // SkASSERT(!fPurging); GrPathRange increases size during flush. :( | 256 // SkASSERT(!fPurging); GrPathRange increases size during flush. :( |
255 SkASSERT(resource); | 257 SkASSERT(resource); |
256 SkASSERT(this->isInCache(resource)); | 258 SkASSERT(this->isInCache(resource)); |
257 | 259 |
258 fBytes += resource->gpuMemorySize() - oldSize; | 260 fBytes += resource->gpuMemorySize() - oldSize; |
259 SkDEBUGCODE(fHighWaterBytes = SkTMax(fBytes, fHighWaterBytes)); | 261 #if GR_CACHE_STATS |
| 262 fHighWaterBytes = SkTMax(fBytes, fHighWaterBytes); |
| 263 #endif |
260 | 264 |
261 this->purgeAsNeeded(); | 265 this->purgeAsNeeded(); |
262 this->validate(); | 266 this->validate(); |
263 } | 267 } |
264 | 268 |
265 void GrResourceCache2::internalPurgeAsNeeded() { | 269 void GrResourceCache2::internalPurgeAsNeeded() { |
266 SkASSERT(!fPurging); | 270 SkASSERT(!fPurging); |
267 SkASSERT(!fNewlyPurgableResourceWhilePurging); | 271 SkASSERT(!fNewlyPurgableResourceWhilePurging); |
268 SkASSERT(fCount > fMaxCount || fBytes > fMaxBytes); | 272 SkASSERT(fCount > fMaxCount || fBytes > fMaxBytes); |
269 | 273 |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 float byteUtilization = (100.f * fBytes) / fMaxBytes; | 407 float byteUtilization = (100.f * fBytes) / fMaxBytes; |
404 | 408 |
405 SkDebugf("Budget: %d items %d bytes\n", fMaxCount, fMaxBytes); | 409 SkDebugf("Budget: %d items %d bytes\n", fMaxCount, fMaxBytes); |
406 SkDebugf("\t\tEntry Count: current %d (%d locked, %d scratch %.2g%% full), h
igh %d\n", | 410 SkDebugf("\t\tEntry Count: current %d (%d locked, %d scratch %.2g%% full), h
igh %d\n", |
407 fCount, locked, scratch, countUtilization, fHighWaterCount); | 411 fCount, locked, scratch, countUtilization, fHighWaterCount); |
408 SkDebugf("\t\tEntry Bytes: current %d (%.2g%% full) high %d\n", | 412 SkDebugf("\t\tEntry Bytes: current %d (%.2g%% full) high %d\n", |
409 fBytes, byteUtilization, fHighWaterBytes); | 413 fBytes, byteUtilization, fHighWaterBytes); |
410 } | 414 } |
411 | 415 |
412 #endif | 416 #endif |
OLD | NEW |