diff options
| author | bunnei <bunneidev@gmail.com> | 2019-04-16 22:15:17 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-16 22:15:17 -0400 |
| commit | 1b83f255c290fd83562502f019799ad86a85b8a8 (patch) | |
| tree | 07fc355ae298cc71153d2653283723137ce9c958 /src/video_core/renderer_opengl/gl_rasterizer.cpp | |
| parent | 2654eb659e24d2d29df83516a98600f3277d2dad (diff) | |
| parent | 5c280e6ff04ae36e8cd7ba81cce4ae89e0a49b80 (diff) | |
Merge pull request #2092 from ReinUsesLisp/stg
shader/memory: Implement STG and global memory flushing
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index d250d5cbb..ea42fd060 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -756,6 +756,7 @@ void RasterizerOpenGL::FlushRegion(CacheAddr addr, u64 size) { return; } res_cache.FlushRegion(addr, size); + global_cache.FlushRegion(addr, size); } void RasterizerOpenGL::InvalidateRegion(CacheAddr addr, u64 size) { @@ -953,6 +954,9 @@ void RasterizerOpenGL::SetupGlobalRegions(Tegra::Engines::Maxwell3D::Regs::Shade for (std::size_t bindpoint = 0; bindpoint < entries.size(); ++bindpoint) { const auto& entry{entries[bindpoint]}; const auto& region{global_cache.GetGlobalRegion(entry, stage)}; + if (entry.IsWritten()) { + region->MarkAsModified(true, global_cache); + } bind_ssbo_pushbuffer.Push(region->GetBufferHandle(), 0, static_cast<GLsizeiptr>(region->GetSizeInBytes())); } |
