diff options
author | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-23 17:52:26 +0000 |
---|---|---|
committer | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-23 17:52:26 +0000 |
commit | bdbdfca224e81f89fa8ae3783313615933d0a388 (patch) | |
tree | 6a6343fe5cbb541a165f22c015d2d850ea106c56 | |
parent | 98894c33ef4fadaee7ee6db5a3b63f88608bb787 (diff) | |
download | chromium_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.cc | 11 |
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); } |