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

Side by Side Diff: content/common/gpu/gpu_channel.cc

Issue 9583021: Only add rescheduled message when there are commands to reschedule. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 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 | « no previous file | content/common/gpu/gpu_command_buffer_stub.h » ('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) 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 #if defined(OS_WIN) 5 #if defined(OS_WIN)
6 #include <windows.h> 6 #include <windows.h>
7 #endif 7 #endif
8 8
9 #include "content/common/gpu/gpu_channel.h" 9 #include "content/common/gpu/gpu_channel.h"
10 10
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 IPC::Message* reply = IPC::SyncMessage::GenerateReply(&*message); 253 IPC::Message* reply = IPC::SyncMessage::GenerateReply(&*message);
254 reply->set_reply_error(); 254 reply->set_reply_error();
255 Send(reply); 255 Send(reply);
256 } 256 }
257 } else { 257 } else {
258 // If the channel becomes unscheduled as a result of handling the message 258 // If the channel becomes unscheduled as a result of handling the message
259 // or has more work to do, synthesize an IPC message to flush the command 259 // or has more work to do, synthesize an IPC message to flush the command
260 // buffer that became unscheduled. 260 // buffer that became unscheduled.
261 GpuCommandBufferStub* stub = stubs_.Lookup(message->routing_id()); 261 GpuCommandBufferStub* stub = stubs_.Lookup(message->routing_id());
262 if (stub) { 262 if (stub) {
263 if (!stub->IsScheduled() || stub->HasMoreWork()) { 263 if (stub->HasUnprocessedCommands() || stub->HasMoreWork()) {
264 deferred_messages_.push_front(new GpuCommandBufferMsg_Rescheduled( 264 deferred_messages_.push_front(new GpuCommandBufferMsg_Rescheduled(
265 stub->route_id())); 265 stub->route_id()));
266 } 266 }
267 if (stub->HasMoreWork() && !handle_messages_scheduled_) { 267 if (stub->HasMoreWork() && !handle_messages_scheduled_) {
268 MessageLoop::current()->PostDelayedTask( 268 MessageLoop::current()->PostDelayedTask(
269 FROM_HERE, 269 FROM_HERE,
270 base::Bind(&GpuChannel::HandleMessage, 270 base::Bind(&GpuChannel::HandleMessage,
271 weak_factory_.GetWeakPtr()), 271 weak_factory_.GetWeakPtr()),
272 base::TimeDelta::FromMilliseconds(kHandleMoreWorkPeriodMs)); 272 base::TimeDelta::FromMilliseconds(kHandleMoreWorkPeriodMs));
273 handle_messages_scheduled_ = true; 273 handle_messages_scheduled_ = true;
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 431
432 #if defined(OS_POSIX) 432 #if defined(OS_POSIX)
433 int GpuChannel::TakeRendererFileDescriptor() { 433 int GpuChannel::TakeRendererFileDescriptor() {
434 if (!channel_.get()) { 434 if (!channel_.get()) {
435 NOTREACHED(); 435 NOTREACHED();
436 return -1; 436 return -1;
437 } 437 }
438 return channel_->TakeClientFileDescriptor(); 438 return channel_->TakeClientFileDescriptor();
439 } 439 }
440 #endif // defined(OS_POSIX) 440 #endif // defined(OS_POSIX)
OLDNEW
« no previous file with comments | « no previous file | content/common/gpu/gpu_command_buffer_stub.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698