Commit f39f128a authored by Robert Liao's avatar Robert Liao Committed by Commit Bot

Disable Direct Composition for views_examples_exe and demo (aura_demo)

InProcessContextFactory isn't set up to properly support Direct
Composition.

BUG=936249

Change-Id: I34877fad76a40d8f141fb16c7a1d6d826d6c231a
Reviewed-on: https://chromium-review.googlesource.com/c/1492482
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: default avatarZhenyao Mo <zmo@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Reviewed-by: default avatarkylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#636530}
parent bfba2e7f
...@@ -375,6 +375,7 @@ executable("demo") { ...@@ -375,6 +375,7 @@ executable("demo") {
"//ui/events", "//ui/events",
"//ui/gfx", "//ui/gfx",
"//ui/gfx/geometry", "//ui/gfx/geometry",
"//ui/gl",
"//ui/gl/init", "//ui/gl/init",
] ]
......
...@@ -2,5 +2,6 @@ include_rules = [ ...@@ -2,5 +2,6 @@ include_rules = [
"+components/viz/host", "+components/viz/host",
"+components/viz/service", # In-process viz service. "+components/viz/service", # In-process viz service.
"+ui/display", # Windows DPI Initialization. "+ui/display", # Windows DPI Initialization.
"+ui/gl/gl_switches.h", # Disable Direct Composition Workaround.
"+ui/gl/init/gl_factory.h", # To initialize GL bindings. "+ui/gl/init/gl_factory.h", # To initialize GL bindings.
] ]
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "ui/gfx/canvas.h" #include "ui/gfx/canvas.h"
#include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rect.h"
#include "ui/gfx/skia_util.h" #include "ui/gfx/skia_util.h"
#include "ui/gl/gl_switches.h"
#include "ui/gl/init/gl_factory.h" #include "ui/gl/init/gl_factory.h"
#if defined(USE_X11) #if defined(USE_X11)
...@@ -212,6 +213,12 @@ int DemoMain() { ...@@ -212,6 +213,12 @@ int DemoMain() {
int main(int argc, char** argv) { int main(int argc, char** argv) {
base::CommandLine::Init(argc, argv); base::CommandLine::Init(argc, argv);
// Disabling Direct Composition works around the limitation that
// InProcessContextFactory doesn't work with Direct Composition, causing the
// window to not render. See http://crbug.com/936249.
base::CommandLine::ForCurrentProcess()->AppendSwitch(
switches::kDisableDirectComposition);
// The exit manager is in charge of calling the dtors of singleton objects. // The exit manager is in charge of calling the dtors of singleton objects.
base::AtExitManager exit_manager; base::AtExitManager exit_manager;
......
...@@ -124,6 +124,7 @@ executable("views_examples_exe") { ...@@ -124,6 +124,7 @@ executable("views_examples_exe") {
"//ui/compositor", "//ui/compositor",
"//ui/compositor:test_support", "//ui/compositor:test_support",
"//ui/gfx", "//ui/gfx",
"//ui/gl",
"//ui/gl/init", "//ui/gl/init",
"//ui/resources:ui_test_pak", "//ui/resources:ui_test_pak",
"//ui/views", "//ui/views",
......
...@@ -4,6 +4,7 @@ include_rules = [ ...@@ -4,6 +4,7 @@ include_rules = [
"+content/public", "+content/public",
"+content/shell", "+content/shell",
"+sandbox", "+sandbox",
"+ui/gl/gl_switches.h", # Disable Direct Composition Workaround.
"+ui/gl/init/gl_factory.h", # To initialize GL bindings. "+ui/gl/init/gl_factory.h", # To initialize GL bindings.
"+ui/views_content_client", "+ui/views_content_client",
] ]
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include "ui/base/ui_base_paths.h" #include "ui/base/ui_base_paths.h"
#include "ui/compositor/test/in_process_context_factory.h" #include "ui/compositor/test/in_process_context_factory.h"
#include "ui/display/screen.h" #include "ui/display/screen.h"
#include "ui/gl/gl_switches.h"
#include "ui/gl/init/gl_factory.h" #include "ui/gl/init/gl_factory.h"
#include "ui/views/examples/example_base.h" #include "ui/views/examples/example_base.h"
#include "ui/views/examples/examples_window.h" #include "ui/views/examples/examples_window.h"
...@@ -59,6 +60,12 @@ int main(int argc, char** argv) { ...@@ -59,6 +60,12 @@ int main(int argc, char** argv) {
base::CommandLine::Init(argc, argv); base::CommandLine::Init(argc, argv);
// Disabling Direct Composition works around the limitation that
// InProcessContextFactory doesn't work with Direct Composition, causing the
// window to not render. See http://crbug.com/936249.
base::CommandLine::ForCurrentProcess()->AppendSwitch(
switches::kDisableDirectComposition);
base::AtExitManager at_exit; base::AtExitManager at_exit;
#if defined(USE_X11) #if defined(USE_X11)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment