summaryrefslogtreecommitdiffstats
path: root/content/browser/gpu/compositor_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/gpu/compositor_util.cc')
-rw-r--r--content/browser/gpu/compositor_util.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/content/browser/gpu/compositor_util.cc b/content/browser/gpu/compositor_util.cc
index 9646b8f..342aafb 100644
--- a/content/browser/gpu/compositor_util.cc
+++ b/content/browser/gpu/compositor_util.cc
@@ -242,6 +242,14 @@ bool IsOneCopyUploadEnabled() {
bool IsZeroCopyUploadEnabled() {
const base::CommandLine& command_line =
*base::CommandLine::ForCurrentProcess();
+ // Single-threaded mode in the renderer process (for layout tests) is
+ // synchronous, which depends on tiles being ready to draw when raster is
+ // complete. Therefore, it must use one of zero copy, software raster, or
+ // GPU raster. So we force zero-copy on for the case where software/GPU raster
+ // is not used.
+ // TODO(reveman): One-copy can work with sync compositing: crbug.com/490295.
+ if (command_line.HasSwitch(switches::kDisableThreadedCompositing))
+ return true;
return command_line.HasSwitch(switches::kEnableZeroCopy);
}