Index: gpu/ipc/service/gpu_channel.cc |
diff --git a/gpu/ipc/service/gpu_channel.cc b/gpu/ipc/service/gpu_channel.cc |
index c4014d1f6271facca4a037d94667a45f07aa522a..568e6be21bd474a2638e15221dbe86b3eef3c7e8 100644 |
--- a/gpu/ipc/service/gpu_channel.cc |
+++ b/gpu/ipc/service/gpu_channel.cc |
@@ -792,8 +792,10 @@ void GpuChannel::HandleMessage( |
HandleMessageHelper(msg); |
// If we get descheduled or yield while processing a message. |
- if (stub && stub->HasUnprocessedCommands()) { |
- DCHECK_EQ((uint32_t)GpuCommandBufferMsg_AsyncFlush::ID, msg.type()); |
+ if ((stub && stub->HasUnprocessedCommands()) || |
+ !message_queue->IsScheduled()) { |
+ DCHECK((uint32_t)GpuCommandBufferMsg_AsyncFlush::ID == msg.type() || |
+ (uint32_t)GpuCommandBufferMsg_WaitSyncToken::ID == msg.type()); |
message_queue->PauseMessageProcessing(); |
} else { |
message_queue->FinishMessageProcessing(); |