diff options
-rw-r--r-- | gpu/command_buffer/service/mocks.h | 2 | ||||
-rw-r--r-- | gpu/command_buffer/service/program_cache.cc | 2 | ||||
-rw-r--r-- | gpu/command_buffer/service/shader_translator.cc | 16 | ||||
-rw-r--r-- | gpu/command_buffer/service/shader_translator.h | 6 | ||||
-rw-r--r-- | gpu/command_buffer/service/shader_translator_unittest.cc | 8 |
5 files changed, 24 insertions, 10 deletions
diff --git a/gpu/command_buffer/service/mocks.h b/gpu/command_buffer/service/mocks.h index 2a95db5..b643051 100644 --- a/gpu/command_buffer/service/mocks.h +++ b/gpu/command_buffer/service/mocks.h @@ -93,7 +93,7 @@ class MockShaderTranslator : public ShaderTranslatorInterface { MOCK_CONST_METHOD0(varying_map, const VariableMap&()); MOCK_CONST_METHOD0(name_map, const NameMap&()); MOCK_CONST_METHOD0( - GetStringForOptionsThatWouldEffectCompilation, std::string()); + GetStringForOptionsThatWouldAffectCompilation, std::string()); }; class MockProgramCache : public ProgramCache { diff --git a/gpu/command_buffer/service/program_cache.cc b/gpu/command_buffer/service/program_cache.cc index 6599d4a..ad395c7 100644 --- a/gpu/command_buffer/service/program_cache.cc +++ b/gpu/command_buffer/service/program_cache.cc @@ -74,7 +74,7 @@ void ProgramCache::ComputeShaderHash( const ShaderTranslatorInterface* translator, char* result) const { std::string s(( - translator ? translator->GetStringForOptionsThatWouldEffectCompilation() : + translator ? translator->GetStringForOptionsThatWouldAffectCompilation() : std::string()) + str); base::SHA1HashBytes(reinterpret_cast<const unsigned char*>(s.c_str()), s.length(), reinterpret_cast<unsigned char*>(result)); diff --git a/gpu/command_buffer/service/shader_translator.cc b/gpu/command_buffer/service/shader_translator.cc index c3279e2..3964c2d 100644 --- a/gpu/command_buffer/service/shader_translator.cc +++ b/gpu/command_buffer/service/shader_translator.cc @@ -201,9 +201,22 @@ bool ShaderTranslator::Translate(const char* shader) { return success; } -std::string ShaderTranslator::GetStringForOptionsThatWouldEffectCompilation() +std::string ShaderTranslator::GetStringForOptionsThatWouldAffectCompilation() const { +#if ANGLE_SH_VERSION >= 124 + DCHECK(compiler_ != NULL); + + ANGLEGetInfoType resource_len = 0; + ShGetInfo(compiler_, SH_RESOURCES_STRING_LENGTH, &resource_len); + DCHECK(resource_len > 1); + scoped_ptr<char[]> resource_str(new char[resource_len]); + + ShGetBuiltInResourcesString(compiler_, resource_len, resource_str.get()); + return std::string(":CompileOptions:" + + base::IntToString(GetCompileOptions())) + + std::string(resource_str.get()); +#else #if ANGLE_SH_VERSION >= 123 const size_t kNumIntFields = 21; #elif ANGLE_SH_VERSION >= 122 @@ -278,6 +291,7 @@ std::string ShaderTranslator::GetStringForOptionsThatWouldEffectCompilation() #else // ANGLE_SH_VERSION < 122 base::IntToString(compiler_options_.EXT_frag_depth)); #endif +#endif } const char* ShaderTranslator::translated_shader() const { diff --git a/gpu/command_buffer/service/shader_translator.h b/gpu/command_buffer/service/shader_translator.h index b9bacf1..d993967 100644 --- a/gpu/command_buffer/service/shader_translator.h +++ b/gpu/command_buffer/service/shader_translator.h @@ -89,8 +89,8 @@ class ShaderTranslatorInterface { virtual const NameMap& name_map() const = 0; // Return a string that is unique for a specfic set of options that would - // possibly effect compilation. - virtual std::string GetStringForOptionsThatWouldEffectCompilation() const = 0; + // possibly affect compilation. + virtual std::string GetStringForOptionsThatWouldAffectCompilation() const = 0; protected: virtual ~ShaderTranslatorInterface() {} @@ -135,7 +135,7 @@ class GPU_EXPORT ShaderTranslator virtual const VariableMap& varying_map() const OVERRIDE; virtual const NameMap& name_map() const OVERRIDE; - virtual std::string GetStringForOptionsThatWouldEffectCompilation() const + virtual std::string GetStringForOptionsThatWouldAffectCompilation() const OVERRIDE; void AddDestructionObserver(DestructionObserver* observer); diff --git a/gpu/command_buffer/service/shader_translator_unittest.cc b/gpu/command_buffer/service/shader_translator_unittest.cc index 4002c34..233b412 100644 --- a/gpu/command_buffer/service/shader_translator_unittest.cc +++ b/gpu/command_buffer/service/shader_translator_unittest.cc @@ -245,13 +245,13 @@ TEST_F(ShaderTranslatorTest, OptionsString) { SH_EMULATE_BUILT_IN_FUNCTIONS)); std::string options_1( - translator_1->GetStringForOptionsThatWouldEffectCompilation()); + translator_1->GetStringForOptionsThatWouldAffectCompilation()); std::string options_2( - translator_1->GetStringForOptionsThatWouldEffectCompilation()); + translator_1->GetStringForOptionsThatWouldAffectCompilation()); std::string options_3( - translator_2->GetStringForOptionsThatWouldEffectCompilation()); + translator_2->GetStringForOptionsThatWouldAffectCompilation()); std::string options_4( - translator_3->GetStringForOptionsThatWouldEffectCompilation()); + translator_3->GetStringForOptionsThatWouldAffectCompilation()); EXPECT_EQ(options_1, options_2); EXPECT_NE(options_1, options_3); |