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

Unified Diff: content/browser/renderer_host/compositor_impl_android.cc

Issue 999173004: cc: Move worker threads to content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment and webview fix Created 5 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/browser/renderer_host/compositor_impl_android.cc
diff --git a/content/browser/renderer_host/compositor_impl_android.cc b/content/browser/renderer_host/compositor_impl_android.cc
index 010f8e2484e4810516adbf94a21dc1fcd34c3051..33e5b5ce68eeeb8a3332bdad4bb72b3064a3105d 100644
--- a/content/browser/renderer_host/compositor_impl_android.cc
+++ b/content/browser/renderer_host/compositor_impl_android.cc
@@ -18,6 +18,7 @@
#include "base/memory/weak_ptr.h"
#include "base/single_thread_task_runner.h"
#include "base/synchronization/lock.h"
+#include "base/threading/simple_thread.h"
#include "base/threading/thread.h"
#include "base/threading/thread_checker.h"
#include "cc/base/switches.h"
@@ -27,6 +28,7 @@
#include "cc/output/context_provider.h"
#include "cc/output/output_surface.h"
#include "cc/output/output_surface_client.h"
+#include "cc/resources/task_graph_runner.h"
#include "cc/scheduler/begin_frame_source.h"
#include "cc/surfaces/onscreen_display_client.h"
#include "cc/surfaces/surface_display_output_surface.h"
@@ -137,6 +139,29 @@ base::LazyInstance<cc::SurfaceManager> g_surface_manager =
int g_surface_id_namespace = 0;
+class SingleThreadTaskGraphRunner
+ : public cc::TaskGraphRunner,
+ public base::DelegateSimpleThread::Delegate {
+ public:
+ SingleThreadTaskGraphRunner() : worker_thread_(this, "CompositorWorker") {
+ worker_thread_.Start();
+ }
+
+ ~SingleThreadTaskGraphRunner() override {
+ Shutdown();
+ worker_thread_.Join();
+ }
+
+ private:
+ // Overridden from base::DelegateSimpleThread::Delegate:
+ void Run() override { cc::TaskGraphRunner::Run(); }
+
+ base::DelegateSimpleThread worker_thread_;
+};
+
+base::LazyInstance<SingleThreadTaskGraphRunner> g_task_graph_runner =
+ LAZY_INSTANCE_INITIALIZER;
+
} // anonymous namespace
// static
@@ -395,13 +420,9 @@ void CompositorImpl::CreateLayerTreeHost() {
settings.single_thread_proxy_scheduler = false;
host_ = cc::LayerTreeHost::CreateSingleThreaded(
- this,
- this,
- HostSharedBitmapManager::current(),
- BrowserGpuMemoryBufferManager::current(),
- settings,
- base::MessageLoopProxy::current(),
- nullptr);
+ this, this, HostSharedBitmapManager::current(),
+ BrowserGpuMemoryBufferManager::current(), g_task_graph_runner.Pointer(),
+ settings, base::MessageLoopProxy::current(), nullptr);
host_->SetRootLayer(root_layer_);
host_->SetVisible(true);

Powered by Google App Engine
This is Rietveld 408576698