Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2492)

Unified Diff: cc/prioritized_texture_manager.cc

Issue 11232051: Remove static thread pointers from CC (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/prioritized_texture_manager.cc
diff --git a/cc/prioritized_texture_manager.cc b/cc/prioritized_texture_manager.cc
index 1b18be2aa5ef4e8a80b3a1e10d03dfb7194a21c5..4cae7aafc5183c4ef1637f39445b74219c59148a 100644
--- a/cc/prioritized_texture_manager.cc
+++ b/cc/prioritized_texture_manager.cc
@@ -17,8 +17,9 @@ using namespace std;
namespace cc {
-CCPrioritizedTextureManager::CCPrioritizedTextureManager(size_t maxMemoryLimitBytes, int, int pool)
- : m_maxMemoryLimitBytes(maxMemoryLimitBytes)
+CCPrioritizedTextureManager::CCPrioritizedTextureManager(size_t maxMemoryLimitBytes, int, int pool, CCProxy* proxy)
+ : m_proxy(proxy)
+ , m_maxMemoryLimitBytes(maxMemoryLimitBytes)
, m_memoryUseBytes(0)
, m_memoryAboveCutoffBytes(0)
, m_memoryAvailableBytes(0)
@@ -42,7 +43,7 @@ CCPrioritizedTextureManager::~CCPrioritizedTextureManager()
void CCPrioritizedTextureManager::prioritizeTextures()
{
TRACE_EVENT0("cc", "CCPrioritizedTextureManager::prioritizeTextures");
- DCHECK(CCProxy::isMainThread());
+ DCHECK(m_proxy->isMainThread());
// Sorting textures in this function could be replaced by a slightly
// modified O(n) quick-select to partition textures rather than
@@ -102,7 +103,7 @@ void CCPrioritizedTextureManager::prioritizeTextures()
void CCPrioritizedTextureManager::pushTexturePrioritiesToBackings()
{
TRACE_EVENT0("cc", "CCPrioritizedTextureManager::pushTexturePrioritiesToBackings");
- DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked());
+ DCHECK(m_proxy->isImplThread() && m_proxy->isMainThreadBlocked());
assertInvariants();
for (BackingList::iterator it = m_backings.begin(); it != m_backings.end(); ++it)
@@ -114,7 +115,7 @@ void CCPrioritizedTextureManager::pushTexturePrioritiesToBackings()
void CCPrioritizedTextureManager::updateBackingsInDrawingImplTree()
{
TRACE_EVENT0("cc", "CCPrioritizedTextureManager::updateBackingsInDrawingImplTree");
- DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked());
+ DCHECK(m_proxy->isImplThread() && m_proxy->isMainThreadBlocked());
assertInvariants();
for (BackingList::iterator it = m_backings.begin(); it != m_backings.end(); ++it) {
@@ -128,7 +129,7 @@ void CCPrioritizedTextureManager::updateBackingsInDrawingImplTree()
void CCPrioritizedTextureManager::sortBackings()
{
TRACE_EVENT0("cc", "CCPrioritizedTextureManager::sortBackings");
- DCHECK(CCProxy::isImplThread());
+ DCHECK(m_proxy->isImplThread());
// Put backings in eviction/recycling order.
m_backings.sort(compareBackings);
@@ -137,7 +138,7 @@ void CCPrioritizedTextureManager::sortBackings()
void CCPrioritizedTextureManager::clearPriorities()
{
- DCHECK(CCProxy::isMainThread());
+ DCHECK(m_proxy->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
@@ -149,7 +150,7 @@ void CCPrioritizedTextureManager::clearPriorities()
bool CCPrioritizedTextureManager::requestLate(CCPrioritizedTexture* texture)
{
- DCHECK(CCProxy::isMainThread());
+ DCHECK(m_proxy->isMainThread());
// This is already above cutoff, so don't double count it's memory below.
if (texture->isAbovePriorityCutoff())
@@ -169,7 +170,7 @@ bool CCPrioritizedTextureManager::requestLate(CCPrioritizedTexture* texture)
void CCPrioritizedTextureManager::acquireBackingTextureIfNeeded(CCPrioritizedTexture* texture, CCResourceProvider* resourceProvider)
{
- DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked());
+ DCHECK(m_proxy->isImplThread() && m_proxy->isMainThreadBlocked());
DCHECK(!texture->isSelfManaged());
DCHECK(texture->isAbovePriorityCutoff());
if (texture->backing() || !texture->isAbovePriorityCutoff())
@@ -209,7 +210,7 @@ void CCPrioritizedTextureManager::acquireBackingTextureIfNeeded(CCPrioritizedTex
bool CCPrioritizedTextureManager::evictBackingsToReduceMemory(size_t limitBytes, EvictionPriorityPolicy evictionPolicy, CCResourceProvider* resourceProvider)
{
- DCHECK(CCProxy::isImplThread());
+ DCHECK(m_proxy->isImplThread());
if (memoryUseBytes() <= limitBytes)
return false;
@@ -227,7 +228,7 @@ bool CCPrioritizedTextureManager::evictBackingsToReduceMemory(size_t limitBytes,
void CCPrioritizedTextureManager::reduceMemory(CCResourceProvider* resourceProvider)
{
- DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked());
+ DCHECK(m_proxy->isImplThread() && m_proxy->isMainThreadBlocked());
evictBackingsToReduceMemory(m_memoryAvailableBytes, RespectManagerPriorityCutoff, resourceProvider);
DCHECK(memoryUseBytes() <= maxMemoryLimitBytes());
@@ -259,14 +260,14 @@ void CCPrioritizedTextureManager::reduceMemory(CCResourceProvider* resourceProvi
void CCPrioritizedTextureManager::clearAllMemory(CCResourceProvider* resourceProvider)
{
- DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked());
+ DCHECK(m_proxy->isImplThread() && m_proxy->isMainThreadBlocked());
DCHECK(resourceProvider);
evictBackingsToReduceMemory(0, DoNotRespectManagerPriorityCutoff, resourceProvider);
}
bool CCPrioritizedTextureManager::reduceMemoryOnImplThread(size_t limitBytes, CCResourceProvider* resourceProvider)
{
- DCHECK(CCProxy::isImplThread());
+ DCHECK(m_proxy->isImplThread());
DCHECK(resourceProvider);
// If we are in the process of uploading a new frame then the backings at the very end of
// the list are not sorted by priority. Sort them before doing the eviction.
@@ -277,14 +278,14 @@ bool CCPrioritizedTextureManager::reduceMemoryOnImplThread(size_t limitBytes, CC
void CCPrioritizedTextureManager::getEvictedBackings(BackingList& evictedBackings)
{
- DCHECK(CCProxy::isImplThread());
+ DCHECK(m_proxy->isImplThread());
evictedBackings.clear();
evictedBackings.insert(evictedBackings.begin(), m_evictedBackings.begin(), m_evictedBackings.end());
}
void CCPrioritizedTextureManager::unlinkEvictedBackings(const BackingList& evictedBackings)
{
- DCHECK(CCProxy::isMainThread());
+ DCHECK(m_proxy->isMainThread());
for (BackingList::const_iterator it = evictedBackings.begin(); it != evictedBackings.end(); ++it) {
CCPrioritizedTexture::Backing* backing = (*it);
if (backing->owner())
@@ -294,7 +295,7 @@ void CCPrioritizedTextureManager::unlinkEvictedBackings(const BackingList& evict
void CCPrioritizedTextureManager::deleteUnlinkedEvictedBackings()
{
- DCHECK(CCProxy::isMainThread() || (CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()));
+ DCHECK(m_proxy->isMainThread() || (m_proxy->isImplThread() && m_proxy->isMainThreadBlocked()));
BackingList newEvictedBackings;
for (BackingList::const_iterator it = m_evictedBackings.begin(); it != m_evictedBackings.end(); ++it) {
CCPrioritizedTexture::Backing* backing = (*it);
@@ -317,7 +318,7 @@ bool CCPrioritizedTextureManager::linkedEvictedBackingsExist() const
void CCPrioritizedTextureManager::registerTexture(CCPrioritizedTexture* texture)
{
- DCHECK(CCProxy::isMainThread());
+ DCHECK(m_proxy->isMainThread());
DCHECK(texture);
DCHECK(!texture->textureManager());
DCHECK(!texture->backing());
@@ -330,7 +331,7 @@ void CCPrioritizedTextureManager::registerTexture(CCPrioritizedTexture* texture)
void CCPrioritizedTextureManager::unregisterTexture(CCPrioritizedTexture* texture)
{
- DCHECK(CCProxy::isMainThread() || (CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()));
+ DCHECK(m_proxy->isMainThread() || (m_proxy->isImplThread() && m_proxy->isMainThreadBlocked()));
DCHECK(texture);
DCHECK(ContainsKey(m_textures, texture));
@@ -342,14 +343,14 @@ void CCPrioritizedTextureManager::unregisterTexture(CCPrioritizedTexture* textur
void CCPrioritizedTextureManager::returnBackingTexture(CCPrioritizedTexture* texture)
{
- DCHECK(CCProxy::isMainThread() || (CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()));
+ DCHECK(m_proxy->isMainThread() || (m_proxy->isImplThread() && m_proxy->isMainThreadBlocked()));
if (texture->backing())
texture->unlink();
}
CCPrioritizedTexture::Backing* CCPrioritizedTextureManager::createBacking(IntSize size, GLenum format, CCResourceProvider* resourceProvider)
{
- DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked());
+ DCHECK(m_proxy->isImplThread() && m_proxy->isMainThreadBlocked());
DCHECK(resourceProvider);
CCResourceProvider::ResourceId resourceId = resourceProvider->createResource(m_pool, size, format, CCResourceProvider::TextureUsageAny);
CCPrioritizedTexture::Backing* backing = new CCPrioritizedTexture::Backing(resourceId, resourceProvider, size, format);
@@ -359,7 +360,7 @@ CCPrioritizedTexture::Backing* CCPrioritizedTextureManager::createBacking(IntSiz
void CCPrioritizedTextureManager::evictFirstBackingResource(CCResourceProvider* resourceProvider)
{
- DCHECK(CCProxy::isImplThread());
+ DCHECK(m_proxy->isImplThread());
DCHECK(resourceProvider);
DCHECK(!m_backings.empty());
CCPrioritizedTexture::Backing* backing = m_backings.front();
@@ -377,7 +378,7 @@ void CCPrioritizedTextureManager::evictFirstBackingResource(CCResourceProvider*
void CCPrioritizedTextureManager::assertInvariants()
{
#ifndef NDEBUG
- DCHECK(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked());
+ DCHECK(m_proxy->isImplThread() && m_proxy->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

Powered by Google App Engine
This is Rietveld 408576698