gfx/android: Integrate renderer threads with Android Dynamic Performance Framework
Set up a RenderingPipeline for CC in the renderer process to provide
feedback to ADPF.
Bug: 1157620
Change-Id: Ibc517cc34cf6a70b27f0067873dd69fd8cdfb389
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2617507
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Xianzhu Wang <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Reviewed-by: Jonathan Backer <[email protected]>
Reviewed-by: danakj <[email protected]>
Commit-Queue: Bo <[email protected]>
Cr-Commit-Position: refs/heads/master@{#860451}
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 841c6d6..fdd4c20c 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -79,6 +79,10 @@
class TaskGraphRunner;
}
+namespace gfx {
+class RenderingPipeline;
+}
+
namespace gpu {
class GpuChannelHost;
}
@@ -203,6 +207,8 @@
blink::scheduler::WebThreadScheduler* GetWebMainThreadScheduler() override;
cc::TaskGraphRunner* GetTaskGraphRunner() override;
std::unique_ptr<cc::UkmRecorderFactory> CreateUkmRecorderFactory() override;
+ gfx::RenderingPipeline* GetMainThreadPipeline() override;
+ gfx::RenderingPipeline* GetCompositorThreadPipeline() override;
bool IsLcdTextEnabled();
bool IsElasticOverscrollEnabled();
@@ -520,6 +526,9 @@
// Thread for running multimedia operations (e.g., video decoding).
std::unique_ptr<base::Thread> media_thread_;
+ std::unique_ptr<gfx::RenderingPipeline> main_thread_pipeline_;
+ std::unique_ptr<gfx::RenderingPipeline> compositor_thread_pipeline_;
+
// Will point to appropriate task runner after initialization,
// regardless of whether |compositor_thread_| is overriden.
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;