diff options
author | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-17 19:51:09 +0000 |
---|---|---|
committer | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-17 19:51:09 +0000 |
commit | ef2e2ab86b5e3ce42c1692d07ae8b8cc6fa22e2d (patch) | |
tree | 65538213d931e6d25fb5d0522fe77af496e8647f /gpu/command_buffer/service/program_cache.h | |
parent | 2d92abb6e9b343499b469416e5b60b46ee0d9e00 (diff) | |
download | chromium_src-ef2e2ab86b5e3ce42c1692d07ae8b8cc6fa22e2d.zip chromium_src-ef2e2ab86b5e3ce42c1692d07ae8b8cc6fa22e2d.tar.gz chromium_src-ef2e2ab86b5e3ce42c1692d07ae8b8cc6fa22e2d.tar.bz2 |
Make shader translator options effect cache key
BUG=240898
Review URL: https://chromiumcodereview.appspot.com/15038009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200870 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/service/program_cache.h')
-rw-r--r-- | gpu/command_buffer/service/program_cache.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/gpu/command_buffer/service/program_cache.h b/gpu/command_buffer/service/program_cache.h index c4b50e8..c42d359 100644 --- a/gpu/command_buffer/service/program_cache.h +++ b/gpu/command_buffer/service/program_cache.h @@ -18,6 +18,7 @@ namespace gpu { namespace gles2 { class Shader; +class ShaderTranslator; // Program cache base class for caching linked gpu programs class GPU_EXPORT ProgramCache { @@ -45,13 +46,17 @@ class GPU_EXPORT ProgramCache { virtual ~ProgramCache(); CompiledShaderStatus GetShaderCompilationStatus( - const std::string& shader_src) const; - void ShaderCompilationSucceeded(const std::string& shader_src); + const std::string& shader_src, + const ShaderTranslatorInterface* translator) const; + void ShaderCompilationSucceeded(const std::string& shader_src, + const ShaderTranslatorInterface* translator); void ShaderCompilationSucceededSha(const std::string& sha_string); LinkedProgramStatus GetLinkedProgramStatus( - const std::string& untranslated_a, - const std::string& untranslated_b, + const std::string& untranslated_shader_a, + const ShaderTranslatorInterface* translator_a, + const std::string& untranslated_shader_b, + const ShaderTranslatorInterface* translator_b, const LocationMap* bind_attrib_location_map) const; // Loads the linked program from the cache. If the program is not found or @@ -59,7 +64,9 @@ class GPU_EXPORT ProgramCache { virtual ProgramLoadResult LoadLinkedProgram( GLuint program, Shader* shader_a, + const ShaderTranslatorInterface* translator_a, Shader* shader_b, + const ShaderTranslatorInterface* translator_b, const LocationMap* bind_attrib_location_map, const ShaderCacheCallback& shader_callback) const = 0; @@ -68,7 +75,9 @@ class GPU_EXPORT ProgramCache { virtual void SaveLinkedProgram( GLuint program, const Shader* shader_a, + const ShaderTranslatorInterface* translator_a, const Shader* shader_b, + const ShaderTranslatorInterface* translator_b, const LocationMap* bind_attrib_location_map, const ShaderCacheCallback& shader_callback) = 0; @@ -79,7 +88,9 @@ class GPU_EXPORT ProgramCache { // Only for testing void LinkedProgramCacheSuccess(const std::string& shader_a, + const ShaderTranslatorInterface* translator_a, const std::string& shader_b, + const ShaderTranslatorInterface* translator_b, const LocationMap* bind_attrib_location_map); protected: @@ -90,6 +101,7 @@ class GPU_EXPORT ProgramCache { // result is not null terminated void ComputeShaderHash(const std::string& shader, + const ShaderTranslatorInterface* translator, char* result) const; // result is not null terminated. hashed shaders are expected to be |