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

Side by Side Diff: content/renderer/gpu/render_widget_compositor.cc

Issue 1137823002: Pass collected frame timing events to Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Send finishTime as well for Render events. Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/gpu/render_widget_compositor.h" 5 #include "content/renderer/gpu/render_widget_compositor.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 void RenderWidgetCompositor::ApplyViewportDeltas( 877 void RenderWidgetCompositor::ApplyViewportDeltas(
878 const gfx::Vector2d& scroll_delta, 878 const gfx::Vector2d& scroll_delta,
879 float page_scale, 879 float page_scale,
880 float top_controls_delta) { 880 float top_controls_delta) {
881 widget_->webwidget()->applyViewportDeltas( 881 widget_->webwidget()->applyViewportDeltas(
882 scroll_delta, 882 scroll_delta,
883 page_scale, 883 page_scale,
884 top_controls_delta); 884 top_controls_delta);
885 } 885 }
886 886
887 static std::tuple<int, double, double> CompositeTimingEventToDouble(
vmpstr 2015/05/12 23:48:26 I don't think you can use a tuple unless we have f
MikeB 2015/05/21 21:53:08 Done.
888 const cc::FrameTimingTracker::CompositeTimingEvent& event) {
889 return std::make_tuple(event.frame_id,
890 (event.timestamp - base::TimeTicks()).InSecondsF(),
891 0);
892 }
893
894 void RenderWidgetCompositor::RecordCompositeTimings(
895 cc::FrameTimingTracker::CompositeTimingSet* composites) {
896 for (const auto& record : *composites ) {
vmpstr 2015/05/12 23:48:26 Can you give names (variables) to record.first and
MikeB 2015/05/21 21:53:08 Done.
897 std::vector<std::tuple<int, double, double>>
898 compositeTiming(record.second.size());
899 std::transform(record.second.begin(), record.second.end(),
900 compositeTiming.begin(), CompositeTimingEventToDouble);
901 widget_->webwidget()->recordFrameTimingEvent(
902 blink::WebWidget::CompositeEvent, record.first, compositeTiming);
903 }
904 }
905
906 static std::tuple<int, double, double> MainFrameTimingEventToDouble(
907 const cc::FrameTimingTracker::MainFrameTimingEvent& event) {
908 return std::make_tuple(event.frame_id,
909 (event.timestamp - base::TimeTicks()).InSecondsF(),
910 (event.end_time - base::TimeTicks()).InSecondsF());
911 }
912
913 void RenderWidgetCompositor::RecordRenderTimings(
914 cc::FrameTimingTracker::MainFrameTimingSet* renders) {
915 for (const auto& record : *renders ) {
916 std::vector<std::tuple<int, double, double>>
917 renderTiming(record.second.size());
918 std::transform(record.second.begin(), record.second.end(),
919 renderTiming.begin(), MainFrameTimingEventToDouble);
920 widget_->webwidget()->recordFrameTimingEvent(
921 blink::WebWidget::RenderEvent, record.first, renderTiming);
922 }
923 }
924
887 void RenderWidgetCompositor::RequestNewOutputSurface() { 925 void RenderWidgetCompositor::RequestNewOutputSurface() {
888 // If the host is closing, then no more compositing is possible. This 926 // If the host is closing, then no more compositing is possible. This
889 // prevents shutdown races between handling the close message and 927 // prevents shutdown races between handling the close message and
890 // the CreateOutputSurface task. 928 // the CreateOutputSurface task.
891 if (widget_->host_closing()) 929 if (widget_->host_closing())
892 return; 930 return;
893 931
894 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/466870 932 // TODO(robliao): Remove ScopedTracker below once https://crbug.com/466870
895 // is fixed. 933 // is fixed.
896 tracked_objects::ScopedTracker tracking_profile( 934 tracked_objects::ScopedTracker tracking_profile(
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
970 cc::ContextProvider* provider = 1008 cc::ContextProvider* provider =
971 compositor_deps_->GetSharedMainThreadContextProvider(); 1009 compositor_deps_->GetSharedMainThreadContextProvider();
972 // provider can be NULL after the GPU process crashed enough times and we 1010 // provider can be NULL after the GPU process crashed enough times and we
973 // don't want to restart it any more (falling back to software). 1011 // don't want to restart it any more (falling back to software).
974 if (!provider) 1012 if (!provider)
975 return; 1013 return;
976 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); 1014 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM();
977 } 1015 }
978 1016
979 } // namespace content 1017 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698