summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorbajones@chromium.org <bajones@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-25 19:50:33 +0000
committerbajones@chromium.org <bajones@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-25 19:50:33 +0000
commit06702f10ac3dc84594aa1642fbf4a5b38ff4dea7 (patch)
treea71cab9d89c3393d3d0b8039a0d04168765d6416 /gpu
parent9fb4befb27dd363d8c9f37e49e8ec7e97082aa31 (diff)
downloadchromium_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.cc10
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