summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-08 01:23:38 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-08 01:23:38 +0000
commit555e75d02851c9e8ed138f49a6b254dfcac8c1c5 (patch)
tree685061ba27a9cc11e53096357f9450e06f7dbd83
parent19cd4eb279d4ef9985d1cee3cf2a99fd20d61f14 (diff)
downloadchromium_src-555e75d02851c9e8ed138f49a6b254dfcac8c1c5.zip
chromium_src-555e75d02851c9e8ed138f49a6b254dfcac8c1c5.tar.gz
chromium_src-555e75d02851c9e8ed138f49a6b254dfcac8c1c5.tar.bz2
Add command line switch for enabling threaded compositing
This is a patch against the patch in http://codereview.chromium.org/8139020/ BUG=none TEST=none Review URL: http://codereview.chromium.org/8163008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104623 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--build/common.gypi3
-rw-r--r--chrome/browser/tab_contents/render_view_host_delegate_helper.cc2
-rw-r--r--content/browser/renderer_host/browser_render_process_host.cc1
-rw-r--r--content/common/content_switches.cc3
-rw-r--r--content/common/content_switches.h1
-rw-r--r--content/common/view_messages.h1
-rw-r--r--content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h3
-rw-r--r--content/renderer/render_view.cc3
-rw-r--r--webkit/glue/webpreferences.cc3
-rw-r--r--webkit/glue/webpreferences.h1
10 files changed, 16 insertions, 5 deletions
diff --git a/build/common.gypi b/build/common.gypi
index f3c8f13..1d3c3aa 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -970,9 +970,6 @@
['remoting==1', {
'defines': ['ENABLE_REMOTING=1'],
}],
- ['use_threaded_compositing==1', {
- 'defines': ['WTF_USE_THREADED_COMPOSITING'],
- }],
['p2p_apis==1', {
'defines': ['ENABLE_P2P_APIS=1'],
}],
diff --git a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
index a494d4d..5163ca8 100644
--- a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
+++ b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
@@ -443,6 +443,8 @@ WebPreferences RenderViewHostDelegateHelper::GetWebkitPrefs(
web_prefs.accelerated_compositing_enabled =
GpuProcessHost::gpu_enabled() &&
!command_line.HasSwitch(switches::kDisableAcceleratedCompositing);
+ web_prefs.threaded_compositing_enabled =
+ command_line.HasSwitch(switches::kEnableThreadedCompositing);
web_prefs.force_compositing_mode =
command_line.HasSwitch(switches::kForceCompositingMode);
web_prefs.allow_webui_compositing =
diff --git a/content/browser/renderer_host/browser_render_process_host.cc b/content/browser/renderer_host/browser_render_process_host.cc
index 3215320..4f3e515 100644
--- a/content/browser/renderer_host/browser_render_process_host.cc
+++ b/content/browser/renderer_host/browser_render_process_host.cc
@@ -574,6 +574,7 @@ void BrowserRenderProcessHost::PropagateBrowserCommandLineToRenderer(
#endif
switches::kEnableSeccompSandbox,
switches::kEnableStatsTable,
+ switches::kEnableThreadedCompositing,
switches::kEnableVideoFullscreen,
switches::kEnableVideoLogging,
switches::kFullMemoryCrashReport,
diff --git a/content/common/content_switches.cc b/content/common/content_switches.cc
index 8811f69..2b656d9 100644
--- a/content/common/content_switches.cc
+++ b/content/common/content_switches.cc
@@ -227,6 +227,9 @@ const char kEnableSeccompSandbox[] = "enable-seccomp-sandbox";
// Enables StatsTable, logging statistics to a global named shared memory table.
const char kEnableStatsTable[] = "enable-stats-table";
+// Enable multithreaded GPU compositing of web content.
+const char kEnableThreadedCompositing[] = "enable-threaded-compositing";
+
// Enable use of experimental TCP sockets API for sending data in the
// SYN packet.
const char kEnableTcpFastOpen[] = "enable-tcp-fastopen";
diff --git a/content/common/content_switches.h b/content/common/content_switches.h
index adb170f..2f8eed1 100644
--- a/content/common/content_switches.h
+++ b/content/common/content_switches.h
@@ -80,6 +80,7 @@ extern const char kEnableSSLCachedInfo[];
extern const char kEnableSandboxLogging[];
extern const char kEnableSeccompSandbox[];
CONTENT_EXPORT extern const char kEnableStatsTable[];
+CONTENT_EXPORT extern const char kEnableThreadedCompositing[];
CONTENT_EXPORT extern const char kEnableTcpFastOpen[];
extern const char kEnableVideoFullscreen[];
extern const char kEnableVideoLogging[];
diff --git a/content/common/view_messages.h b/content/common/view_messages.h
index 24be5ef..e8dea34 100644
--- a/content/common/view_messages.h
+++ b/content/common/view_messages.h
@@ -228,6 +228,7 @@ IPC_STRUCT_TRAITS_BEGIN(WebPreferences)
IPC_STRUCT_TRAITS_MEMBER(show_composited_layer_tree)
IPC_STRUCT_TRAITS_MEMBER(show_fps_counter)
IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_enabled)
+ IPC_STRUCT_TRAITS_MEMBER(threaded_compositing_enabled)
IPC_STRUCT_TRAITS_MEMBER(force_compositing_mode)
IPC_STRUCT_TRAITS_MEMBER(allow_webui_compositing)
IPC_STRUCT_TRAITS_MEMBER(composite_to_texture_enabled)
diff --git a/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h b/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h
index c1265f1..a7b803a 100644
--- a/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h
+++ b/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h
@@ -464,10 +464,9 @@ class WebGraphicsContext3DCommandBufferImpl
int32 render_view_routing_id_;
bool render_directly_to_web_view_;
-#ifndef WTF_USE_THREADED_COMPOSITING
// If rendering directly to WebView, weak pointer to it.
WebKit::WebView* web_view_;
-#endif
+
#if defined(OS_MACOSX)
// "Fake" plugin window handle in browser process for the compositor's output.
gfx::PluginWindowHandle plugin_handle_;
diff --git a/content/renderer/render_view.cc b/content/renderer/render_view.cc
index a9bcb65..bb518ef 100644
--- a/content/renderer/render_view.cc
+++ b/content/renderer/render_view.cc
@@ -4001,6 +4001,9 @@ void RenderView::OnWasRestored(bool needs_repainting) {
}
bool RenderView::SupportsAsynchronousSwapBuffers() {
+ if (WebWidgetHandlesCompositorScheduling())
+ return false;
+
WebKit::WebGraphicsContext3D* context = webview()->graphicsContext3D();
if (!context)
return false;
diff --git a/webkit/glue/webpreferences.cc b/webkit/glue/webpreferences.cc
index 08fd7db..a554137 100644
--- a/webkit/glue/webpreferences.cc
+++ b/webkit/glue/webpreferences.cc
@@ -74,6 +74,7 @@ WebPreferences::WebPreferences()
show_fps_counter(false),
asynchronous_spell_checking_enabled(true),
accelerated_compositing_enabled(false),
+ threaded_compositing_enabled(false),
force_compositing_mode(false),
allow_webui_compositing(false),
composite_to_texture_enabled(false),
@@ -249,6 +250,8 @@ void WebPreferences::Apply(WebView* web_view) const {
// Enable gpu-accelerated compositing if requested on the command line.
settings->setAcceleratedCompositingEnabled(accelerated_compositing_enabled);
+ settings->setUseThreadedCompositor(threaded_compositing_enabled);
+
// Always enter compositing if requested on the command line.
settings->setForceCompositingMode(force_compositing_mode);
diff --git a/webkit/glue/webpreferences.h b/webkit/glue/webpreferences.h
index 927c18c..6634c1d 100644
--- a/webkit/glue/webpreferences.h
+++ b/webkit/glue/webpreferences.h
@@ -88,6 +88,7 @@ struct WebPreferences {
bool show_fps_counter;
bool asynchronous_spell_checking_enabled;
bool accelerated_compositing_enabled;
+ bool threaded_compositing_enabled;
bool force_compositing_mode;
bool allow_webui_compositing;
bool composite_to_texture_enabled;