summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorgman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 01:07:23 +0000
committergman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 01:07:23 +0000
commit2d9d3b933d3c23f1a311071231337aa9b19433d6 (patch)
tree0b52cf6e449a3001b60072eca1374eeb8b5c7f3a /gpu
parentac228bbc6e0ab4c05604ebe518e3beab5202e208 (diff)
downloadchromium_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.cc4
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc20
-rw-r--r--gpu/command_buffer/service/memory_tracking.h17
-rw-r--r--gpu/command_buffer/service/renderbuffer_manager.cc4
-rw-r--r--gpu/command_buffer/service/texture_manager.cc10
-rw-r--r--gpu/command_buffer/service/texture_manager_unittest.cc6
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);