diff options
author | kbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-31 00:49:49 +0000 |
---|---|---|
committer | kbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-31 00:49:49 +0000 |
commit | f2e336a4de167f0618bb9e6c602037a52a10788c (patch) | |
tree | f90c60527cc10a67227ddf900969a582d1e1def1 /content/gpu | |
parent | adeda57080446a169b93bd361978de3dbbed0f40 (diff) | |
download | chromium_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.cc | 9 | ||||
-rw-r--r-- | content/gpu/gpu_main.cc | 19 |
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 |