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

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: Reestore transfer buffer magic 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 15 matching lines...) Expand all
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(
36 MemoryTracker* memory_tracker, 36 MemoryTracker* memory_tracker)
piman 2012/09/15 01:14:05 nit: fit on previous line?
37 const char* trace_category,
38 const char* trace_name)
39 : memory_tracker_(memory_tracker), 37 : memory_tracker_(memory_tracker),
40 trace_category_(trace_category),
41 trace_name_(trace_name),
42 has_updated_mem_represented_(false), 38 has_updated_mem_represented_(false),
43 last_updated_mem_represented_(0) { 39 last_updated_mem_represented_(0) {
44 } 40 }
45 41
46 void UpdateMemRepresented(size_t mem_represented) { 42 void UpdateMemRepresented(size_t mem_represented) {
47 if (!has_updated_mem_represented_ && 43 if (!has_updated_mem_represented_ &&
48 mem_represented == last_updated_mem_represented_) { 44 mem_represented == last_updated_mem_represented_) {
49 return; 45 return;
50 } 46 }
51 if (memory_tracker_) { 47 if (memory_tracker_) {
52 memory_tracker_->TrackMemoryAllocatedChange( 48 memory_tracker_->TrackMemoryAllocatedChange(
53 last_updated_mem_represented_, 49 last_updated_mem_represented_,
54 mem_represented); 50 mem_represented);
55 } 51 }
56 has_updated_mem_represented_ = true; 52 has_updated_mem_represented_ = true;
57 last_updated_mem_represented_ = mem_represented; 53 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 } 54 }
65 55
66 size_t GetMemRepresented() const { 56 size_t GetMemRepresented() const {
67 return last_updated_mem_represented_; 57 return last_updated_mem_represented_;
68 } 58 }
69 59
70 private: 60 private:
71 MemoryTracker* memory_tracker_; 61 MemoryTracker* memory_tracker_;
72 const char* trace_category_;
73 const char* trace_name_;
74 bool has_updated_mem_represented_; 62 bool has_updated_mem_represented_;
75 size_t last_updated_mem_represented_; 63 size_t last_updated_mem_represented_;
76 64
77 DISALLOW_COPY_AND_ASSIGN(MemoryTypeTracker); 65 DISALLOW_COPY_AND_ASSIGN(MemoryTypeTracker);
78 }; 66 };
79 67
80 } // namespace gles2 68 } // namespace gles2
81 } // namespace gpu 69 } // namespace gpu
82 70
83 #endif // GPU_COMMAND_BUFFER_SERVICE_MEMORY_TRACKING_H_ 71 #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