summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-23 17:52:26 +0000
committerboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-23 17:52:26 +0000
commitbdbdfca224e81f89fa8ae3783313615933d0a388 (patch)
tree6a6343fe5cbb541a165f22c015d2d850ea106c56
parent98894c33ef4fadaee7ee6db5a3b63f88608bb787 (diff)
downloadchromium_src-bdbdfca224e81f89fa8ae3783313615933d0a388.zip
chromium_src-bdbdfca224e81f89fa8ae3783313615933d0a388.tar.gz
chromium_src-bdbdfca224e81f89fa8ae3783313615933d0a388.tar.bz2
Merge 284351 "Add missing lock in RetireSyncPointOnGpuThread"
> Add missing lock in RetireSyncPointOnGpuThread > > BUG=394491 > > Review URL: https://codereview.chromium.org/407683002 TBR=boliu@chromium.org Review URL: https://codereview.chromium.org/410243002 git-svn-id: svn://svn.chromium.org/chrome/branches/2062/src@284988 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--gpu/command_buffer/service/in_process_command_buffer.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/gpu/command_buffer/service/in_process_command_buffer.cc b/gpu/command_buffer/service/in_process_command_buffer.cc
index 79cb6c0..b1e59a8 100644
--- a/gpu/command_buffer/service/in_process_command_buffer.cc
+++ b/gpu/command_buffer/service/in_process_command_buffer.cc
@@ -658,8 +658,15 @@ uint32 InProcessCommandBuffer::InsertSyncPoint() {
void InProcessCommandBuffer::RetireSyncPointOnGpuThread(uint32 sync_point) {
gles2::MailboxManager* mailbox_manager =
decoder_->GetContextGroup()->mailbox_manager();
- if (mailbox_manager->UsesSync() && MakeCurrent())
- mailbox_manager->PushTextureUpdates();
+ if (mailbox_manager->UsesSync()) {
+ bool make_current_success = false;
+ {
+ base::AutoLock lock(command_buffer_lock_);
+ make_current_success = MakeCurrent();
+ }
+ if (make_current_success)
+ mailbox_manager->PushTextureUpdates();
+ }
g_sync_point_manager.Get().RetireSyncPoint(sync_point);
}