summaryrefslogtreecommitdiffstats
path: root/src/video_core/dirty_flags.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/dirty_flags.h')
-rw-r--r--src/video_core/dirty_flags.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/video_core/dirty_flags.h b/src/video_core/dirty_flags.h
index d9058bcab..ed07dfc03 100644
--- a/src/video_core/dirty_flags.h
+++ b/src/video_core/dirty_flags.h
@@ -4,7 +4,12 @@
#pragma once
+#include <algorithm>
+#include <cstddef>
+#include <iterator>
+
#include "common/common_types.h"
+#include "video_core/engines/maxwell_3d.h"
namespace VideoCommon::Dirty {
@@ -25,4 +30,22 @@ enum : u8 {
LastCommonEntry,
};
+template <typename Integer>
+inline void FillBlock(Tegra::Engines::Maxwell3D::DirtyState::Table& table, std::size_t begin,
+ std::size_t num, Integer dirty_index) {
+ const auto it = std::begin(table) + begin;
+ std::fill(it, it + num, static_cast<u8>(dirty_index));
+}
+
+template <typename Integer1, typename Integer2>
+inline void FillBlock(Tegra::Engines::Maxwell3D::DirtyState::Tables& tables, std::size_t begin,
+ std::size_t num, Integer1 index_a, Integer2 index_b) {
+ FillBlock(tables[0], begin, num, index_a);
+ FillBlock(tables[1], begin, num, index_b);
+}
+
+void SetupCommonOnWriteStores(Tegra::Engines::Maxwell3D::DirtyState::Flags& store);
+
+void SetupDirtyRenderTargets(Tegra::Engines::Maxwell3D::DirtyState::Tables& tables);
+
} // namespace VideoCommon::Dirty