diff options
| author | 2019-07-21 00:59:52 -0400 | |
|---|---|---|
| committer | 2019-07-21 00:59:52 -0400 | |
| commit | 27e10e0442dfd347387c6eaf148b27f5cc38bcaf (patch) | |
| tree | c078fc3f0e62e55fc92a0c8b582666deece0a968 /src/video_core/texture_cache | |
| parent | Update README.md (diff) | |
| parent | Maxwell3D: Reorganize and address feedback (diff) | |
| download | yuzu-27e10e0442dfd347387c6eaf148b27f5cc38bcaf.tar.gz yuzu-27e10e0442dfd347387c6eaf148b27f5cc38bcaf.tar.xz yuzu-27e10e0442dfd347387c6eaf148b27f5cc38bcaf.zip | |
Merge pull request #2735 from FernandoS27/pipeline-rework
Rework Dirty Flags in GPU Pipeline, Optimize CBData and Redo Clearing mechanism
Diffstat (limited to 'src/video_core/texture_cache')
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 7f9623c62..a3a3770a7 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h | |||
| @@ -116,10 +116,10 @@ public: | |||
| 116 | std::lock_guard lock{mutex}; | 116 | std::lock_guard lock{mutex}; |
| 117 | auto& maxwell3d = system.GPU().Maxwell3D(); | 117 | auto& maxwell3d = system.GPU().Maxwell3D(); |
| 118 | 118 | ||
| 119 | if (!maxwell3d.dirty_flags.zeta_buffer) { | 119 | if (!maxwell3d.dirty.depth_buffer) { |
| 120 | return depth_buffer.view; | 120 | return depth_buffer.view; |
| 121 | } | 121 | } |
| 122 | maxwell3d.dirty_flags.zeta_buffer = false; | 122 | maxwell3d.dirty.depth_buffer = false; |
| 123 | 123 | ||
| 124 | const auto& regs{maxwell3d.regs}; | 124 | const auto& regs{maxwell3d.regs}; |
| 125 | const auto gpu_addr{regs.zeta.Address()}; | 125 | const auto gpu_addr{regs.zeta.Address()}; |
| @@ -145,10 +145,10 @@ public: | |||
| 145 | std::lock_guard lock{mutex}; | 145 | std::lock_guard lock{mutex}; |
| 146 | ASSERT(index < Tegra::Engines::Maxwell3D::Regs::NumRenderTargets); | 146 | ASSERT(index < Tegra::Engines::Maxwell3D::Regs::NumRenderTargets); |
| 147 | auto& maxwell3d = system.GPU().Maxwell3D(); | 147 | auto& maxwell3d = system.GPU().Maxwell3D(); |
| 148 | if (!maxwell3d.dirty_flags.color_buffer[index]) { | 148 | if (!maxwell3d.dirty.render_target[index]) { |
| 149 | return render_targets[index].view; | 149 | return render_targets[index].view; |
| 150 | } | 150 | } |
| 151 | maxwell3d.dirty_flags.color_buffer.reset(index); | 151 | maxwell3d.dirty.render_target[index] = false; |
| 152 | 152 | ||
| 153 | const auto& regs{maxwell3d.regs}; | 153 | const auto& regs{maxwell3d.regs}; |
| 154 | if (index >= regs.rt_control.count || regs.rt[index].Address() == 0 || | 154 | if (index >= regs.rt_control.count || regs.rt[index].Address() == 0 || |
| @@ -274,10 +274,11 @@ protected: | |||
| 274 | auto& maxwell3d = system.GPU().Maxwell3D(); | 274 | auto& maxwell3d = system.GPU().Maxwell3D(); |
| 275 | const u32 index = surface->GetRenderTarget(); | 275 | const u32 index = surface->GetRenderTarget(); |
| 276 | if (index == DEPTH_RT) { | 276 | if (index == DEPTH_RT) { |
| 277 | maxwell3d.dirty_flags.zeta_buffer = true; | 277 | maxwell3d.dirty.depth_buffer = true; |
| 278 | } else { | 278 | } else { |
| 279 | maxwell3d.dirty_flags.color_buffer.set(index, true); | 279 | maxwell3d.dirty.render_target[index] = true; |
| 280 | } | 280 | } |
| 281 | maxwell3d.dirty.render_settings = true; | ||
| 281 | } | 282 | } |
| 282 | 283 | ||
| 283 | void Register(TSurface surface) { | 284 | void Register(TSurface surface) { |