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

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder.cc

Issue 2383753002: gpu: Add GpuFence framework.
Patch Set: rebase Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698