diff options
| author | 2020-02-16 17:13:19 -0400 | |
|---|---|---|
| committer | 2020-04-22 11:36:09 -0400 | |
| commit | ed7e9657120faea849af2933e539c72bc961c2a9 (patch) | |
| tree | a0905640fa410696ede1424e8cb00bff8f6cda6f /src | |
| parent | GPU: Delay Fences. (diff) | |
| download | yuzu-ed7e9657120faea849af2933e539c72bc961c2a9.tar.gz yuzu-ed7e9657120faea849af2933e539c72bc961c2a9.tar.xz yuzu-ed7e9657120faea849af2933e539c72bc961c2a9.zip | |
TextureCache: Flush linear textures after finishing rendering.
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index c23b9f9b9..d8c8390bb 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h | |||
| @@ -233,8 +233,14 @@ public: | |||
| 233 | 233 | ||
| 234 | auto surface_view = GetSurface(gpu_addr, *cpu_addr, | 234 | auto surface_view = GetSurface(gpu_addr, *cpu_addr, |
| 235 | SurfaceParams::CreateForFramebuffer(system, index), true); | 235 | SurfaceParams::CreateForFramebuffer(system, index), true); |
| 236 | if (render_targets[index].target) | 236 | if (render_targets[index].target) { |
| 237 | render_targets[index].target->MarkAsRenderTarget(false, NO_RT); | 237 | auto& surface = render_targets[index].target; |
| 238 | surface->MarkAsRenderTarget(false, NO_RT); | ||
| 239 | const auto& cr_params = surface->GetSurfaceParams(); | ||
| 240 | if (!cr_params.is_tiled) { | ||
| 241 | FlushSurface(surface); | ||
| 242 | } | ||
| 243 | } | ||
| 238 | render_targets[index].target = surface_view.first; | 244 | render_targets[index].target = surface_view.first; |
| 239 | render_targets[index].view = surface_view.second; | 245 | render_targets[index].view = surface_view.second; |
| 240 | if (render_targets[index].target) | 246 | if (render_targets[index].target) |