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

Side by Side Diff: gpu/command_buffer/service/buffer_manager.cc

Issue 10796096: Add tracing of all memory allocated in all contexts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More trybot constructor fixes Created 8 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/buffer_manager.h" 5 #include "gpu/command_buffer/service/buffer_manager.h"
6 #include "base/debug/trace_event.h" 6 #include "base/debug/trace_event.h"
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 8 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
9 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 9 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
10 #include "gpu/command_buffer/service/memory_tracking.h"
10 11
11 namespace gpu { 12 namespace gpu {
12 namespace gles2 { 13 namespace gles2 {
13 14
14 BufferManager::BufferManager() 15 BufferManager::BufferManager(MemoryTracker* memory_tracker)
15 : allow_buffers_on_multiple_targets_(false), 16 : buffer_memory_tracker_(new MemoryTypeTracker(
17 memory_tracker,
18 "BufferManager",
19 "BufferMemory")),
20 allow_buffers_on_multiple_targets_(false),
16 mem_represented_(0), 21 mem_represented_(0),
17 last_reported_mem_represented_(1),
18 buffer_info_count_(0), 22 buffer_info_count_(0),
19 have_context_(true) { 23 have_context_(true) {
20 UpdateMemRepresented(); 24 UpdateMemRepresented();
21 } 25 }
22 26
23 BufferManager::~BufferManager() { 27 BufferManager::~BufferManager() {
24 DCHECK(buffer_infos_.empty()); 28 DCHECK(buffer_infos_.empty());
25 CHECK_EQ(buffer_info_count_, 0u); 29 CHECK_EQ(buffer_info_count_, 0u);
26 } 30 }
27 31
28 void BufferManager::Destroy(bool have_context) { 32 void BufferManager::Destroy(bool have_context) {
29 have_context_ = have_context; 33 have_context_ = have_context;
30 buffer_infos_.clear(); 34 buffer_infos_.clear();
31 DCHECK_EQ(0u, mem_represented_); 35 DCHECK_EQ(0u, mem_represented_);
32 UpdateMemRepresented(); 36 UpdateMemRepresented();
33 } 37 }
34 38
35 void BufferManager::UpdateMemRepresented() { 39 void BufferManager::UpdateMemRepresented() {
36 if (mem_represented_ != last_reported_mem_represented_) { 40 buffer_memory_tracker_->UpdateMemRepresented(mem_represented_);
37 last_reported_mem_represented_ = mem_represented_;
38 TRACE_COUNTER_ID1(
39 "BufferManager", "BufferMemory", this, mem_represented_);
40 }
41 } 41 }
42 42
43 void BufferManager::CreateBufferInfo(GLuint client_id, GLuint service_id) { 43 void BufferManager::CreateBufferInfo(GLuint client_id, GLuint service_id) {
44 BufferInfo::Ref buffer(new BufferInfo(this, service_id)); 44 BufferInfo::Ref buffer(new BufferInfo(this, service_id));
45 std::pair<BufferInfoMap::iterator, bool> result = 45 std::pair<BufferInfoMap::iterator, bool> result =
46 buffer_infos_.insert(std::make_pair(client_id, buffer)); 46 buffer_infos_.insert(std::make_pair(client_id, buffer));
47 DCHECK(result.second); 47 DCHECK(result.second);
48 } 48 }
49 49
50 BufferManager::BufferInfo* BufferManager::GetBufferInfo( 50 BufferManager::BufferInfo* BufferManager::GetBufferInfo(
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 if (info->target() == 0) { 237 if (info->target() == 0) {
238 info->set_target(target); 238 info->set_target(target);
239 } 239 }
240 return true; 240 return true;
241 } 241 }
242 242
243 } // namespace gles2 243 } // namespace gles2
244 } // namespace gpu 244 } // namespace gpu
245 245
246 246
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/buffer_manager.h ('k') | gpu/command_buffer/service/buffer_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698