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

Unified Diff: content/renderer/gpu/renderer_compositor_frame_sink.cc

Issue 2789773003: Send FrameSwapMessageQueue's messages with a separate IPC (Closed)
Patch Set: Fix rebase mistake Created 3 years, 8 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
« no previous file with comments | « content/renderer/gpu/queue_message_swap_promise.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/gpu/renderer_compositor_frame_sink.cc
diff --git a/content/renderer/gpu/renderer_compositor_frame_sink.cc b/content/renderer/gpu/renderer_compositor_frame_sink.cc
index 39d110095b06863794d33c8741f0854a801c16eb..77a5d205a36d8961caaf69c39f2f46baaacb8146 100644
--- a/content/renderer/gpu/renderer_compositor_frame_sink.cc
+++ b/content/renderer/gpu/renderer_compositor_frame_sink.cc
@@ -130,18 +130,25 @@ void RendererCompositorFrameSink::SubmitCompositorFrame(
if (ShouldAllocateNewLocalSurfaceId(frame))
local_surface_id_ = id_allocator_.GenerateId();
UpdateFrameData(frame);
+
{
std::unique_ptr<FrameSwapMessageQueue::SendMessageScope>
send_message_scope =
frame_swap_message_queue_->AcquireSendMessageScope();
std::vector<std::unique_ptr<IPC::Message>> messages;
- std::vector<IPC::Message> messages_to_deliver_with_frame;
frame_swap_message_queue_->DrainMessages(&messages);
- FrameSwapMessageQueue::TransferMessages(&messages,
- &messages_to_deliver_with_frame);
+ std::vector<IPC::Message> messages_to_send;
+ FrameSwapMessageQueue::TransferMessages(&messages, &messages_to_send);
+ uint32_t frame_token = 0;
+ if (!messages_to_send.empty())
+ frame_token = frame_swap_message_queue_->AllocateFrameToken();
+ frame.metadata.frame_token = frame_token;
Send(new ViewHostMsg_SwapCompositorFrame(
- routing_id_, compositor_frame_sink_id_, local_surface_id_, frame,
- messages_to_deliver_with_frame));
+ routing_id_, compositor_frame_sink_id_, local_surface_id_, frame));
+ if (frame_token) {
+ Send(new ViewHostMsg_FrameSwapMessages(routing_id_, frame_token,
+ messages_to_send));
+ }
// ~send_message_scope.
}
}
« no previous file with comments | « content/renderer/gpu/queue_message_swap_promise.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698