| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
- // SPDX-License-Identifier: GPL-2.0-or-later
- #pragma once
- #include <algorithm>
- #include <cstddef>
- #include <iterator>
- #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 <typename Integer>
- 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>
- 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
|