From ac204754d4fe2aaae214025d8f1f40bcb938d74f Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Fri, 21 Feb 2020 01:56:00 -0300 Subject: dirty_flags: Deduplicate code between OpenGL and Vulkan --- src/video_core/dirty_flags.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/video_core/dirty_flags.h') 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 +#include +#include + #include "common/common_types.h" +#include "video_core/engines/maxwell_3d.h" namespace VideoCommon::Dirty { @@ -25,4 +30,22 @@ enum : u8 { LastCommonEntry, }; +template +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(dirty_index)); +} + +template +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 -- cgit v1.2.3