summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/program_cache.h
diff options
context:
space:
mode:
authorgman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-17 19:51:09 +0000
committergman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-17 19:51:09 +0000
commitef2e2ab86b5e3ce42c1692d07ae8b8cc6fa22e2d (patch)
tree65538213d931e6d25fb5d0522fe77af496e8647f /gpu/command_buffer/service/program_cache.h
parent2d92abb6e9b343499b469416e5b60b46ee0d9e00 (diff)
downloadchromium_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.h20
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