| 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 c30df4b4c2cbe52805f1dfdc5f8bc5037deabf82..42d3b26f2a7f51ba34c5234be03cc84e069577be 100644
|
| --- a/gpu/ipc/service/gpu_command_buffer_stub.cc
|
| +++ b/gpu/ipc/service/gpu_command_buffer_stub.cc
|
| @@ -31,6 +31,7 @@
|
| #include "gpu/command_buffer/service/memory_tracking.h"
|
| #include "gpu/command_buffer/service/preemption_flag.h"
|
| #include "gpu/command_buffer/service/query_manager.h"
|
| +#include "gpu/command_buffer/service/scheduler.h"
|
| #include "gpu/command_buffer/service/service_utils.h"
|
| #include "gpu/command_buffer/service/sync_point_manager.h"
|
| #include "gpu/command_buffer/service/transfer_buffer_manager.h"
|
| @@ -652,8 +653,11 @@ bool GpuCommandBufferStub::Initialize(
|
| channel_->sync_point_manager()->CreateSyncPointClientState(
|
| CommandBufferNamespace::GPU_IO, command_buffer_id_, sequence_id_);
|
|
|
| - // TODO(sunnyps): Hook callback to gpu scheduler.
|
| - if (channel_->preempted_flag()) {
|
| + if (channel_->scheduler()) {
|
| + executor_->SetPauseExecutionCallback(
|
| + base::Bind(&Scheduler::ShouldYield,
|
| + base::Unretained(channel_->scheduler()), sequence_id_));
|
| + } else if (channel_->preempted_flag()) {
|
| executor_->SetPauseExecutionCallback(
|
| base::Bind(&PreemptionFlag::IsSet, channel_->preempted_flag()));
|
| }
|
|
|