summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/program_cache.h
diff options
context:
space:
mode:
authorbajones <bajones@chromium.org>2015-03-13 17:12:46 -0700
committerCommit bot <commit-bot@chromium.org>2015-03-14 00:13:48 +0000
commit63ead731bc142b8c0f202e07bc2879fcc2984fb9 (patch)
treeb7cd3e569cb9a7f38b72dd7e9605d7b5baf12b78 /gpu/command_buffer/service/program_cache.h
parent3781bcc29be4faa3b90a6c884a3870c10454adbf (diff)
downloadchromium_src-63ead731bc142b8c0f202e07bc2879fcc2984fb9.zip
chromium_src-63ead731bc142b8c0f202e07bc2879fcc2984fb9.tar.gz
chromium_src-63ead731bc142b8c0f202e07bc2879fcc2984fb9.tar.bz2
Updated shader program caching to account for transform feedback varyings
BUG=429053 Review URL: https://codereview.chromium.org/998423005 Cr-Commit-Position: refs/heads/master@{#320607}
Diffstat (limited to 'gpu/command_buffer/service/program_cache.h')
-rw-r--r--gpu/command_buffer/service/program_cache.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/gpu/command_buffer/service/program_cache.h b/gpu/command_buffer/service/program_cache.h
index 624c436..44593df 100644
--- a/gpu/command_buffer/service/program_cache.h
+++ b/gpu/command_buffer/service/program_cache.h
@@ -42,7 +42,9 @@ class GPU_EXPORT ProgramCache {
LinkedProgramStatus GetLinkedProgramStatus(
const std::string& shader_signature_a,
const std::string& shader_signature_b,
- const LocationMap* bind_attrib_location_map) const;
+ const LocationMap* bind_attrib_location_map,
+ const std::vector<std::string>& transform_feedback_varyings,
+ GLenum transform_feedback_buffer_mode) const;
// Loads the linked program from the cache. If the program is not found or
// there was an error, PROGRAM_LOAD_FAILURE should be returned.
@@ -51,6 +53,8 @@ class GPU_EXPORT ProgramCache {
Shader* shader_a,
Shader* shader_b,
const LocationMap* bind_attrib_location_map,
+ const std::vector<std::string>& transform_feedback_varyings,
+ GLenum transform_feedback_buffer_mode,
const ShaderCacheCallback& shader_callback) = 0;
// Saves the program into the cache. If successful, the implementation should
@@ -60,6 +64,8 @@ class GPU_EXPORT ProgramCache {
const Shader* shader_a,
const Shader* shader_b,
const LocationMap* bind_attrib_location_map,
+ const std::vector<std::string>& transform_feedback_varyings,
+ GLenum transform_feedback_buffer_mode,
const ShaderCacheCallback& shader_callback) = 0;
virtual void LoadProgram(const std::string& program) = 0;
@@ -69,8 +75,10 @@ class GPU_EXPORT ProgramCache {
// Only for testing
void LinkedProgramCacheSuccess(const std::string& shader_signature_a,
- const std::string& shader_signature_b,
- const LocationMap* bind_attrib_location_map);
+ const std::string& shader_signature_b,
+ const LocationMap* bind_attrib_location_map,
+ const std::vector<std::string>& transform_feedback_varyings,
+ GLenum transform_feedback_buffer_mode);
protected:
// called by implementing class after a shader was successfully cached
@@ -86,6 +94,8 @@ class GPU_EXPORT ProgramCache {
const char* hashed_shader_0,
const char* hashed_shader_1,
const LocationMap* bind_attrib_location_map,
+ const std::vector<std::string>& transform_feedback_varyings,
+ GLenum transform_feedback_buffer_mode,
char* result) const;
void Evict(const std::string& program_hash);