| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "gpu/command_buffer/service/gpu_scheduler.h" | 5 #include "gpu/command_buffer/service/gpu_scheduler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 if (!scheduling_changed_callback_.is_null()) | 154 if (!scheduling_changed_callback_.is_null()) |
| 155 scheduling_changed_callback_.Run(false); | 155 scheduling_changed_callback_.Run(false); |
| 156 } | 156 } |
| 157 } | 157 } |
| 158 } | 158 } |
| 159 | 159 |
| 160 bool GpuScheduler::IsScheduled() { | 160 bool GpuScheduler::IsScheduled() { |
| 161 return unscheduled_count_ == 0; | 161 return unscheduled_count_ == 0; |
| 162 } | 162 } |
| 163 | 163 |
| 164 bool GpuScheduler::HasMoreWork() { | 164 bool GpuScheduler::HasPendingQueries() const { |
| 165 return (decoder_ && decoder_->ProcessPendingQueries(false)) || | 165 return (decoder_ && decoder_->HasPendingQueries()); |
| 166 HasMoreIdleWork(); | 166 } |
| 167 |
| 168 void GpuScheduler::ProcessPendingQueries() { |
| 169 if (!decoder_) |
| 170 return; |
| 171 decoder_->ProcessPendingQueries(false); |
| 167 } | 172 } |
| 168 | 173 |
| 169 void GpuScheduler::SetSchedulingChangedCallback( | 174 void GpuScheduler::SetSchedulingChangedCallback( |
| 170 const SchedulingChangedCallback& callback) { | 175 const SchedulingChangedCallback& callback) { |
| 171 scheduling_changed_callback_ = callback; | 176 scheduling_changed_callback_ = callback; |
| 172 } | 177 } |
| 173 | 178 |
| 174 scoped_refptr<Buffer> GpuScheduler::GetSharedMemoryBuffer(int32 shm_id) { | 179 scoped_refptr<Buffer> GpuScheduler::GetSharedMemoryBuffer(int32 shm_id) { |
| 175 return command_buffer_->GetTransferBuffer(shm_id); | 180 return command_buffer_->GetTransferBuffer(shm_id); |
| 176 } | 181 } |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 TRACE_COUNTER_ID1("gpu", "GpuScheduler::Preempted", this, 1); | 227 TRACE_COUNTER_ID1("gpu", "GpuScheduler::Preempted", this, 1); |
| 223 was_preempted_ = true; | 228 was_preempted_ = true; |
| 224 } else if (was_preempted_ && !preemption_flag_->IsSet()) { | 229 } else if (was_preempted_ && !preemption_flag_->IsSet()) { |
| 225 TRACE_COUNTER_ID1("gpu", "GpuScheduler::Preempted", this, 0); | 230 TRACE_COUNTER_ID1("gpu", "GpuScheduler::Preempted", this, 0); |
| 226 was_preempted_ = false; | 231 was_preempted_ = false; |
| 227 } | 232 } |
| 228 | 233 |
| 229 return preemption_flag_->IsSet(); | 234 return preemption_flag_->IsSet(); |
| 230 } | 235 } |
| 231 | 236 |
| 232 bool GpuScheduler::HasMoreIdleWork() { | 237 bool GpuScheduler::HasMoreIdleWork() const { |
| 233 return (decoder_ && decoder_->HasMoreIdleWork()); | 238 return (decoder_ && decoder_->HasMoreIdleWork()); |
| 234 } | 239 } |
| 235 | 240 |
| 236 void GpuScheduler::PerformIdleWork() { | 241 void GpuScheduler::PerformIdleWork() { |
| 237 if (!decoder_) | 242 if (!decoder_) |
| 238 return; | 243 return; |
| 239 decoder_->PerformIdleWork(); | 244 decoder_->PerformIdleWork(); |
| 240 } | 245 } |
| 241 | 246 |
| 242 void GpuScheduler::RescheduleTimeOut() { | 247 void GpuScheduler::RescheduleTimeOut() { |
| 243 int new_count = unscheduled_count_ + rescheduled_count_; | 248 int new_count = unscheduled_count_ + rescheduled_count_; |
| 244 | 249 |
| 245 rescheduled_count_ = 0; | 250 rescheduled_count_ = 0; |
| 246 | 251 |
| 247 while (unscheduled_count_) | 252 while (unscheduled_count_) |
| 248 SetScheduled(true); | 253 SetScheduled(true); |
| 249 | 254 |
| 250 rescheduled_count_ = new_count; | 255 rescheduled_count_ = new_count; |
| 251 } | 256 } |
| 252 | 257 |
| 253 } // namespace gpu | 258 } // namespace gpu |
| OLD | NEW |