Index: gpu/command_buffer/service/context_group.cc |
diff --git a/gpu/command_buffer/service/context_group.cc b/gpu/command_buffer/service/context_group.cc |
index f4f16c3e6b8e24a2774b6661e562eee4b5bdf572..c1d135cd1e90eb511e70ca8abb1b935b3247f101 100644 |
--- a/gpu/command_buffer/service/context_group.cc |
+++ b/gpu/command_buffer/service/context_group.cc |
@@ -14,6 +14,7 @@ |
#include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
#include "gpu/command_buffer/service/gpu_switches.h" |
#include "gpu/command_buffer/service/mailbox_manager.h" |
+#include "gpu/command_buffer/service/memory_tracking.h" |
#include "gpu/command_buffer/service/program_manager.h" |
#include "gpu/command_buffer/service/renderbuffer_manager.h" |
#include "gpu/command_buffer/service/shader_manager.h" |
@@ -26,8 +27,10 @@ namespace gles2 { |
ContextGroup::ContextGroup( |
MailboxManager* mailbox_manager, |
+ MemoryTracker* memory_tracker, |
bool bind_generates_resource) |
: mailbox_manager_(mailbox_manager ? mailbox_manager : new MailboxManager), |
+ memory_tracker_(memory_tracker), |
num_contexts_(0), |
enforce_gl_minimums_(CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kEnforceGLMinimums)), |
@@ -88,10 +91,11 @@ bool ContextGroup::Initialize(const DisallowedFeatures& disallowed_features, |
glGetIntegerv(GL_MAX_SAMPLES, &max_samples); |
} |
- buffer_manager_.reset(new BufferManager()); |
+ buffer_manager_.reset(new BufferManager(memory_tracker_)); |
framebuffer_manager_.reset(new FramebufferManager()); |
- renderbuffer_manager_.reset(new RenderbufferManager( |
- max_renderbuffer_size, max_samples)); |
+ renderbuffer_manager_.reset(new RenderbufferManager(memory_tracker_, |
+ max_renderbuffer_size, |
+ max_samples)); |
shader_manager_.reset(new ShaderManager()); |
program_manager_.reset(new ProgramManager()); |
@@ -148,7 +152,8 @@ bool ContextGroup::Initialize(const DisallowedFeatures& disallowed_features, |
} |
} |
#endif |
- texture_manager_.reset(new TextureManager(feature_info_.get(), |
+ texture_manager_.reset(new TextureManager(memory_tracker_, |
+ feature_info_.get(), |
max_texture_size, |
max_cube_map_texture_size)); |
@@ -239,6 +244,10 @@ void ContextGroup::Destroy(bool have_context) { |
shader_manager_->Destroy(have_context); |
shader_manager_.reset(); |
} |
+ |
+ if (memory_tracker_.get()) { |
+ memory_tracker_.release(); |
+ } |
} |
IdAllocatorInterface* ContextGroup::GetIdAllocator(unsigned namespace_id) { |