diff options
author | bajones@chromium.org <bajones@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-25 19:50:33 +0000 |
---|---|---|
committer | bajones@chromium.org <bajones@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-25 19:50:33 +0000 |
commit | 06702f10ac3dc84594aa1642fbf4a5b38ff4dea7 (patch) | |
tree | a71cab9d89c3393d3d0b8039a0d04168765d6416 /gpu | |
parent | 9fb4befb27dd363d8c9f37e49e8ec7e97082aa31 (diff) | |
download | chromium_src-06702f10ac3dc84594aa1642fbf4a5b38ff4dea7.zip chromium_src-06702f10ac3dc84594aa1642fbf4a5b38ff4dea7.tar.gz chromium_src-06702f10ac3dc84594aa1642fbf4a5b38ff4dea7.tar.bz2 |
Revert 253205 "Fix stale reinit in the shader translator."
Caused an assertion error on Windows Debug bots
> Fix stale reinit in the shader translator.
>
> In some cases we would initialize, free, then re-initialize the
> shader translator within the same initialized memory. The local
> static tracking initialization would get stuck and we would fail
> on subsequent calls. We can fix this by using a non-local static.
>
> We ran into this problem in some unit tests which use the
> in-process GPU, likely because of the single-process model.
>
> BUG=344043
> R=zmo@chromium.org, jbauman@chromium.org
>
> Review URL: https://codereview.chromium.org/178043002
TBR=bajones@chromium.org
Review URL: https://codereview.chromium.org/180203003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253232 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r-- | gpu/command_buffer/service/shader_translator.cc | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/gpu/command_buffer/service/shader_translator.cc b/gpu/command_buffer/service/shader_translator.cc index 855ceca..37e2dc6 100644 --- a/gpu/command_buffer/service/shader_translator.cc +++ b/gpu/command_buffer/service/shader_translator.cc @@ -16,22 +16,20 @@ namespace { using gpu::gles2::ShaderTranslator; -bool g_translator_initialized = false; - void FinalizeShaderTranslator(void* /* dummy */) { TRACE_EVENT0("gpu", "ShFinalize"); ShFinalize(); - g_translator_initialized = false; } bool InitializeShaderTranslator() { - if (!g_translator_initialized) { + static bool initialized = false; + if (!initialized) { TRACE_EVENT0("gpu", "ShInitialize"); CHECK(ShInitialize()); base::AtExitManager::RegisterCallback(&FinalizeShaderTranslator, NULL); - g_translator_initialized = true; + initialized = true; } - return g_translator_initialized; + return initialized; } #if !defined(ANGLE_SH_VERSION) || ANGLE_SH_VERSION < 108 |