Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
index 8be63b095c41b3833ddc5b4f8029d28cf47203c0..440ae669cedd9e9a05d72d4c209cbd9327a1f523 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -36,6 +36,7 @@ |
#include "gpu/command_buffer/service/context_state.h" |
#include "gpu/command_buffer/service/error_state.h" |
#include "gpu/command_buffer/service/feature_info.h" |
+#include "gpu/command_buffer/service/fence_manager.h" |
#include "gpu/command_buffer/service/framebuffer_manager.h" |
#include "gpu/command_buffer/service/gl_stream_texture_image.h" |
#include "gpu/command_buffer/service/gl_utils.h" |
@@ -570,6 +571,7 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient { |
return vertex_array_manager_.get(); |
} |
ImageManager* GetImageManager() override { return image_manager_.get(); } |
+ FenceManager* GetFenceManager() override { return fence_manager_.get(); } |
bool HasPendingQueries() const override; |
void ProcessPendingQueries(bool did_finish) override; |
@@ -754,6 +756,8 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient { |
ImageManager* image_manager() { return image_manager_.get(); } |
+ FenceManager* fence_manager() { return fence_manager_.get(); } |
+ |
VertexArrayManager* vertex_array_manager() { |
return vertex_array_manager_.get(); |
} |
@@ -2233,6 +2237,8 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient { |
std::unique_ptr<ImageManager> image_manager_; |
+ std::unique_ptr<FenceManager> fence_manager_; |
+ |
FenceSyncReleaseCallback fence_sync_release_callback_; |
WaitFenceSyncCallback wait_fence_sync_callback_; |
NoParamCallback deschedule_until_finished_callback_; |
@@ -3139,6 +3145,8 @@ bool GLES2DecoderImpl::Initialize( |
image_manager_.reset(new ImageManager); |
+ fence_manager_.reset(new FenceManager); |
+ |
util_.set_num_compressed_texture_formats( |
validators_->compressed_texture_format.GetValues().size()); |
@@ -4760,6 +4768,11 @@ void GLES2DecoderImpl::Destroy(bool have_context) { |
image_manager_.reset(); |
+ if (fence_manager_.get()) { |
+ fence_manager_->Destroy(have_context); |
+ fence_manager_.reset(); |
+ } |
+ |
offscreen_target_frame_buffer_.reset(); |
offscreen_target_color_texture_.reset(); |
offscreen_target_color_render_buffer_.reset(); |