| Index: gpu/ipc/service/gpu_command_buffer_stub.cc
|
| diff --git a/gpu/ipc/service/gpu_command_buffer_stub.cc b/gpu/ipc/service/gpu_command_buffer_stub.cc
|
| index 8cc19d9ffc4662b2129560f6891552d033551846..89f531f7b00a390dc412452edb06d1f2b5650dd1 100644
|
| --- a/gpu/ipc/service/gpu_command_buffer_stub.cc
|
| +++ b/gpu/ipc/service/gpu_command_buffer_stub.cc
|
| @@ -610,6 +610,12 @@ bool GpuCommandBufferStub::Initialize(
|
| &GpuCommandBufferStub::OnFenceSyncRelease, base::Unretained(this)));
|
| decoder_->SetWaitFenceSyncCallback(base::Bind(
|
| &GpuCommandBufferStub::OnWaitFenceSync, base::Unretained(this)));
|
| + decoder_->SetDescheduleUntilFinishedCallback(
|
| + base::Bind(&GpuCommandBufferStub::OnDescheduleUntilFinished,
|
| + base::Unretained(this)));
|
| + decoder_->SetRescheduleAfterFinishedCallback(
|
| + base::Bind(&GpuCommandBufferStub::OnRescheduleAfterFinished,
|
| + base::Unretained(this)));
|
|
|
| command_buffer_->SetPutOffsetChangeCallback(
|
| base::Bind(&GpuCommandBufferStub::PutChanged, base::Unretained(this)));
|
| @@ -898,6 +904,21 @@ void GpuCommandBufferStub::OnFenceSyncRelease(uint64_t release) {
|
| sync_point_client_->ReleaseFenceSync(release);
|
| }
|
|
|
| +void GpuCommandBufferStub::OnDescheduleUntilFinished() {
|
| + DCHECK(executor_->scheduled());
|
| + DCHECK(executor_->HasMoreIdleWork());
|
| +
|
| + executor_->SetScheduled(false);
|
| + channel_->OnStreamRescheduled(stream_id_, false);
|
| +}
|
| +
|
| +void GpuCommandBufferStub::OnRescheduleAfterFinished() {
|
| + DCHECK(!executor_->scheduled());
|
| +
|
| + executor_->SetScheduled(true);
|
| + channel_->OnStreamRescheduled(stream_id_, true);
|
| +}
|
| +
|
| bool GpuCommandBufferStub::OnWaitFenceSync(
|
| CommandBufferNamespace namespace_id,
|
| CommandBufferId command_buffer_id,
|
|
|