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

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

Issue 2447533002: ui: Add ref-counting to GLFence class.
Patch Set: rebase Created 4 years, 2 months 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
« no previous file with comments | « gpu/command_buffer/service/fence_manager.cc ('k') | gpu/command_buffer/service/mailbox_manager_sync.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 2f6003ccdbac7d05aa08093bd3141eb13726a618..40f5c63f5eacf92a34f0ad249c536f857c99e617 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -458,7 +458,7 @@ struct FenceCallback {
FenceCallback(FenceCallback&&) = default;
FenceCallback& operator=(FenceCallback&&) = default;
std::vector<base::Closure> callbacks;
- std::unique_ptr<gl::GLFence> fence;
+ scoped_refptr<gl::GLFence> fence;
};
// } // anonymous namespace.
@@ -2360,7 +2360,7 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient {
// After a second fence is inserted, both the GpuChannelMessageQueue and
// CommandExecutor are descheduled. Once the first fence has completed, both
// get rescheduled.
- std::vector<std::unique_ptr<gl::GLFence>> deschedule_until_finished_fences_;
+ std::vector<scoped_refptr<gl::GLFence>> deschedule_until_finished_fences_;
// Used to validate multisample renderbuffers if needed
typedef base::hash_map<GLenum, GLuint> TextureMap;
@@ -15353,7 +15353,7 @@ error::Error GLES2DecoderImpl::HandleDescheduleUntilFinishedCHROMIUM(
return error::kNoError;
}
- std::unique_ptr<gl::GLFence> fence(gl::GLFence::Create());
+ scoped_refptr<gl::GLFence> fence(gl::GLFence::Create());
deschedule_until_finished_fences_.push_back(std::move(fence));
if (deschedule_until_finished_fences_.size() == 1)
« no previous file with comments | « gpu/command_buffer/service/fence_manager.cc ('k') | gpu/command_buffer/service/mailbox_manager_sync.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698