diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-02-07 04:05:41 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-04-14 05:25:32 +0200 |
commit | 5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80 (patch) | |
tree | d3f411c5b0c15539bd36e86944cfdc28972fb98a /src/video_core/renderer_opengl/gl_global_cache.h | |
parent | Merge pull request #2378 from lioncash/ro (diff) | |
download | yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar.gz yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar.bz2 yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar.lz yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar.xz yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.tar.zst yuzu-5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_global_cache.h')
-rw-r--r-- | src/video_core/renderer_opengl/gl_global_cache.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/video_core/renderer_opengl/gl_global_cache.h b/src/video_core/renderer_opengl/gl_global_cache.h index 5a21ab66f..196e6e278 100644 --- a/src/video_core/renderer_opengl/gl_global_cache.h +++ b/src/video_core/renderer_opengl/gl_global_cache.h @@ -19,7 +19,7 @@ namespace OpenGL { namespace GLShader { class GlobalMemoryEntry; -} // namespace GLShader +} class RasterizerOpenGL; class CachedGlobalRegion; @@ -27,7 +27,8 @@ using GlobalRegion = std::shared_ptr<CachedGlobalRegion>; class CachedGlobalRegion final : public RasterizerCacheObject { public: - explicit CachedGlobalRegion(VAddr cpu_addr, u32 size, u8* host_ptr); + explicit CachedGlobalRegion(VAddr cpu_addr, u8* host_ptr, u32 size, u32 max_size); + ~CachedGlobalRegion(); VAddr GetCpuAddr() const override { return cpu_addr; @@ -45,14 +46,14 @@ public: /// Reloads the global region from guest memory void Reload(u32 size_); - // TODO(Rodrigo): When global memory is written (STG), implement flushing - void Flush() override { - UNIMPLEMENTED(); - } + void Flush() override; private: VAddr cpu_addr{}; + u8* host_ptr{}; u32 size{}; + u32 max_size{}; + OGLBuffer buffer; }; @@ -66,10 +67,11 @@ public: private: GlobalRegion TryGetReservedGlobalRegion(CacheAddr addr, u32 size) const; - GlobalRegion GetUncachedGlobalRegion(GPUVAddr addr, u32 size, u8* host_ptr); + GlobalRegion GetUncachedGlobalRegion(GPUVAddr addr, u8* host_ptr, u32 size); void ReserveGlobalRegion(GlobalRegion region); std::unordered_map<CacheAddr, GlobalRegion> reserve; + u32 max_ssbo_size{}; }; } // namespace OpenGL |