| Index: gpu/command_buffer/service/shader_translator_cache.h
|
| diff --git a/gpu/command_buffer/service/shader_translator_cache.h b/gpu/command_buffer/service/shader_translator_cache.h
|
| index 8439d5339871bd455b39091cc42a3e66740f72f2..32b7f5f84a11286be36e8baac664f0cb48668031 100644
|
| --- a/gpu/command_buffer/service/shader_translator_cache.h
|
| +++ b/gpu/command_buffer/service/shader_translator_cache.h
|
| @@ -10,22 +10,23 @@
|
| #include <map>
|
|
|
| #include "base/memory/ref_counted.h"
|
| -#include "base/memory/singleton.h"
|
| #include "gpu/command_buffer/service/shader_translator.h"
|
| #include "third_party/angle/include/GLSLANG/ShaderLang.h"
|
|
|
| namespace gpu {
|
| namespace gles2 {
|
|
|
| -// This singleton and the cache that it implements is NOT thread safe.
|
| -// We're relying on the fact that the all GLES2DecoderImpl's are used
|
| -// on one thread.
|
| +// This class is not thread safe and can only be created and destroyed
|
| +// on a single thread. But it is safe to use two independent instances on two
|
| +// threads without synchronization.
|
| //
|
| // TODO(backer): Investigate using glReleaseShaderCompiler as an alternative to
|
| // to this cache.
|
| -class ShaderTranslatorCache : public ShaderTranslator::DestructionObserver {
|
| +class GPU_EXPORT ShaderTranslatorCache
|
| + : public base::RefCounted<ShaderTranslatorCache>,
|
| + public NON_EXPORTED_BASE(ShaderTranslator::DestructionObserver) {
|
| public:
|
| - static ShaderTranslatorCache* GetInstance();
|
| + ShaderTranslatorCache();
|
|
|
| // ShaderTranslator::DestructionObserver implementation
|
| virtual void OnDestruct(ShaderTranslator* translator) OVERRIDE;
|
| @@ -39,11 +40,9 @@ class ShaderTranslatorCache : public ShaderTranslator::DestructionObserver {
|
| ShCompileOptions driver_bug_workarounds);
|
|
|
| private:
|
| - ShaderTranslatorCache();
|
| + friend class base::RefCounted<ShaderTranslatorCache>;
|
| virtual ~ShaderTranslatorCache();
|
|
|
| - friend struct DefaultSingletonTraits<ShaderTranslatorCache>;
|
| -
|
| // Parameters passed into ShaderTranslator::Init
|
| struct ShaderTranslatorInitParams {
|
| ShShaderType shader_type;
|
|
|