| 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 eaaa0142da9c1ea236147c97cc18a5edcdbafce9..1803f6657a0dff5f04c8f90811a5f44b4f85998a 100644
|
| --- a/gpu/command_buffer/service/context_group.cc
|
| +++ b/gpu/command_buffer/service/context_group.cc
|
| @@ -18,6 +18,7 @@
|
| #include "gpu/command_buffer/service/mailbox_manager_impl.h"
|
| #include "gpu/command_buffer/service/path_manager.h"
|
| #include "gpu/command_buffer/service/program_manager.h"
|
| +#include "gpu/command_buffer/service/progress_reporter.h"
|
| #include "gpu/command_buffer/service/renderbuffer_manager.h"
|
| #include "gpu/command_buffer/service/sampler_manager.h"
|
| #include "gpu/command_buffer/service/shader_manager.h"
|
| @@ -65,7 +66,8 @@ ContextGroup::ContextGroup(
|
| framebuffer_completeness_cache,
|
| const scoped_refptr<FeatureInfo>& feature_info,
|
| bool bind_generates_resource,
|
| - gpu::ImageFactory* image_factory)
|
| + gpu::ImageFactory* image_factory,
|
| + ProgressReporter* progress_reporter)
|
| : gpu_preferences_(gpu_preferences),
|
| mailbox_manager_(mailbox_manager),
|
| memory_tracker_(memory_tracker),
|
| @@ -103,9 +105,11 @@ ContextGroup::ContextGroup(
|
| program_cache_(NULL),
|
| feature_info_(feature_info),
|
| image_factory_(image_factory),
|
| - passthrough_resources_(new PassthroughResources) {
|
| + passthrough_resources_(new PassthroughResources),
|
| + progress_reporter_(progress_reporter) {
|
| {
|
| DCHECK(feature_info_);
|
| + DCHECK(progress_reporter_);
|
| if (!mailbox_manager_.get())
|
| mailbox_manager_ = new MailboxManagerImpl;
|
| transfer_buffer_manager_ = new TransferBufferManager(memory_tracker_.get());
|
| @@ -496,6 +500,7 @@ void ContextGroup::Destroy(GLES2Decoder* decoder, bool have_context) {
|
| }
|
| buffer_manager_->Destroy();
|
| buffer_manager_.reset();
|
| + progress_reporter_->ReportProgress();
|
| }
|
|
|
| if (framebuffer_manager_ != NULL) {
|
| @@ -503,42 +508,50 @@ void ContextGroup::Destroy(GLES2Decoder* decoder, bool have_context) {
|
| if (texture_manager_)
|
| texture_manager_->set_framebuffer_manager(NULL);
|
| framebuffer_manager_.reset();
|
| + progress_reporter_->ReportProgress();
|
| }
|
|
|
| if (renderbuffer_manager_ != NULL) {
|
| renderbuffer_manager_->Destroy(have_context);
|
| renderbuffer_manager_.reset();
|
| + progress_reporter_->ReportProgress();
|
| }
|
|
|
| if (texture_manager_ != NULL) {
|
| - texture_manager_->Destroy(have_context);
|
| + texture_manager_->Destroy(have_context, progress_reporter_);
|
| texture_manager_.reset();
|
| + progress_reporter_->ReportProgress();
|
| }
|
|
|
| if (path_manager_ != NULL) {
|
| path_manager_->Destroy(have_context);
|
| path_manager_.reset();
|
| + progress_reporter_->ReportProgress();
|
| }
|
|
|
| if (program_manager_ != NULL) {
|
| - program_manager_->Destroy(have_context);
|
| + program_manager_->Destroy(have_context, progress_reporter_);
|
| program_manager_.reset();
|
| + progress_reporter_->ReportProgress();
|
| }
|
|
|
| if (shader_manager_ != NULL) {
|
| - shader_manager_->Destroy(have_context);
|
| + shader_manager_->Destroy(have_context, progress_reporter_);
|
| shader_manager_.reset();
|
| + progress_reporter_->ReportProgress();
|
| }
|
|
|
| if (sampler_manager_ != NULL) {
|
| sampler_manager_->Destroy(have_context);
|
| sampler_manager_.reset();
|
| + progress_reporter_->ReportProgress();
|
| }
|
|
|
| memory_tracker_ = NULL;
|
|
|
| passthrough_resources_->Destroy(have_context);
|
| passthrough_resources_.reset();
|
| + progress_reporter_->ReportProgress();
|
| }
|
|
|
| uint32_t ContextGroup::GetMemRepresented() const {
|
|
|