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

Unified Diff: content/common/gpu/gpu_channel.cc

Issue 619453002: gpu: Remove Echo and SwapCompletion GL interfacess (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tits
Patch Set: rebase Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: content/common/gpu/gpu_channel.cc
diff --git a/content/common/gpu/gpu_channel.cc b/content/common/gpu/gpu_channel.cc
index 8e9c226886f5eeef45cfd5f9dc7719728ce839e7..fec767fce7c58c2d40f4d33013e49bb12d336351 100644
--- a/content/common/gpu/gpu_channel.cc
+++ b/content/common/gpu/gpu_channel.cc
@@ -662,8 +662,7 @@ bool GpuChannel::OnControlMessageReceived(const IPC::Message& msg) {
return handled;
}
-size_t GpuChannel::MatchSwapBufferMessagesPattern(
- IPC::Message* current_message) {
+size_t GpuChannel::MatchRetireSyncPointPattern(IPC::Message* current_message) {
DCHECK(current_message);
if (deferred_messages_.empty() || !current_message)
return 0;
@@ -679,8 +678,7 @@ size_t GpuChannel::MatchSwapBufferMessagesPattern(
// If the current message is AsyncFlush, the expected message sequence for
// SwapBuffer should be AsyncFlush->Echo. We only try to match Echo message.
jbauman 2014/10/01 02:15:38 Change this comment.
jbauman 2014/10/01 02:20:59 Although, to keep the logic working in a similar w
- if (current_message->type() == GpuCommandBufferMsg_AsyncFlush::ID &&
- first_message->type() == GpuCommandBufferMsg_Echo::ID &&
+ if (first_message->type() == GpuCommandBufferMsg_RetireSyncPoint::ID &&
first_message->routing_id() == routing_id) {
return 1;
}
@@ -705,6 +703,8 @@ void GpuChannel::HandleMessage() {
if (stub) {
if (!stub->IsScheduled())
return;
+ // TODO: We might want to still retire sync points, and mostly
+ // care about preempting flushes here.
if (stub->IsPreempted()) {
OnScheduled();
return;
@@ -749,16 +749,16 @@ void GpuChannel::HandleMessage() {
break;
// We process the pending messages immediately if these messages matches
- // the pattern of SwapBuffers, for example, GLRenderer always issues
- // SwapBuffers calls with a specific IPC message patterns, for example,
- // it should be AsyncFlush->Echo sequence.
+ // the pattern of Flush followed by Insert/RetireSyncPoint since
+ // sync points imply a Flush.
//
// Instead of posting a task to message loop, it could avoid the possibility
- // of being blocked by other channels, and make SwapBuffers executed as soon
- // as possible.
+ // of being blocked by other channels, and signal clients or unblock waiting
+ // contexts as soon as possible.
if (!should_handle_swapbuffer_msgs_immediate) {
- // Start from the current processing message to match SwapBuffer pattern.
- matched_messages_num = MatchSwapBufferMessagesPattern(message.get());
+ // Start from the current processing message to match RetireSyncPoint
+ // pattern.
+ matched_messages_num = MatchRetireSyncPointPattern(message.get());
should_handle_swapbuffer_msgs_immediate =
matched_messages_num > 0 && stub;
} else {

Powered by Google App Engine
This is Rietveld 408576698