diff options
author | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-18 01:07:23 +0000 |
---|---|---|
committer | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-18 01:07:23 +0000 |
commit | 2d9d3b933d3c23f1a311071231337aa9b19433d6 (patch) | |
tree | 0b52cf6e449a3001b60072eca1374eeb8b5c7f3a /gpu | |
parent | ac228bbc6e0ab4c05604ebe518e3beab5202e208 (diff) | |
download | chromium_src-2d9d3b933d3c23f1a311071231337aa9b19433d6.zip chromium_src-2d9d3b933d3c23f1a311071231337aa9b19433d6.tar.gz chromium_src-2d9d3b933d3c23f1a311071231337aa9b19433d6.tar.bz2 |
Make MemoryTypeTracker::UpdateMemRepresented private
BUG=none
Review URL: https://chromiumcodereview.appspot.com/11931007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177559 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r-- | gpu/command_buffer/service/buffer_manager.cc | 4 | ||||
-rw-r--r-- | gpu/command_buffer/service/gles2_cmd_decoder.cc | 20 | ||||
-rw-r--r-- | gpu/command_buffer/service/memory_tracking.h | 17 | ||||
-rw-r--r-- | gpu/command_buffer/service/renderbuffer_manager.cc | 4 | ||||
-rw-r--r-- | gpu/command_buffer/service/texture_manager.cc | 10 | ||||
-rw-r--r-- | gpu/command_buffer/service/texture_manager_unittest.cc | 6 |
6 files changed, 26 insertions, 35 deletions
diff --git a/gpu/command_buffer/service/buffer_manager.cc b/gpu/command_buffer/service/buffer_manager.cc index 001e602..9d4fe1a 100644 --- a/gpu/command_buffer/service/buffer_manager.cc +++ b/gpu/command_buffer/service/buffer_manager.cc @@ -19,7 +19,6 @@ BufferManager::BufferManager(MemoryTracker* memory_tracker) allow_buffers_on_multiple_targets_(false), buffer_info_count_(0), have_context_(true) { - memory_tracker_->UpdateMemRepresented(); } BufferManager::~BufferManager() { @@ -31,7 +30,6 @@ void BufferManager::Destroy(bool have_context) { have_context_ = have_context; buffer_infos_.clear(); DCHECK_EQ(0u, memory_tracker_->GetMemRepresented()); - memory_tracker_->UpdateMemRepresented(); } void BufferManager::CreateBufferInfo(GLuint client_id, GLuint service_id) { @@ -63,7 +61,6 @@ void BufferManager::StartTracking(BufferManager::BufferInfo* /* buffer */) { void BufferManager::StopTracking(BufferManager::BufferInfo* buffer) { memory_tracker_->TrackMemFree(buffer->size()); --buffer_info_count_; - memory_tracker_->UpdateMemRepresented(); } BufferManager::BufferInfo::BufferInfo(BufferManager* manager, GLuint service_id) @@ -229,7 +226,6 @@ void BufferManager::SetInfo( info->target() == GL_ELEMENT_ARRAY_BUFFER || allow_buffers_on_multiple_targets_); memory_tracker_->TrackMemAlloc(info->size()); - memory_tracker_->UpdateMemRepresented(); } bool BufferManager::SetTarget(BufferManager::BufferInfo* info, GLenum target) { diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index 2c1a468..1379f29 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc @@ -3073,16 +3073,6 @@ void GLES2DecoderImpl::Destroy(bool have_context) { vertex_array_manager_.reset(); } - if (group_) { - group_->Destroy(this, have_context); - group_ = NULL; - } - - if (context_.get()) { - context_->ReleaseCurrent(NULL); - context_ = NULL; - } - offscreen_target_frame_buffer_.reset(); offscreen_target_color_texture_.reset(); offscreen_target_color_render_buffer_.reset(); @@ -3093,6 +3083,16 @@ void GLES2DecoderImpl::Destroy(bool have_context) { offscreen_resolved_frame_buffer_.reset(); offscreen_resolved_color_texture_.reset(); + if (group_) { + group_->Destroy(this, have_context); + group_ = NULL; + } + + if (context_.get()) { + context_->ReleaseCurrent(NULL); + context_ = NULL; + } + #if defined(OS_MACOSX) for (TextureToIOSurfaceMap::iterator it = texture_to_io_surface_map_.begin(); it != texture_to_io_surface_map_.end(); ++it) { diff --git a/gpu/command_buffer/service/memory_tracking.h b/gpu/command_buffer/service/memory_tracking.h index de82ceb..155ed4b 100644 --- a/gpu/command_buffer/service/memory_tracking.h +++ b/gpu/command_buffer/service/memory_tracking.h @@ -45,17 +45,29 @@ class MemoryTypeTracker { has_done_update_(false), mem_represented_(0), mem_represented_at_last_update_(0) { + UpdateMemRepresented(); + } + + ~MemoryTypeTracker() { + UpdateMemRepresented(); } void TrackMemAlloc(size_t bytes) { mem_represented_ += bytes; + UpdateMemRepresented(); } void TrackMemFree(size_t bytes) { DCHECK(bytes <= mem_represented_); mem_represented_ -= bytes; + UpdateMemRepresented(); + } + + size_t GetMemRepresented() const { + return mem_represented_at_last_update_; } + private: void UpdateMemRepresented() { // Skip redundant updates only if we have already done an update. if (!has_done_update_ && @@ -72,11 +84,6 @@ class MemoryTypeTracker { mem_represented_at_last_update_ = mem_represented_; } - size_t GetMemRepresented() const { - return mem_represented_at_last_update_; - } - - private: MemoryTracker* memory_tracker_; MemoryTracker::Pool pool_; bool has_done_update_; diff --git a/gpu/command_buffer/service/renderbuffer_manager.cc b/gpu/command_buffer/service/renderbuffer_manager.cc index e94518a..e842de1 100644 --- a/gpu/command_buffer/service/renderbuffer_manager.cc +++ b/gpu/command_buffer/service/renderbuffer_manager.cc @@ -24,7 +24,6 @@ RenderbufferManager::RenderbufferManager( num_uncleared_renderbuffers_(0), renderbuffer_info_count_(0), have_context_(true) { - memory_tracker_->UpdateMemRepresented(); } RenderbufferManager::~RenderbufferManager() { @@ -64,7 +63,6 @@ void RenderbufferManager::Destroy(bool have_context) { have_context_ = have_context; renderbuffer_infos_.clear(); DCHECK_EQ(0u, memory_tracker_->GetMemRepresented()); - memory_tracker_->UpdateMemRepresented(); } void RenderbufferManager::StartTracking(RenderbufferInfo* /* renderbuffer */) { @@ -77,7 +75,6 @@ void RenderbufferManager::StopTracking(RenderbufferInfo* renderbuffer) { --num_uncleared_renderbuffers_; } memory_tracker_->TrackMemFree(renderbuffer->EstimatedSize()); - memory_tracker_->UpdateMemRepresented(); } void RenderbufferManager::SetInfo( @@ -90,7 +87,6 @@ void RenderbufferManager::SetInfo( memory_tracker_->TrackMemFree(renderbuffer->EstimatedSize()); renderbuffer->SetInfo(samples, internalformat, width, height); memory_tracker_->TrackMemAlloc(renderbuffer->EstimatedSize()); - memory_tracker_->UpdateMemRepresented(); if (!renderbuffer->cleared()) { ++num_uncleared_renderbuffers_; } diff --git a/gpu/command_buffer/service/texture_manager.cc b/gpu/command_buffer/service/texture_manager.cc index 79ce8ac..a9238aa 100644 --- a/gpu/command_buffer/service/texture_manager.cc +++ b/gpu/command_buffer/service/texture_manager.cc @@ -84,8 +84,6 @@ void TextureManager::Destroy(bool have_context) { DCHECK_EQ(0u, memory_tracker_managed_->GetMemRepresented()); DCHECK_EQ(0u, memory_tracker_unmanaged_->GetMemRepresented()); - memory_tracker_managed_->UpdateMemRepresented(); - memory_tracker_unmanaged_->UpdateMemRepresented(); } TextureManager::TextureInfo::TextureInfo(TextureManager* manager, @@ -481,10 +479,8 @@ GLenum TextureManager::TextureInfo::SetParameter( return GL_INVALID_ENUM; } manager_->GetMemTracker(pool_)->TrackMemFree(estimated_size()); - manager_->GetMemTracker(pool_)->UpdateMemRepresented(); pool_ = param; manager_->GetMemTracker(pool_)->TrackMemAlloc(estimated_size()); - manager_->GetMemTracker(pool_)->UpdateMemRepresented(); break; case GL_TEXTURE_WRAP_S: if (!feature_info->validators()->texture_wrap_mode.IsValid(param)) { @@ -729,9 +725,6 @@ TextureManager::TextureManager( } bool TextureManager::Initialize() { - memory_tracker_managed_->UpdateMemRepresented(); - memory_tracker_unmanaged_->UpdateMemRepresented(); - // TODO(gman): The default textures have to be real textures, not the 0 // texture because we simulate non shared resources on top of shared // resources and all contexts that share resource share the same default @@ -930,7 +923,6 @@ void TextureManager::SetLevelInfo( feature_info_, target, level, internal_format, width, height, depth, border, format, type, cleared); GetMemTracker(info->pool_)->TrackMemAlloc(info->estimated_size()); - GetMemTracker(info->pool_)->UpdateMemRepresented(); num_uncleared_mips_ += info->num_uncleared_mips(); if (!info->CanRender(feature_info_)) { @@ -1085,7 +1077,6 @@ bool TextureManager::MarkMipmapsGenerated(TextureManager::TextureInfo* info) { GetMemTracker(info->pool_)->TrackMemFree(info->estimated_size()); bool result = info->MarkMipmapsGenerated(feature_info_); GetMemTracker(info->pool_)->TrackMemAlloc(info->estimated_size()); - GetMemTracker(info->pool_)->UpdateMemRepresented(); num_uncleared_mips_ += info->num_uncleared_mips(); if (!info->CanRender(feature_info_)) { @@ -1146,7 +1137,6 @@ void TextureManager::StopTracking(TextureManager::TextureInfo* texture) { num_uncleared_mips_ -= texture->num_uncleared_mips(); DCHECK_GE(num_uncleared_mips_, 0); GetMemTracker(texture->pool_)->TrackMemFree(texture->estimated_size()); - GetMemTracker(texture->pool_)->UpdateMemRepresented(); } MemoryTypeTracker* TextureManager::GetMemTracker(GLenum tracking_pool) { diff --git a/gpu/command_buffer/service/texture_manager_unittest.cc b/gpu/command_buffer/service/texture_manager_unittest.cc index 2ee24ec..5484705 100644 --- a/gpu/command_buffer/service/texture_manager_unittest.cc +++ b/gpu/command_buffer/service/texture_manager_unittest.cc @@ -445,7 +445,8 @@ TEST_F(TextureInfoMemoryTrackerTest, EstimatedSize) { EXPECT_MEMORY_ALLOCATION_CHANGE(0, 128, MemoryTracker::kUnmanaged); manager_->SetLevelInfo(info_, GL_TEXTURE_2D, 0, GL_RGBA, 8, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); - EXPECT_MEMORY_ALLOCATION_CHANGE(128, 256, MemoryTracker::kUnmanaged); + EXPECT_MEMORY_ALLOCATION_CHANGE(128, 0, MemoryTracker::kUnmanaged); + EXPECT_MEMORY_ALLOCATION_CHANGE(0, 256, MemoryTracker::kUnmanaged); manager_->SetLevelInfo(info_, GL_TEXTURE_2D, 2, GL_RGBA, 8, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); // Add expectation for texture deletion. @@ -517,7 +518,8 @@ TEST_F(TextureInfoMemoryTrackerTest, MarkMipmapsGenerated) { EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64, MemoryTracker::kUnmanaged); manager_->SetLevelInfo(info_, GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); - EXPECT_MEMORY_ALLOCATION_CHANGE(64, 84, MemoryTracker::kUnmanaged); + EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0, MemoryTracker::kUnmanaged); + EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84, MemoryTracker::kUnmanaged); EXPECT_TRUE(manager_->MarkMipmapsGenerated(info_)); EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0, MemoryTracker::kUnmanaged); EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0, MemoryTracker::kUnmanaged); |