Index: cc/CCPrioritizedTextureManager.cpp |
diff --git a/cc/CCPrioritizedTextureManager.cpp b/cc/CCPrioritizedTextureManager.cpp |
index a609548c2f85646652b9171306fe1a90d7b2d2fd..24ac419fc8c61d34866c96ea4a6ddba342846d06 100644 |
--- a/cc/CCPrioritizedTextureManager.cpp |
+++ b/cc/CCPrioritizedTextureManager.cpp |
@@ -35,13 +35,13 @@ CCPrioritizedTextureManager::~CCPrioritizedTextureManager() |
deleteEvictedBackings(); |
// Each remaining backing is a leaked opengl texture. There should be none. |
- ASSERT(m_backings.isEmpty()); |
+ DCHECK(m_backings.isEmpty()); |
} |
void CCPrioritizedTextureManager::prioritizeTextures() |
{ |
TRACE_EVENT0("cc", "CCPrioritizedTextureManager::prioritizeTextures"); |
- ASSERT(CCProxy::isMainThread()); |
+ DCHECK(CCProxy::isMainThread()); |
// Sorting textures in this function could be replaced by a slightly |
// modified O(n) quick-select to partition textures rather than |
@@ -96,21 +96,19 @@ void CCPrioritizedTextureManager::prioritizeTextures() |
m_needsUpdateBackingsPrioritites = true; |
- ASSERT(m_memoryAboveCutoffBytes <= m_memoryAvailableBytes); |
- ASSERT(memoryAboveCutoffBytes() <= maxMemoryLimitBytes()); |
+ DCHECK(m_memoryAboveCutoffBytes <= m_memoryAvailableBytes); |
+ DCHECK(memoryAboveCutoffBytes() <= maxMemoryLimitBytes()); |
} |
void CCPrioritizedTextureManager::updateBackingsPriorities() |
{ |
TRACE_EVENT0("cc", "CCPrioritizedTextureManager::updateBackingsPriorities"); |
- ASSERT(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
+ DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
if (!m_needsUpdateBackingsPrioritites) |
return; |
-#if !ASSERT_DISABLED |
assertInvariants(); |
-#endif |
// Update backings' priorities and put backings in eviction/recycling order. |
BackingVector& sortedBackings = m_tempBackingVector; |
@@ -128,14 +126,12 @@ void CCPrioritizedTextureManager::updateBackingsPriorities() |
sortedBackings.clear(); |
m_needsUpdateBackingsPrioritites = false; |
-#if !ASSERT_DISABLED |
assertInvariants(); |
-#endif |
} |
void CCPrioritizedTextureManager::clearPriorities() |
{ |
- ASSERT(CCProxy::isMainThread()); |
+ DCHECK(CCProxy::isMainThread()); |
for (TextureSet::iterator it = m_textures.begin(); it != m_textures.end(); ++it) { |
// FIXME: We should remove this and just set all priorities to |
// CCPriorityCalculator::lowestPriority() once we have priorities |
@@ -147,7 +143,7 @@ void CCPrioritizedTextureManager::clearPriorities() |
bool CCPrioritizedTextureManager::requestLate(CCPrioritizedTexture* texture) |
{ |
- ASSERT(CCProxy::isMainThread()); |
+ DCHECK(CCProxy::isMainThread()); |
// This is already above cutoff, so don't double count it's memory below. |
if (texture->isAbovePriorityCutoff()) |
@@ -168,9 +164,9 @@ bool CCPrioritizedTextureManager::requestLate(CCPrioritizedTexture* texture) |
void CCPrioritizedTextureManager::acquireBackingTextureIfNeeded(CCPrioritizedTexture* texture, CCResourceProvider* resourceProvider) |
{ |
- ASSERT(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
- ASSERT(!texture->isSelfManaged()); |
- ASSERT(texture->isAbovePriorityCutoff()); |
+ DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
+ DCHECK(!texture->isSelfManaged()); |
+ DCHECK(texture->isAbovePriorityCutoff()); |
if (texture->backing() || !texture->isAbovePriorityCutoff()) |
return; |
@@ -209,7 +205,7 @@ void CCPrioritizedTextureManager::acquireBackingTextureIfNeeded(CCPrioritizedTex |
void CCPrioritizedTextureManager::evictBackingsToReduceMemory(size_t limitBytes, EvictionPriorityPolicy evictionPolicy, CCResourceProvider* resourceProvider) |
{ |
- ASSERT(CCProxy::isImplThread()); |
+ DCHECK(CCProxy::isImplThread()); |
if (memoryUseBytes() <= limitBytes) |
return; |
@@ -226,13 +222,13 @@ void CCPrioritizedTextureManager::evictBackingsToReduceMemory(size_t limitBytes, |
void CCPrioritizedTextureManager::reduceMemory(CCResourceProvider* resourceProvider) |
{ |
- ASSERT(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
+ DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
// Make sure that the backings list is up to date and sorted before traversing it. |
updateBackingsPriorities(); |
evictBackingsToReduceMemory(m_memoryAvailableBytes, RespectManagerPriorityCutoff, resourceProvider); |
- ASSERT(memoryUseBytes() <= maxMemoryLimitBytes()); |
+ DCHECK(memoryUseBytes() <= maxMemoryLimitBytes()); |
// We currently collect backings from deleted textures for later recycling. |
// However, if we do that forever we will always use the max limit even if |
@@ -254,29 +250,29 @@ void CCPrioritizedTextureManager::reduceMemory(CCResourceProvider* resourceProvi |
void CCPrioritizedTextureManager::clearAllMemory(CCResourceProvider* resourceProvider) |
{ |
- ASSERT(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
- ASSERT(resourceProvider); |
+ DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
+ DCHECK(resourceProvider); |
evictBackingsToReduceMemory(0, DoNotRespectManagerPriorityCutoff, resourceProvider); |
deleteEvictedBackings(); |
} |
void CCPrioritizedTextureManager::reduceMemoryOnImplThread(size_t limitBytes, CCResourceProvider* resourceProvider) |
{ |
- ASSERT(CCProxy::isImplThread()); |
- ASSERT(resourceProvider); |
+ DCHECK(CCProxy::isImplThread()); |
+ DCHECK(resourceProvider); |
evictBackingsToReduceMemory(limitBytes, DoNotRespectManagerPriorityCutoff, resourceProvider); |
} |
void CCPrioritizedTextureManager::getEvictedBackings(BackingVector& evictedBackings) |
{ |
- ASSERT(CCProxy::isImplThread()); |
+ DCHECK(CCProxy::isImplThread()); |
evictedBackings.clear(); |
evictedBackings.append(m_evictedBackings); |
} |
void CCPrioritizedTextureManager::unlinkEvictedBackings(const BackingVector& evictedBackings) |
{ |
- ASSERT(CCProxy::isMainThread()); |
+ DCHECK(CCProxy::isMainThread()); |
for (BackingVector::const_iterator it = evictedBackings.begin(); it != evictedBackings.end(); ++it) { |
CCPrioritizedTexture::Backing* backing = (*it); |
if (backing->owner()) |
@@ -286,7 +282,7 @@ void CCPrioritizedTextureManager::unlinkEvictedBackings(const BackingVector& evi |
bool CCPrioritizedTextureManager::deleteEvictedBackings() |
{ |
- ASSERT(CCProxy::isMainThread() || (CCProxy::isImplThread() && CCProxy::isMainThreadBlocked())); |
+ DCHECK(CCProxy::isMainThread() || (CCProxy::isImplThread() && CCProxy::isMainThreadBlocked())); |
bool linkedEvictedBackingsExisted = false; |
for (BackingVector::const_iterator it = m_evictedBackings.begin(); it != m_evictedBackings.end(); ++it) { |
CCPrioritizedTexture::Backing* backing = (*it); |
@@ -302,11 +298,11 @@ bool CCPrioritizedTextureManager::deleteEvictedBackings() |
void CCPrioritizedTextureManager::registerTexture(CCPrioritizedTexture* texture) |
{ |
- ASSERT(CCProxy::isMainThread()); |
- ASSERT(texture); |
- ASSERT(!texture->textureManager()); |
- ASSERT(!texture->backing()); |
- ASSERT(!ContainsKey(m_textures, texture)); |
+ DCHECK(CCProxy::isMainThread()); |
+ DCHECK(texture); |
+ DCHECK(!texture->textureManager()); |
+ DCHECK(!texture->backing()); |
+ DCHECK(!ContainsKey(m_textures, texture)); |
texture->setManagerInternal(this); |
m_textures.insert(texture); |
@@ -315,9 +311,9 @@ void CCPrioritizedTextureManager::registerTexture(CCPrioritizedTexture* texture) |
void CCPrioritizedTextureManager::unregisterTexture(CCPrioritizedTexture* texture) |
{ |
- ASSERT(CCProxy::isMainThread() || (CCProxy::isImplThread() && CCProxy::isMainThreadBlocked())); |
- ASSERT(texture); |
- ASSERT(ContainsKey(m_textures, texture)); |
+ DCHECK(CCProxy::isMainThread() || (CCProxy::isImplThread() && CCProxy::isMainThreadBlocked())); |
+ DCHECK(texture); |
+ DCHECK(ContainsKey(m_textures, texture)); |
returnBackingTexture(texture); |
texture->setManagerInternal(0); |
@@ -327,7 +323,7 @@ void CCPrioritizedTextureManager::unregisterTexture(CCPrioritizedTexture* textur |
void CCPrioritizedTextureManager::returnBackingTexture(CCPrioritizedTexture* texture) |
{ |
- ASSERT(CCProxy::isMainThread() || (CCProxy::isImplThread() && CCProxy::isMainThreadBlocked())); |
+ DCHECK(CCProxy::isMainThread() || (CCProxy::isImplThread() && CCProxy::isMainThreadBlocked())); |
if (texture->backing()) { |
texture->unlink(); |
m_needsUpdateBackingsPrioritites = true; |
@@ -336,8 +332,8 @@ void CCPrioritizedTextureManager::returnBackingTexture(CCPrioritizedTexture* tex |
CCPrioritizedTexture::Backing* CCPrioritizedTextureManager::createBacking(IntSize size, GC3Denum format, CCResourceProvider* resourceProvider) |
{ |
- ASSERT(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
- ASSERT(resourceProvider); |
+ DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
+ DCHECK(resourceProvider); |
CCResourceProvider::ResourceId resourceId = resourceProvider->createResource(m_pool, size, format, CCResourceProvider::TextureUsageAny); |
CCPrioritizedTexture::Backing* backing = new CCPrioritizedTexture::Backing(resourceId, resourceProvider, size, format); |
m_memoryUseBytes += backing->bytes(); |
@@ -348,10 +344,10 @@ CCPrioritizedTexture::Backing* CCPrioritizedTextureManager::createBacking(IntSiz |
void CCPrioritizedTextureManager::evictBackingResource(CCPrioritizedTexture::Backing* backing, CCResourceProvider* resourceProvider) |
{ |
- ASSERT(CCProxy::isImplThread()); |
- ASSERT(backing); |
- ASSERT(resourceProvider); |
- ASSERT(m_backings.find(backing) != m_backings.end()); |
+ DCHECK(CCProxy::isImplThread()); |
+ DCHECK(backing); |
+ DCHECK(resourceProvider); |
+ DCHECK(m_backings.find(backing) != m_backings.end()); |
// Note that we create a backing and its resource at the same time, but we |
// delete the backing structure and its resource in two steps. This is because |
@@ -363,10 +359,12 @@ void CCPrioritizedTextureManager::evictBackingResource(CCPrioritizedTexture::Bac |
m_evictedBackings.append(backing); |
} |
-#if !ASSERT_DISABLED |
void CCPrioritizedTextureManager::assertInvariants() |
{ |
- ASSERT(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
+ if (!DCHECK_IS_ON()) |
+ return; |
+ |
+ DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); |
// If we hit any of these asserts, there is a bug in this class. To see |
// where the bug is, call this function at the beginning and end of |
@@ -375,14 +373,14 @@ void CCPrioritizedTextureManager::assertInvariants() |
// Backings/textures must be doubly-linked and only to other backings/textures in this manager. |
for (BackingSet::iterator it = m_backings.begin(); it != m_backings.end(); ++it) { |
if ((*it)->owner()) { |
- ASSERT(ContainsKey(m_textures, (*it)->owner())); |
- ASSERT((*it)->owner()->backing() == (*it)); |
+ DCHECK(ContainsKey(m_textures, (*it)->owner())); |
+ DCHECK((*it)->owner()->backing() == (*it)); |
} |
} |
for (TextureSet::iterator it = m_textures.begin(); it != m_textures.end(); ++it) { |
if ((*it)->backing()) { |
- ASSERT(m_backings.find((*it)->backing()) != m_backings.end()); |
- ASSERT((*it)->backing()->owner() == (*it)); |
+ DCHECK(m_backings.find((*it)->backing()) != m_backings.end()); |
+ DCHECK((*it)->backing()->owner() == (*it)); |
} |
} |
@@ -397,14 +395,13 @@ void CCPrioritizedTextureManager::assertInvariants() |
if ((*it)->wasAbovePriorityCutoffAtLastPriorityUpdate()) |
reachedAboveCutoff = true; |
if (reachedOwned) |
- ASSERT((*it)->hadOwnerAtLastPriorityUpdate()); |
+ DCHECK((*it)->hadOwnerAtLastPriorityUpdate()); |
if (reachedAboveCutoff) { |
- ASSERT((*it)->hadOwnerAtLastPriorityUpdate() && (*it)->wasAbovePriorityCutoffAtLastPriorityUpdate()); |
- ASSERT(reachedOwned); |
+ DCHECK((*it)->hadOwnerAtLastPriorityUpdate() && (*it)->wasAbovePriorityCutoffAtLastPriorityUpdate()); |
+ DCHECK(reachedOwned); |
} |
} |
} |
-#endif |
} // namespace cc |