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

Unified Diff: services/ui/ws/frame_generator.cc

Issue 2763623002: [ui/ws] Acknowledge BeginFrames in FrameGenerator + add tests. (Closed)
Patch Set: address comments 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
« no previous file with comments | « services/ui/ws/frame_generator.h ('k') | services/ui/ws/frame_generator_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/ws/frame_generator.cc
diff --git a/services/ui/ws/frame_generator.cc b/services/ui/ws/frame_generator.cc
index 87f0f1426288ac97294c4ec076df3ff790c908b7..ada61585a6b9f821081b5c9e9edc486f9abaec01 100644
--- a/services/ui/ws/frame_generator.cc
+++ b/services/ui/ws/frame_generator.cc
@@ -98,17 +98,24 @@ void FrameGenerator::SetExternalTilePriorityConstraints(
const gfx::Transform& transform) {}
void FrameGenerator::OnBeginFrame(const cc::BeginFrameArgs& begin_frame_args) {
+ current_begin_frame_ack_ = cc::BeginFrameAck(
+ begin_frame_args.source_id, begin_frame_args.sequence_number,
+ begin_frame_args.sequence_number, 0, false);
if (!root_window_->visible() ||
begin_frame_args.type == cc::BeginFrameArgs::MISSED) {
+ begin_frame_source_->DidFinishFrame(this, current_begin_frame_ack_);
return;
}
+ current_begin_frame_ack_.has_damage = true;
+ last_begin_frame_args_ = begin_frame_args;
+
// TODO(fsamuel): We should add a trace for generating a top level frame.
cc::CompositorFrame frame(GenerateCompositorFrame(root_window_->bounds()));
-
compositor_frame_sink_->SubmitCompositorFrame(std::move(frame));
+
+ begin_frame_source_->DidFinishFrame(this, current_begin_frame_ack_);
SetNeedsBeginFrame(false);
- last_begin_frame_args_ = begin_frame_args;
}
const cc::BeginFrameArgs& FrameGenerator::LastUsedBeginFrameArgs() const {
@@ -150,6 +157,7 @@ cc::CompositorFrame FrameGenerator::GenerateCompositorFrame(
frame.render_pass_list.push_back(std::move(invert_pass));
}
frame.metadata.device_scale_factor = device_scale_factor_;
+ frame.metadata.begin_frame_ack = current_begin_frame_ack_;
if (window_manager_surface_info_.is_valid()) {
frame.metadata.referenced_surfaces.push_back(
« no previous file with comments | « services/ui/ws/frame_generator.h ('k') | services/ui/ws/frame_generator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698