Index: gpu/command_buffer/service/gpu_scheduler.cc |
diff --git a/gpu/command_buffer/service/gpu_scheduler.cc b/gpu/command_buffer/service/gpu_scheduler.cc |
index 61bdcf8470e652631741885edcef724f8f94fb81..29ea7fdd507fca7c6742bb04f0afccbd04489e35 100644 |
--- a/gpu/command_buffer/service/gpu_scheduler.cc |
+++ b/gpu/command_buffer/service/gpu_scheduler.cc |
@@ -168,7 +168,8 @@ bool GpuScheduler::IsScheduled() { |
bool GpuScheduler::HasMoreWork() { |
return !unschedule_fences_.empty() || |
- (decoder_ && decoder_->ProcessPendingQueries()); |
+ (decoder_ && decoder_->ProcessPendingQueries()) || |
+ HasMoreIdleWork(); |
} |
void GpuScheduler::SetSchedulingChangedCallback( |
@@ -269,6 +270,16 @@ bool GpuScheduler::IsPreempted() { |
return preemption_flag_->IsSet(); |
} |
+bool GpuScheduler::HasMoreIdleWork() { |
+ return (decoder_ && decoder_->HasMoreIdleWork()); |
+} |
+ |
+void GpuScheduler::PerformIdleWork() { |
+ if (!decoder_) |
+ return; |
+ decoder_->PerformIdleWork(); |
+} |
+ |
void GpuScheduler::RescheduleTimeOut() { |
int new_count = unscheduled_count_ + rescheduled_count_; |