Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(354)

Side by Side Diff: gpu/command_buffer/service/gpu_scheduler.cc

Issue 7260008: Implement proper synchronization between HW video decode IPC and CommandBuffer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gpu/command_buffer/service/gpu_scheduler.h ('k') | gpu/gpu.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/callback.h" 7 #include "base/callback.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/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 void GpuScheduler::SetScheduledCallback(Callback0::Type* scheduled_callback) { 266 void GpuScheduler::SetScheduledCallback(Callback0::Type* scheduled_callback) {
267 scheduled_callback_.reset(scheduled_callback); 267 scheduled_callback_.reset(scheduled_callback);
268 } 268 }
269 269
270 Buffer GpuScheduler::GetSharedMemoryBuffer(int32 shm_id) { 270 Buffer GpuScheduler::GetSharedMemoryBuffer(int32 shm_id) {
271 return command_buffer_->GetTransferBuffer(shm_id); 271 return command_buffer_->GetTransferBuffer(shm_id);
272 } 272 }
273 273
274 void GpuScheduler::set_token(int32 token) { 274 void GpuScheduler::set_token(int32 token) {
275 command_buffer_->SetToken(token); 275 command_buffer_->SetToken(token);
276 if (!set_token_callback_.is_null())
277 set_token_callback_.Run(token);
276 } 278 }
277 279
278 bool GpuScheduler::SetGetOffset(int32 offset) { 280 bool GpuScheduler::SetGetOffset(int32 offset) {
279 if (parser_->set_get(offset)) { 281 if (parser_->set_get(offset)) {
280 command_buffer_->SetGetOffset(static_cast<int32>(parser_->get())); 282 command_buffer_->SetGetOffset(static_cast<int32>(parser_->get()));
281 return true; 283 return true;
282 } 284 }
283 return false; 285 return false;
284 } 286 }
285 287
(...skipping 18 matching lines...) Expand all
304 decoder_->SetSwapBuffersCallback( 306 decoder_->SetSwapBuffersCallback(
305 NewCallback(this, 307 NewCallback(this,
306 &GpuScheduler::WillSwapBuffers)); 308 &GpuScheduler::WillSwapBuffers));
307 } 309 }
308 310
309 void GpuScheduler::SetCommandProcessedCallback( 311 void GpuScheduler::SetCommandProcessedCallback(
310 Callback0::Type* callback) { 312 Callback0::Type* callback) {
311 command_processed_callback_.reset(callback); 313 command_processed_callback_.reset(callback);
312 } 314 }
313 315
316 void GpuScheduler::SetTokenCallback(
317 const base::Callback<void(int32)>& callback) {
318 DCHECK(set_token_callback_.is_null());
319 set_token_callback_ = callback;
320 }
321
314 void GpuScheduler::ScheduleProcessCommands() { 322 void GpuScheduler::ScheduleProcessCommands() {
315 MessageLoop::current()->PostTask( 323 MessageLoop::current()->PostTask(
316 FROM_HERE, 324 FROM_HERE,
317 method_factory_.NewRunnableMethod(&GpuScheduler::ProcessCommands)); 325 method_factory_.NewRunnableMethod(&GpuScheduler::ProcessCommands));
318 } 326 }
319 327
320 void GpuScheduler::WillResize(gfx::Size size) { 328 void GpuScheduler::WillResize(gfx::Size size) {
321 if (wrapped_resize_callback_.get()) { 329 if (wrapped_resize_callback_.get()) {
322 wrapped_resize_callback_->Run(size); 330 wrapped_resize_callback_->Run(size);
323 } 331 }
324 } 332 }
325 333
326 } // namespace gpu 334 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gpu_scheduler.h ('k') | gpu/gpu.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698