| OLD | NEW |
| 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" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/profiler/scoped_tracker.h" | 12 #include "base/profiler/scoped_tracker.h" |
| 13 #include "base/strings/string_number_conversions.h" | 13 #include "base/strings/string_number_conversions.h" |
| 14 #include "base/synchronization/lock.h" | 14 #include "base/synchronization/lock.h" |
| 15 #include "base/sys_info.h" | 15 #include "base/sys_info.h" |
| 16 #include "base/time/time.h" | 16 #include "base/time/time.h" |
| 17 #include "base/values.h" | 17 #include "base/values.h" |
| 18 #include "cc/base/switches.h" | 18 #include "cc/base/switches.h" |
| 19 #include "cc/blink/web_layer_impl.h" | 19 #include "cc/blink/web_layer_impl.h" |
| 20 #include "cc/debug/layer_tree_debug_state.h" | 20 #include "cc/debug/layer_tree_debug_state.h" |
| 21 #include "cc/debug/micro_benchmark.h" | 21 #include "cc/debug/micro_benchmark.h" |
| 22 #include "cc/input/layer_selection_bound.h" | 22 #include "cc/input/layer_selection_bound.h" |
| 23 #include "cc/layers/layer.h" | 23 #include "cc/layers/layer.h" |
| 24 #include "cc/output/activation_promise.h" |
| 24 #include "cc/output/begin_frame_args.h" | 25 #include "cc/output/begin_frame_args.h" |
| 25 #include "cc/output/copy_output_request.h" | 26 #include "cc/output/copy_output_request.h" |
| 26 #include "cc/output/copy_output_result.h" | 27 #include "cc/output/copy_output_result.h" |
| 27 #include "cc/output/latency_info_swap_promise.h" | 28 #include "cc/output/latency_info_swap_promise.h" |
| 28 #include "cc/output/swap_promise.h" | 29 #include "cc/output/swap_promise.h" |
| 29 #include "cc/resources/single_release_callback.h" | 30 #include "cc/resources/single_release_callback.h" |
| 30 #include "cc/scheduler/begin_frame_source.h" | 31 #include "cc/scheduler/begin_frame_source.h" |
| 31 #include "cc/trees/latency_info_swap_promise_monitor.h" | 32 #include "cc/trees/latency_info_swap_promise_monitor.h" |
| 32 #include "cc/trees/layer_tree_host.h" | 33 #include "cc/trees/layer_tree_host.h" |
| 33 #include "components/scheduler/renderer/renderer_scheduler.h" | 34 #include "components/scheduler/renderer/renderer_scheduler.h" |
| (...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 } | 521 } |
| 521 | 522 |
| 522 scoped_ptr<cc::SwapPromiseMonitor> | 523 scoped_ptr<cc::SwapPromiseMonitor> |
| 523 RenderWidgetCompositor::CreateLatencyInfoSwapPromiseMonitor( | 524 RenderWidgetCompositor::CreateLatencyInfoSwapPromiseMonitor( |
| 524 ui::LatencyInfo* latency) { | 525 ui::LatencyInfo* latency) { |
| 525 return scoped_ptr<cc::SwapPromiseMonitor>( | 526 return scoped_ptr<cc::SwapPromiseMonitor>( |
| 526 new cc::LatencyInfoSwapPromiseMonitor( | 527 new cc::LatencyInfoSwapPromiseMonitor( |
| 527 latency, layer_tree_host_.get(), NULL)); | 528 latency, layer_tree_host_.get(), NULL)); |
| 528 } | 529 } |
| 529 | 530 |
| 530 void RenderWidgetCompositor::QueueSwapPromise( | 531 void RenderWidgetCompositor::QueuePromise( |
| 531 scoped_ptr<cc::SwapPromise> swap_promise) { | 532 scoped_ptr<cc::Promise> promise) { |
| 532 layer_tree_host_->QueueSwapPromise(swap_promise.Pass()); | 533 layer_tree_host_->QueuePromise(promise.Pass()); |
| 533 } | 534 } |
| 534 | 535 |
| 535 int RenderWidgetCompositor::GetSourceFrameNumber() const { | 536 int RenderWidgetCompositor::GetSourceFrameNumber() const { |
| 536 return layer_tree_host_->source_frame_number(); | 537 return layer_tree_host_->source_frame_number(); |
| 537 } | 538 } |
| 538 | 539 |
| 539 void RenderWidgetCompositor::SetNeedsUpdateLayers() { | 540 void RenderWidgetCompositor::SetNeedsUpdateLayers() { |
| 540 layer_tree_host_->SetNeedsUpdateLayers(); | 541 layer_tree_host_->SetNeedsUpdateLayers(); |
| 541 } | 542 } |
| 542 | 543 |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 936 cc::ContextProvider* provider = | 937 cc::ContextProvider* provider = |
| 937 compositor_deps_->GetSharedMainThreadContextProvider(); | 938 compositor_deps_->GetSharedMainThreadContextProvider(); |
| 938 // provider can be NULL after the GPU process crashed enough times and we | 939 // provider can be NULL after the GPU process crashed enough times and we |
| 939 // don't want to restart it any more (falling back to software). | 940 // don't want to restart it any more (falling back to software). |
| 940 if (!provider) | 941 if (!provider) |
| 941 return; | 942 return; |
| 942 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); | 943 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); |
| 943 } | 944 } |
| 944 | 945 |
| 945 } // namespace content | 946 } // namespace content |
| OLD | NEW |