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

Unified Diff: ui/compositor/compositor.cc

Issue 423773002: Unified BeginFrame scheduling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: WIP in mac and android Created 6 years, 4 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: ui/compositor/compositor.cc
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
index 9c0a5134318ca49b99ff17c17ebd313bd0c65e9f..d8c54d138e3fc355a0d5a7415978966f78fcba34 100644
--- a/ui/compositor/compositor.cc
+++ b/ui/compositor/compositor.cc
@@ -19,11 +19,11 @@
#include "cc/input/input_handler.h"
#include "cc/layers/layer.h"
#include "cc/output/context_provider.h"
+#include "cc/scheduler/begin_frame_manager.h"
#include "cc/trees/layer_tree_host.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/compositor/compositor_observer.h"
#include "ui/compositor/compositor_switches.h"
-#include "ui/compositor/compositor_vsync_manager.h"
#include "ui/compositor/dip_util.h"
#include "ui/compositor/layer.h"
#include "ui/compositor/layer_animator_collection.h"
@@ -69,7 +69,7 @@ Compositor::Compositor(gfx::AcceleratedWidget widget,
widget_(widget),
compositor_thread_loop_(context_factory->GetCompositorMessageLoop()),
task_runner_(task_runner),
- vsync_manager_(new CompositorVSyncManager()),
+ begin_frame_manager_(new cc::BeginFrameManager),
device_scale_factor_(0.0f),
disable_schedule_composite_(false),
compositor_lock_(NULL),
@@ -91,6 +91,10 @@ Compositor::Compositor(gfx::AcceleratedWidget widget,
settings.partial_swap_enabled =
!command_line->HasSwitch(cc::switches::kUIDisablePartialSwap);
#endif
+#if defined(USE_AURA)
+ settings.begin_frame_publisher =
+ command_line->HasSwitch(cc::switches::kEnableBeginFrameScheduling);
+#endif
#if defined(OS_CHROMEOS)
settings.per_tile_painting_enabled = true;
#endif
@@ -125,6 +129,8 @@ Compositor::Compositor(gfx::AcceleratedWidget widget,
base::TimeTicks before_create = base::TimeTicks::Now();
if (compositor_thread_loop_) {
+ // --enable-begin-frame-scheduling is not used with threaded compositing.
+ DCHECK(!settings.begin_frame_publisher);
host_ = cc::LayerTreeHost::CreateThreaded(
this,
context_factory_->GetSharedBitmapManager(),
@@ -137,7 +143,8 @@ Compositor::Compositor(gfx::AcceleratedWidget widget,
this,
context_factory_->GetSharedBitmapManager(),
settings,
- task_runner_);
+ task_runner_,
+ begin_frame_manager_.get());
}
UMA_HISTOGRAM_TIMES("GPU.CreateBrowserCompositor",
base::TimeTicks::Now() - before_create);
@@ -228,8 +235,9 @@ void Compositor::SetBackgroundColor(SkColor color) {
ScheduleDraw();
}
-scoped_refptr<CompositorVSyncManager> Compositor::vsync_manager() const {
- return vsync_manager_;
+void Compositor::SetAuthoritativeVSyncInterval(
+ base::TimeDelta interval) const {
+ begin_frame_manager_->SetAuthoritativeVSyncInterval(interval);
brianderson 2014/08/28 02:48:07 I think it'll be better to have SetAuthoritativeVS
simonhong 2014/09/03 21:02:23 Done.
}
void Compositor::AddObserver(CompositorObserver* observer) {

Powered by Google App Engine
This is Rietveld 408576698