summaryrefslogtreecommitdiffstats
path: root/content/gpu
diff options
context:
space:
mode:
authorkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-31 00:49:49 +0000
committerkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-31 00:49:49 +0000
commitf2e336a4de167f0618bb9e6c602037a52a10788c (patch)
treef90c60527cc10a67227ddf900969a582d1e1def1 /content/gpu
parentadeda57080446a169b93bd361978de3dbbed0f40 (diff)
downloadchromium_src-f2e336a4de167f0618bb9e6c602037a52a10788c.zip
chromium_src-f2e336a4de167f0618bb9e6c602037a52a10788c.tar.gz
chromium_src-f2e336a4de167f0618bb9e6c602037a52a10788c.tar.bz2
Revert 248049 "Ensure GL initialization only happens once, and p..."
Caused content_gl_tests to start failing on all Mac Release GPU bots. See Issue 339658 for details. > Ensure GL initialization only happens once, and provide common init path > > Currently tests initialize GL by calling into methods that should be > internal to the gl bindings code. Instead, everyone should go through > GLSurface::InitializeOneOff. > > Also GLSurface::InitializeOneOff early outs if it was already called, > leading to a pattern of initializing GL all over the place just in case > and not having a clear idea of where it should be set up. Instead, DCHECK > that it is not called more than once, and move calls to this method to > be during process startup for unit test suites instead of mid-test. > > This adds two test variants of InitializeOneOff for tests to call, that > set up OSMesa or Mock GL bindings, via GLSurface::InitializeOneOff. > > R=piman, sievers > BUG=270918 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247793 > > Review URL: https://codereview.chromium.org/135213003 TBR=danakj@chromium.org BUG=270918,339658 Review URL: https://codereview.chromium.org/151003002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248093 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/gpu')
-rw-r--r--content/gpu/gpu_child_thread.cc9
-rw-r--r--content/gpu/gpu_main.cc19
2 files changed, 4 insertions, 24 deletions
diff --git a/content/gpu/gpu_child_thread.cc b/content/gpu/gpu_child_thread.cc
index 63f850f..170b364 100644
--- a/content/gpu/gpu_child_thread.cc
+++ b/content/gpu/gpu_child_thread.cc
@@ -65,14 +65,11 @@ GpuChildThread::GpuChildThread(const std::string& channel_id)
DCHECK(
CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess) ||
CommandLine::ForCurrentProcess()->HasSwitch(switches::kInProcessGPU));
-#if !defined(OS_ANDROID)
// For single process and in-process GPU mode, we need to load and
// initialize the GL implementation and locate the GL entry points here.
- // On Android, GLSurface::InitializeOneOff() is called from BrowserMainLoop
- // before getting here. crbug.com/326295
- if (!gfx::GLSurface::InitializeOneOff())
- VLOG(1) << "gfx::GLSurface::InitializeOneOff failed";
-#endif
+ if (!gfx::GLSurface::InitializeOneOff()) {
+ VLOG(1) << "gfx::GLSurface::InitializeOneOff()";
+ }
g_thread_safe_sender.Get() = thread_safe_sender();
}
diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
index 9e6160d..f7650e7 100644
--- a/content/gpu/gpu_main.cc
+++ b/content/gpu/gpu_main.cc
@@ -219,25 +219,8 @@ int GpuMain(const MainFunctionParams& parameters) {
base::TimeTicks before_initialize_one_off = base::TimeTicks::Now();
- // Determine if we need to initialize GL here or it has already been done.
- bool gl_already_initialized = false;
-#if defined(OS_MACOSX)
- // On Mac, GLSurface::InitializeOneOff() is called from the sandbox warmup
- // code before getting here.
- gl_already_initialized = true;
-#endif
- if (command_line.HasSwitch(switches::kInProcessGPU)) {
- // With in-process GPU, GLSurface::InitializeOneOff() is called from
- // GpuChildThread before getting here.
- gl_already_initialized = true;
- }
-
// Load and initialize the GL implementation and locate the GL entry points.
- bool gl_initialized =
- gl_already_initialized
- ? gfx::GetGLImplementation() != gfx::kGLImplementationNone
- : gfx::GLSurface::InitializeOneOff();
- if (gl_initialized) {
+ if (gfx::GLSurface::InitializeOneOff()) {
// We need to collect GL strings (VENDOR, RENDERER) for blacklisting
// purposes. However, on Mac we don't actually use them. As documented in
// crbug.com/222934, due to some driver issues, glGetString could take