diff options
Diffstat (limited to 'src/video_core/dirty_flags.cpp')
| -rw-r--r-- | src/video_core/dirty_flags.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/video_core/dirty_flags.cpp b/src/video_core/dirty_flags.cpp index e16075993..b1eaac00c 100644 --- a/src/video_core/dirty_flags.cpp +++ b/src/video_core/dirty_flags.cpp | |||
| @@ -9,13 +9,16 @@ | |||
| 9 | #include "video_core/dirty_flags.h" | 9 | #include "video_core/dirty_flags.h" |
| 10 | 10 | ||
| 11 | #define OFF(field_name) MAXWELL3D_REG_INDEX(field_name) | 11 | #define OFF(field_name) MAXWELL3D_REG_INDEX(field_name) |
| 12 | #define NUM(field_name) (sizeof(::Tegra::Engines::Maxwell3D::Regs::field_name) / sizeof(u32)) | 12 | #define NUM(field_name) (sizeof(::Tegra::Engines::Maxwell3D::Regs::field_name) / (sizeof(u32))) |
| 13 | 13 | ||
| 14 | namespace VideoCommon::Dirty { | 14 | namespace VideoCommon::Dirty { |
| 15 | 15 | ||
| 16 | using Tegra::Engines::Maxwell3D; | 16 | using Tegra::Engines::Maxwell3D; |
| 17 | 17 | ||
| 18 | void SetupDirtyRenderTargets(Tegra::Engines::Maxwell3D::DirtyState::Tables& tables) { | 18 | void SetupDirtyRenderTargets(Tegra::Engines::Maxwell3D::DirtyState::Tables& tables) { |
| 19 | FillBlock(tables[0], OFF(tic), NUM(tic), Descriptors); | ||
| 20 | FillBlock(tables[0], OFF(tsc), NUM(tsc), Descriptors); | ||
| 21 | |||
| 19 | static constexpr std::size_t num_per_rt = NUM(rt[0]); | 22 | static constexpr std::size_t num_per_rt = NUM(rt[0]); |
| 20 | static constexpr std::size_t begin = OFF(rt); | 23 | static constexpr std::size_t begin = OFF(rt); |
| 21 | static constexpr std::size_t num = num_per_rt * Maxwell3D::Regs::NumRenderTargets; | 24 | static constexpr std::size_t num = num_per_rt * Maxwell3D::Regs::NumRenderTargets; |
| @@ -23,6 +26,10 @@ void SetupDirtyRenderTargets(Tegra::Engines::Maxwell3D::DirtyState::Tables& tabl | |||
| 23 | FillBlock(tables[0], begin + rt * num_per_rt, num_per_rt, ColorBuffer0 + rt); | 26 | FillBlock(tables[0], begin + rt * num_per_rt, num_per_rt, ColorBuffer0 + rt); |
| 24 | } | 27 | } |
| 25 | FillBlock(tables[1], begin, num, RenderTargets); | 28 | FillBlock(tables[1], begin, num, RenderTargets); |
| 29 | FillBlock(tables[0], OFF(render_area), NUM(render_area), RenderTargets); | ||
| 30 | |||
| 31 | tables[0][OFF(rt_control)] = RenderTargets; | ||
| 32 | tables[1][OFF(rt_control)] = RenderTargetControl; | ||
| 26 | 33 | ||
| 27 | static constexpr std::array zeta_flags{ZetaBuffer, RenderTargets}; | 34 | static constexpr std::array zeta_flags{ZetaBuffer, RenderTargets}; |
| 28 | for (std::size_t i = 0; i < std::size(zeta_flags); ++i) { | 35 | for (std::size_t i = 0; i < std::size(zeta_flags); ++i) { |