summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordanakj <danakj@chromium.org>2015-10-15 12:22:50 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-15 19:24:21 +0000
commitee38c1ccd1b12bdde48dc3b977d1d841c35f81f4 (patch)
tree80a10c44b1de5b217f5dfea4633cb0ce094021e5
parent09223dc3fa69b777d56cfa763e031c3b51bbbb4a (diff)
downloadchromium_src-ee38c1ccd1b12bdde48dc3b977d1d841c35f81f4.zip
chromium_src-ee38c1ccd1b12bdde48dc3b977d1d841c35f81f4.tar.gz
chromium_src-ee38c1ccd1b12bdde48dc3b977d1d841c35f81f4.tar.bz2
Add a flag to disable cached picture raster for blink.
This makes cc raster directly from the display item list, when the --disable-cached-picture-raster flag is present, which is what we can see in tracing, and will help with potential debugging now that --disable-slimming-paint is gone, until we remove the cached picture entirely. R=pdr TBR=antrim BUG=543208 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1405803002 Cr-Commit-Position: refs/heads/master@{#354323}
-rw-r--r--cc/base/switches.cc9
-rw-r--r--cc/base/switches.h3
-rw-r--r--cc/blink/web_content_layer_impl.cc10
-rw-r--r--chrome/browser/chromeos/login/chrome_restart_request.cc3
-rw-r--r--content/browser/renderer_host/render_process_host_impl.cc1
-rw-r--r--content/public/common/content_switches.cc8
-rw-r--r--content/public/common/content_switches.h2
-rw-r--r--ui/compositor/compositor.cc2
-rw-r--r--ui/compositor/compositor_switches.cc3
-rw-r--r--ui/compositor/compositor_switches.h1
10 files changed, 29 insertions, 13 deletions
diff --git a/cc/base/switches.cc b/cc/base/switches.cc
index 0db1503..9a5b039 100644
--- a/cc/base/switches.cc
+++ b/cc/base/switches.cc
@@ -11,6 +11,12 @@ namespace switches {
const char kDisableThreadedAnimation[] = "disable-threaded-animation";
+// Disables the use of a cached picture for raster in the renderer,
+// making raster go directly from the display item list (this is the data
+// structure surfaced to tracing). This is useful for debugging to remove
+// the cached picture from the pipeline to narrow down bugs.
+const char kDisableCachedPictureRaster[] = "disable-cached-picture-raster";
+
// Disables layer-edge anti-aliasing in the compositor.
const char kDisableCompositedAntialiasing[] =
"disable-composited-antialiasing";
@@ -44,9 +50,6 @@ const char kStrictLayerPropertyChangeChecking[] =
const char kEnablePropertyTreeVerification[] =
"enable-property-tree-verification";
-// Disable partial swap which is needed for some OpenGL drivers / emulators.
-const char kUIDisablePartialSwap[] = "ui-disable-partial-swap";
-
// Use a BeginFrame signal from browser to renderer to schedule rendering.
const char kEnableBeginFrameScheduling[] = "enable-begin-frame-scheduling";
diff --git a/cc/base/switches.h b/cc/base/switches.h
index 3bce14e..d72b250 100644
--- a/cc/base/switches.h
+++ b/cc/base/switches.h
@@ -17,10 +17,10 @@ namespace switches {
// Switches for the renderer compositor only.
CC_EXPORT extern const char kDisableThreadedAnimation[];
+CC_EXPORT extern const char kDisableCachedPictureRaster[];
CC_EXPORT extern const char kDisableCompositedAntialiasing[];
CC_EXPORT extern const char kDisableMainFrameBeforeActivation[];
CC_EXPORT extern const char kEnableMainFrameBeforeActivation[];
-CC_EXPORT extern const char kJankInsteadOfCheckerboard[];
CC_EXPORT extern const char kTopControlsHideThreshold[];
CC_EXPORT extern const char kTopControlsShowThreshold[];
CC_EXPORT extern const char kSlowDownRasterScaleFactor[];
@@ -28,7 +28,6 @@ CC_EXPORT extern const char kStrictLayerPropertyChangeChecking[];
CC_EXPORT extern const char kEnablePropertyTreeVerification[];
// Switches for both the renderer and ui compositors.
-CC_EXPORT extern const char kUIDisablePartialSwap[];
CC_EXPORT extern const char kEnableBeginFrameScheduling[];
CC_EXPORT extern const char kEnableGpuBenchmarking[];
diff --git a/cc/blink/web_content_layer_impl.cc b/cc/blink/web_content_layer_impl.cc
index 4ccd763..b7f4989 100644
--- a/cc/blink/web_content_layer_impl.cc
+++ b/cc/blink/web_content_layer_impl.cc
@@ -4,6 +4,8 @@
#include "cc/blink/web_content_layer_impl.h"
+#include "base/command_line.h"
+#include "cc/base/switches.h"
#include "cc/blink/web_display_item_list_impl.h"
#include "cc/layers/picture_layer.h"
#include "cc/playback/display_item_list_settings.h"
@@ -18,6 +20,12 @@ using cc::PictureLayer;
namespace cc_blink {
+static bool UseCachedPictureRaster() {
+ static bool use = !base::CommandLine::ForCurrentProcess()->HasSwitch(
+ cc::switches::kDisableCachedPictureRaster);
+ return use;
+}
+
static blink::WebContentLayerClient::PaintingControlSetting
PaintingControlToWeb(
cc::ContentLayerClient::PaintingControlSetting painting_control) {
@@ -69,7 +77,7 @@ WebContentLayerImpl::PaintContentsToDisplayList(
const gfx::Rect& clip,
cc::ContentLayerClient::PaintingControlSetting painting_control) {
cc::DisplayItemListSettings settings;
- settings.use_cached_picture = true;
+ settings.use_cached_picture = UseCachedPictureRaster();
scoped_refptr<cc::DisplayItemList> display_list =
cc::DisplayItemList::Create(clip, settings);
diff --git a/chrome/browser/chromeos/login/chrome_restart_request.cc b/chrome/browser/chromeos/login/chrome_restart_request.cc
index 1cd1713..9fd082e 100644
--- a/chrome/browser/chromeos/login/chrome_restart_request.cc
+++ b/chrome/browser/chromeos/login/chrome_restart_request.cc
@@ -146,6 +146,7 @@ void DeriveCommandLine(const GURL& start_url,
#if defined(ENABLE_TOPCHROME_MD)
::switches::kTopChromeMD,
#endif
+ ::switches::kUIDisablePartialSwap,
::switches::kUIEnableCompositorAnimationTimelines,
::switches::kUIPrioritizeInGpuProcess,
#if defined(USE_CRAS)
@@ -185,6 +186,7 @@ void DeriveCommandLine(const GURL& start_url,
// Please keep these in alphabetical order. Non-UI Compositor switches
// here should also be added to
// content/browser/renderer_host/render_process_host_impl.cc.
+ cc::switches::kDisableCachedPictureRaster,
cc::switches::kDisableCompositedAntialiasing,
cc::switches::kDisableMainFrameBeforeActivation,
cc::switches::kDisableThreadedAnimation,
@@ -200,7 +202,6 @@ void DeriveCommandLine(const GURL& start_url,
cc::switches::kShowScreenSpaceRects,
cc::switches::kShowSurfaceDamageRects,
cc::switches::kSlowDownRasterScaleFactor,
- cc::switches::kUIDisablePartialSwap,
chromeos::switches::kConsumerDeviceManagementUrl,
chromeos::switches::kDbusStub,
chromeos::switches::kDbusUnstubClients,
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 8b96d45..f6e3c31 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1351,6 +1351,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kVModule,
// Please keep these in alphabetical order. Compositor switches here should
// also be added to chrome/browser/chromeos/login/chrome_restart_request.cc.
+ cc::switches::kDisableCachedPictureRaster,
cc::switches::kDisableCompositedAntialiasing,
cc::switches::kDisableMainFrameBeforeActivation,
cc::switches::kDisableThreadedAnimation,
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
index ace7157..6497faf 100644
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
@@ -83,10 +83,6 @@ const char kDisableBackingStoreLimit[] = "disable-backing-store-limit";
// features.
const char kDisableBlinkFeatures[] = "disable-blink-features";
-// Disable the creation of compositing layers when it would prevent LCD text.
-const char kDisablePreferCompositingToLCDText[] =
- "disable-prefer-compositing-to-lcd-text";
-
// Disables HTML5 DB support.
const char kDisableDatabases[] = "disable-databases";
@@ -216,6 +212,10 @@ const char kDisablePinch[] = "disable-pinch";
// --extra-plugin-dir and --load-plugin switches.
const char kDisablePluginsDiscovery[] = "disable-plugins-discovery";
+// Disable the creation of compositing layers when it would prevent LCD text.
+const char kDisablePreferCompositingToLCDText[] =
+ "disable-prefer-compositing-to-lcd-text";
+
// Disables the Presentation API.
const char kDisablePresentationAPI[] = "disable-presentation-api";
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
index 5d47e85..32a67e0 100644
--- a/content/public/common/content_switches.h
+++ b/content/public/common/content_switches.h
@@ -34,7 +34,6 @@ CONTENT_EXPORT extern const char kDisableAcceleratedJpegDecoding[];
CONTENT_EXPORT extern const char kDisableAcceleratedMjpegDecode[];
CONTENT_EXPORT extern const char kDisableAcceleratedVideoDecode[];
extern const char kDisableBackingStoreLimit[];
-CONTENT_EXPORT extern const char kDisablePreferCompositingToLCDText[];
CONTENT_EXPORT extern const char kDisableDatabases[];
CONTENT_EXPORT extern const char kDisableDelayAgnosticAec[];
extern const char kDisableDirectNPAPIRequests[];
@@ -60,6 +59,7 @@ CONTENT_EXPORT extern const char kDisableHangMonitor[];
CONTENT_EXPORT extern const char kDisableHideInactiveStackedTabCloseButtons[];
extern const char kDisableHistogramCustomizer[];
CONTENT_EXPORT extern const char kDisableLCDText[];
+CONTENT_EXPORT extern const char kDisablePreferCompositingToLCDText[];
CONTENT_EXPORT extern const char kEnablePrefixedEncryptedMedia[];
extern const char kDisableKillAfterBadIPC[];
CONTENT_EXPORT extern const char kDisableLocalStorage[];
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
index e648c8a..cab5d6e 100644
--- a/ui/compositor/compositor.cc
+++ b/ui/compositor/compositor.cc
@@ -109,7 +109,7 @@ Compositor::Compositor(ui::ContextFactory* context_factory,
}
}
settings.renderer_settings.partial_swap_enabled =
- !command_line->HasSwitch(cc::switches::kUIDisablePartialSwap);
+ !command_line->HasSwitch(switches::kUIDisablePartialSwap);
#if defined(OS_WIN)
settings.renderer_settings.finish_rendering_on_resize = true;
#endif
diff --git a/ui/compositor/compositor_switches.cc b/ui/compositor/compositor_switches.cc
index 8a5fb98..113cd5e 100644
--- a/ui/compositor/compositor_switches.cc
+++ b/ui/compositor/compositor_switches.cc
@@ -15,6 +15,9 @@ const char kEnableHardwareOverlays[] = "enable-hardware-overlays";
// Forces tests to produce pixel output when they normally wouldn't.
const char kEnablePixelOutputInTests[] = "enable-pixel-output-in-tests";
+// Disable partial swap which is needed for some OpenGL drivers / emulators.
+const char kUIDisablePartialSwap[] = "ui-disable-partial-swap";
+
const char kUIEnableCompositorAnimationTimelines[] =
"ui-enable-compositor-animation-timelines";
diff --git a/ui/compositor/compositor_switches.h b/ui/compositor/compositor_switches.h
index 683f055..d2fd68c 100644
--- a/ui/compositor/compositor_switches.h
+++ b/ui/compositor/compositor_switches.h
@@ -11,6 +11,7 @@ namespace switches {
COMPOSITOR_EXPORT extern const char kEnableHardwareOverlays[];
COMPOSITOR_EXPORT extern const char kEnablePixelOutputInTests[];
+COMPOSITOR_EXPORT extern const char kUIDisablePartialSwap[];
COMPOSITOR_EXPORT extern const char kUIEnableCompositorAnimationTimelines[];
COMPOSITOR_EXPORT extern const char kUIEnableRGBA4444Textures[];
COMPOSITOR_EXPORT extern const char kUIEnableZeroCopy[];