Index: gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc |
index c81e60f7e92767c69351b5ac3045e784faa34ace..3e1897ffe0b48b0fde255b20401d7e202884a53d 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc |
@@ -168,6 +168,8 @@ bool GLES2DecoderPassthroughImpl::Initialize( |
image_manager_.reset(new ImageManager()); |
+ fence_manager_.reset(new FenceManager()); |
+ |
bind_generates_resource_ = group_->bind_generates_resource(); |
resources_ = group_->passthrough_resources(); |
@@ -193,6 +195,11 @@ bool GLES2DecoderPassthroughImpl::Initialize( |
void GLES2DecoderPassthroughImpl::Destroy(bool have_context) { |
image_manager_.reset(); |
+ if (fence_manager_.get()) { |
+ fence_manager_->Destroy(have_context); |
+ fence_manager_.reset(); |
+ } |
+ |
DeleteServiceObjects( |
&framebuffer_id_map_, have_context, |
[](GLuint framebuffer) { glDeleteFramebuffersEXT(1, &framebuffer); }); |
@@ -418,6 +425,10 @@ gpu::gles2::ImageManager* GLES2DecoderPassthroughImpl::GetImageManager() { |
return image_manager_.get(); |
} |
+gpu::gles2::FenceManager* GLES2DecoderPassthroughImpl::GetFenceManager() { |
+ return fence_manager_.get(); |
+} |
+ |
bool GLES2DecoderPassthroughImpl::HasPendingQueries() const { |
return false; |
} |