// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include #include #include "common/common_types.h" #include "video_core/engines/maxwell_3d.h" namespace VideoCommon::Dirty { enum : u8 { NullEntry = 0, Descriptors, RenderTargets, RenderTargetControl, ColorBuffer0, ColorBuffer1, ColorBuffer2, ColorBuffer3, ColorBuffer4, ColorBuffer5, ColorBuffer6, ColorBuffer7, ZetaBuffer, RescaleViewports, RescaleScissors, VertexBuffers, VertexBuffer0, VertexBuffer31 = VertexBuffer0 + 31, IndexBuffer, Shaders, // Special entries DepthBiasGlobal, LastCommonEntry, }; template 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 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 SetupDirtyFlags(Tegra::Engines::Maxwell3D::DirtyState::Tables& tables); } // namespace VideoCommon::Dirty