summaryrefslogtreecommitdiffstats
path: root/content/common/gpu/gpu_command_buffer_stub.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/common/gpu/gpu_command_buffer_stub.cc')
-rw-r--r--content/common/gpu/gpu_command_buffer_stub.cc18
1 files changed, 15 insertions, 3 deletions
diff --git a/content/common/gpu/gpu_command_buffer_stub.cc b/content/common/gpu/gpu_command_buffer_stub.cc
index 36016d8..3ba218a 100644
--- a/content/common/gpu/gpu_command_buffer_stub.cc
+++ b/content/common/gpu/gpu_command_buffer_stub.cc
@@ -485,6 +485,8 @@ void GpuCommandBufferStub::Destroy() {
// destroy it before those.
scheduler_.reset();
+ sync_point_client_.reset();
+
bool have_context = false;
if (decoder_ && decoder_->GetGLContext()) {
// Try to make the context current regardless of whether it was lost, so we
@@ -528,10 +530,22 @@ void GpuCommandBufferStub::OnInitialize(
bool result = command_buffer_->Initialize();
DCHECK(result);
+ GpuChannelManager* manager = channel_->gpu_channel_manager();
+ DCHECK(manager);
+
+ gpu::SyncPointManager* sync_point_manager = manager->sync_point_manager();
+ DCHECK(sync_point_manager);
+
decoder_.reset(::gpu::gles2::GLES2Decoder::Create(context_group_.get()));
scheduler_.reset(new gpu::GpuScheduler(command_buffer_.get(),
decoder_.get(),
decoder_.get()));
+ sync_point_client_ =
+ sync_point_manager->CreateSyncPointClient(
+ channel_->GetSyncPointClientState(),
+ gpu::CommandBufferNamespace::GPU_IO,
+ command_buffer_id_);
+
if (preemption_flag_.get())
scheduler_->SetPreemptByFlag(preemption_flag_);
@@ -551,7 +565,6 @@ void GpuCommandBufferStub::OnInitialize(
this,
handle_);
} else {
- GpuChannelManager* manager = channel_->gpu_channel_manager();
surface_ = manager->GetDefaultOffscreenSurface();
}
@@ -682,8 +695,7 @@ void GpuCommandBufferStub::OnInitialize(
Send(reply_message);
if (handle_.is_null() && !active_url_.is_empty()) {
- GpuChannelManager* gpu_channel_manager = channel_->gpu_channel_manager();
- gpu_channel_manager->Send(new GpuHostMsg_DidCreateOffscreenContext(
+ manager->Send(new GpuHostMsg_DidCreateOffscreenContext(
active_url_));
}