summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/ProgramShaderCache.h
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2019-04-15 23:38:10 +1000
committerStenzek <stenzek@gmail.com>2019-04-16 00:39:43 +1000
commit616ad378b7e129645714858ebd0e541471704487 (patch)
tree39f3b0d19670b07de65a122d6152533ec5c9424d /Source/Core/VideoBackends/OGL/ProgramShaderCache.h
parent5cef09e383c7f9c3bf006407d06f68d18b2db438 (diff)
OGL: Support returning pipeline cache data
Diffstat (limited to 'Source/Core/VideoBackends/OGL/ProgramShaderCache.h')
-rw-r--r--Source/Core/VideoBackends/OGL/ProgramShaderCache.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.h b/Source/Core/VideoBackends/OGL/ProgramShaderCache.h
index 7fc267dc5d..b7e4dd6d00 100644
--- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.h
+++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.h
@@ -63,6 +63,7 @@ struct PipelineProgram
PipelineProgramKey key;
SHADER shader;
std::atomic_size_t reference_count{1};
+ bool binary_retrieved = false;
};
class ProgramShaderCache
@@ -97,11 +98,12 @@ public:
// pipeline do not match the pipeline configuration.
static u64 GenerateShaderID();
- static const PipelineProgram* GetPipelineProgram(const GLVertexFormat* vertex_format,
- const OGLShader* vertex_shader,
- const OGLShader* geometry_shader,
- const OGLShader* pixel_shader);
- static void ReleasePipelineProgram(const PipelineProgram* prog);
+ static PipelineProgram* GetPipelineProgram(const GLVertexFormat* vertex_format,
+ const OGLShader* vertex_shader,
+ const OGLShader* geometry_shader,
+ const OGLShader* pixel_shader, const void* cache_data,
+ size_t cache_data_size);
+ static void ReleasePipelineProgram(PipelineProgram* prog);
private:
typedef std::unordered_map<PipelineProgramKey, std::unique_ptr<PipelineProgram>,