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

Side by Side Diff: gpu/command_buffer/service/memory_tracking.h

Issue 10915293: Simplify tracing of gpu memory (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nitfix Created 8 years, 3 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 #ifndef GPU_COMMAND_BUFFER_SERVICE_MEMORY_TRACKING_H_ 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_MEMORY_TRACKING_H_
6 #define GPU_COMMAND_BUFFER_SERVICE_MEMORY_TRACKING_H_ 6 #define GPU_COMMAND_BUFFER_SERVICE_MEMORY_TRACKING_H_
7 7
8 #include <string> 8 #include <string>
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 14 matching lines...) Expand all
25 25
26 private: 26 private:
27 DISALLOW_COPY_AND_ASSIGN(MemoryTracker); 27 DISALLOW_COPY_AND_ASSIGN(MemoryTracker);
28 }; 28 };
29 29
30 // A MemoryTypeTracker tracks the use of a particular type of memory (buffer, 30 // A MemoryTypeTracker tracks the use of a particular type of memory (buffer,
31 // texture, or renderbuffer) and forward the result to a specified 31 // texture, or renderbuffer) and forward the result to a specified
32 // MemoryTracker. 32 // MemoryTracker.
33 class MemoryTypeTracker { 33 class MemoryTypeTracker {
34 public: 34 public:
35 MemoryTypeTracker( 35 MemoryTypeTracker(MemoryTracker* memory_tracker)
36 MemoryTracker* memory_tracker,
37 const char* trace_category,
38 const char* trace_name)
39 : memory_tracker_(memory_tracker), 36 : memory_tracker_(memory_tracker),
40 trace_category_(trace_category),
41 trace_name_(trace_name),
42 has_updated_mem_represented_(false), 37 has_updated_mem_represented_(false),
43 last_updated_mem_represented_(0) { 38 last_updated_mem_represented_(0) {
44 } 39 }
45 40
46 void UpdateMemRepresented(size_t mem_represented) { 41 void UpdateMemRepresented(size_t mem_represented) {
47 if (!has_updated_mem_represented_ && 42 if (!has_updated_mem_represented_ &&
48 mem_represented == last_updated_mem_represented_) { 43 mem_represented == last_updated_mem_represented_) {
49 return; 44 return;
50 } 45 }
51 if (memory_tracker_) { 46 if (memory_tracker_) {
52 memory_tracker_->TrackMemoryAllocatedChange( 47 memory_tracker_->TrackMemoryAllocatedChange(
53 last_updated_mem_represented_, 48 last_updated_mem_represented_,
54 mem_represented); 49 mem_represented);
55 } 50 }
56 has_updated_mem_represented_ = true; 51 has_updated_mem_represented_ = true;
57 last_updated_mem_represented_ = mem_represented; 52 last_updated_mem_represented_ = mem_represented;
58 if (trace_category_ && trace_name_ && memory_tracker_) {
59 TRACE_COUNTER_ID1(trace_category_,
60 trace_name_,
61 memory_tracker_,
62 last_updated_mem_represented_);
63 }
64 } 53 }
65 54
66 size_t GetMemRepresented() const { 55 size_t GetMemRepresented() const {
67 return last_updated_mem_represented_; 56 return last_updated_mem_represented_;
68 } 57 }
69 58
70 private: 59 private:
71 MemoryTracker* memory_tracker_; 60 MemoryTracker* memory_tracker_;
72 const char* trace_category_;
73 const char* trace_name_;
74 bool has_updated_mem_represented_; 61 bool has_updated_mem_represented_;
75 size_t last_updated_mem_represented_; 62 size_t last_updated_mem_represented_;
76 63
77 DISALLOW_COPY_AND_ASSIGN(MemoryTypeTracker); 64 DISALLOW_COPY_AND_ASSIGN(MemoryTypeTracker);
78 }; 65 };
79 66
80 } // namespace gles2 67 } // namespace gles2
81 } // namespace gpu 68 } // namespace gpu
82 69
83 #endif // GPU_COMMAND_BUFFER_SERVICE_MEMORY_TRACKING_H_ 70 #endif // GPU_COMMAND_BUFFER_SERVICE_MEMORY_TRACKING_H_
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | gpu/command_buffer/service/renderbuffer_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698