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

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

Issue 2728183002: RendererCompositorFrameSink should handle local surface id allocation (Closed)
Patch Set: Rebase Created 3 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 side-by-side diff with in-line comments
Download patch
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 16ccae09e0618e338d0de11d2f4676883ea6cb42..662a9d2335104161d0c2492a30d91da40e2060de 100644
--- a/content/renderer/gpu/renderer_compositor_frame_sink.cc
+++ b/content/renderer/gpu/renderer_compositor_frame_sink.cc
@@ -109,6 +109,17 @@ void RendererCompositorFrameSink::DetachFromClient() {
void RendererCompositorFrameSink::SubmitCompositorFrame(
cc::CompositorFrame frame) {
+ float device_scale_factor = frame.metadata.device_scale_factor;
+ cc::RenderPass* root_pass = frame.render_pass_list.back().get();
+ gfx::Size frame_size = root_pass->output_rect.size();
+
+ if (!local_surface_id_.is_valid() || frame_size != last_frame_size_ ||
Fady Samuel 2017/03/15 12:05:48 As discussed offline you need all the conditions c
Saman Sami 2017/03/16 18:33:07 Done.
+ device_scale_factor != last_device_scale_factor_)
+ local_surface_id_ = id_allocator_.GenerateId();
+
+ last_frame_size_ = frame_size;
+ last_device_scale_factor_ = device_scale_factor;
+
{
std::unique_ptr<FrameSwapMessageQueue::SendMessageScope>
send_message_scope =
@@ -118,9 +129,9 @@ void RendererCompositorFrameSink::SubmitCompositorFrame(
frame_swap_message_queue_->DrainMessages(&messages);
FrameSwapMessageQueue::TransferMessages(&messages,
&messages_to_deliver_with_frame);
- Send(new ViewHostMsg_SwapCompositorFrame(routing_id_,
- compositor_frame_sink_id_, frame,
- messages_to_deliver_with_frame));
+ Send(new ViewHostMsg_SwapCompositorFrame(
+ routing_id_, compositor_frame_sink_id_, local_surface_id_, frame,
+ messages_to_deliver_with_frame));
// ~send_message_scope.
}
}

Powered by Google App Engine
This is Rietveld 408576698