diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-04-10 23:03:52 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-04-14 10:13:19 +0200 |
commit | f15c59a164a7c4deafb77e9fc698cdf9a08691ce (patch) | |
tree | f232add61779165ba2d03773384b9df86c2f7af0 /src/video_core/renderer_opengl/gl_shader_cache.h | |
parent | gl_device: Implement interface and add uniform offset alignment (diff) | |
download | yuzu-f15c59a164a7c4deafb77e9fc698cdf9a08691ce.tar yuzu-f15c59a164a7c4deafb77e9fc698cdf9a08691ce.tar.gz yuzu-f15c59a164a7c4deafb77e9fc698cdf9a08691ce.tar.bz2 yuzu-f15c59a164a7c4deafb77e9fc698cdf9a08691ce.tar.lz yuzu-f15c59a164a7c4deafb77e9fc698cdf9a08691ce.tar.xz yuzu-f15c59a164a7c4deafb77e9fc698cdf9a08691ce.tar.zst yuzu-f15c59a164a7c4deafb77e9fc698cdf9a08691ce.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_shader_cache.h')
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_cache.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.h b/src/video_core/renderer_opengl/gl_shader_cache.h index 0cf8e0b3d..a332087f8 100644 --- a/src/video_core/renderer_opengl/gl_shader_cache.h +++ b/src/video_core/renderer_opengl/gl_shader_cache.h @@ -27,6 +27,7 @@ class System; namespace OpenGL { class CachedShader; +class Device; class RasterizerOpenGL; struct UnspecializedShader; @@ -38,7 +39,7 @@ using PrecompiledShaders = std::unordered_map<u64, GLShader::ProgramResult>; class CachedShader final : public RasterizerCacheObject { public: - explicit CachedShader(VAddr cpu_addr, u64 unique_identifier, + explicit CachedShader(const Device& device, VAddr cpu_addr, u64 unique_identifier, Maxwell::ShaderProgram program_type, ShaderDiskCacheOpenGL& disk_cache, const PrecompiledPrograms& precompiled_programs, ProgramCode&& program_code, ProgramCode&& program_code_b, u8* host_ptr); @@ -112,7 +113,8 @@ private: class ShaderCacheOpenGL final : public RasterizerCache<Shader> { public: - explicit ShaderCacheOpenGL(RasterizerOpenGL& rasterizer, Core::System& system); + explicit ShaderCacheOpenGL(RasterizerOpenGL& rasterizer, Core::System& system, + const Device& device); /// Loads disk cache for the current game void LoadDiskCache(const std::atomic_bool& stop_loading, @@ -130,6 +132,8 @@ private: CachedProgram GeneratePrecompiledProgram(const ShaderDiskCacheDump& dump, const std::set<GLenum>& supported_formats); + const Device& device; + std::array<Shader, Maxwell::MaxShaderProgram> last_shaders; ShaderDiskCacheOpenGL disk_cache; |