summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexLoaderManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoaderManager.cpp')
-rw-r--r--Source/Core/VideoCommon/VertexLoaderManager.cpp147
1 files changed, 0 insertions, 147 deletions
diff --git a/Source/Core/VideoCommon/VertexLoaderManager.cpp b/Source/Core/VideoCommon/VertexLoaderManager.cpp
index e2475d666f..901e14044f 100644
--- a/Source/Core/VideoCommon/VertexLoaderManager.cpp
+++ b/Source/Core/VideoCommon/VertexLoaderManager.cpp
@@ -12,17 +12,14 @@
#include <utility>
#include <vector>
-#include "Common/Assert.h"
#include "Common/CommonTypes.h"
#include "Common/EnumMap.h"
#include "Common/Logging/Log.h"
-#include "Core/DolphinAnalytics.h"
#include "Core/HW/Memmap.h"
#include "VideoCommon/BPMemory.h"
#include "VideoCommon/CPMemory.h"
-#include "VideoCommon/CommandProcessor.h"
#include "VideoCommon/DataReader.h"
#include "VideoCommon/IndexGenerator.h"
#include "VideoCommon/NativeVertexFormat.h"
@@ -298,147 +295,3 @@ NativeVertexFormat* GetCurrentVertexFormat()
}
} // namespace VertexLoaderManager
-
-void LoadCPReg(u32 sub_cmd, u32 value, bool is_preprocess)
-{
- bool update_global_state = !is_preprocess;
- CPState* state = is_preprocess ? &g_preprocess_cp_state : &g_main_cp_state;
- switch (sub_cmd & CP_COMMAND_MASK)
- {
- case UNKNOWN_00:
- case UNKNOWN_10:
- case UNKNOWN_20:
- if (!(sub_cmd == UNKNOWN_20 && value == 0))
- {
- // All titles using libogc or the official SDK issue 0x20 with value=0 on startup
- DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_CP_PERF_COMMAND);
- DEBUG_LOG_FMT(VIDEO, "Unknown CP command possibly relating to perf queries used: {:02x}",
- sub_cmd);
- }
- break;
-
- case MATINDEX_A:
- if (sub_cmd != MATINDEX_A)
- {
- DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
- WARN_LOG_FMT(VIDEO,
- "CP MATINDEX_A: an exact value of {:02x} was expected "
- "but instead a value of {:02x} was seen",
- MATINDEX_A, sub_cmd);
- }
-
- if (update_global_state)
- VertexShaderManager::SetTexMatrixChangedA(value);
- break;
-
- case MATINDEX_B:
- if (sub_cmd != MATINDEX_B)
- {
- DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
- WARN_LOG_FMT(VIDEO,
- "CP MATINDEX_B: an exact value of {:02x} was expected "
- "but instead a value of {:02x} was seen",
- MATINDEX_B, sub_cmd);
- }
-
- if (update_global_state)
- VertexShaderManager::SetTexMatrixChangedB(value);
- break;
-
- case VCD_LO:
- if (sub_cmd != VCD_LO) // Stricter than YAGCD
- {
- DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
- WARN_LOG_FMT(VIDEO,
- "CP VCD_LO: an exact value of {:02x} was expected "
- "but instead a value of {:02x} was seen",
- VCD_LO, sub_cmd);
- }
-
- state->vtx_desc.low.Hex = value;
- state->attr_dirty = BitSet32::AllTrue(CP_NUM_VAT_REG);
- state->bases_dirty = true;
- break;
-
- case VCD_HI:
- if (sub_cmd != VCD_HI) // Stricter than YAGCD
- {
- DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
- WARN_LOG_FMT(VIDEO,
- "CP VCD_HI: an exact value of {:02x} was expected "
- "but instead a value of {:02x} was seen",
- VCD_HI, sub_cmd);
- }
-
- state->vtx_desc.high.Hex = value;
- state->attr_dirty = BitSet32::AllTrue(CP_NUM_VAT_REG);
- state->bases_dirty = true;
- break;
-
- case CP_VAT_REG_A:
- if ((sub_cmd - CP_VAT_REG_A) >= CP_NUM_VAT_REG)
- {
- DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
- WARN_LOG_FMT(VIDEO, "CP_VAT_REG_A: Invalid VAT {}", sub_cmd - CP_VAT_REG_A);
- }
- state->vtx_attr[sub_cmd & CP_VAT_MASK].g0.Hex = value;
- state->attr_dirty[sub_cmd & CP_VAT_MASK] = true;
- break;
-
- case CP_VAT_REG_B:
- if ((sub_cmd - CP_VAT_REG_B) >= CP_NUM_VAT_REG)
- {
- DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
- WARN_LOG_FMT(VIDEO, "CP_VAT_REG_B: Invalid VAT {}", sub_cmd - CP_VAT_REG_B);
- }
- state->vtx_attr[sub_cmd & CP_VAT_MASK].g1.Hex = value;
- state->attr_dirty[sub_cmd & CP_VAT_MASK] = true;
- break;
-
- case CP_VAT_REG_C:
- if ((sub_cmd - CP_VAT_REG_C) >= CP_NUM_VAT_REG)
- {
- DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
- WARN_LOG_FMT(VIDEO, "CP_VAT_REG_C: Invalid VAT {}", sub_cmd - CP_VAT_REG_C);
- }
- state->vtx_attr[sub_cmd & CP_VAT_MASK].g2.Hex = value;
- state->attr_dirty[sub_cmd & CP_VAT_MASK] = true;
- break;
-
- // Pointers to vertex arrays in GC RAM
- case ARRAY_BASE:
- state->array_bases[static_cast<CPArray>(sub_cmd & CP_ARRAY_MASK)] =
- value & CommandProcessor::GetPhysicalAddressMask();
- state->bases_dirty = true;
- break;
-
- case ARRAY_STRIDE:
- state->array_strides[static_cast<CPArray>(sub_cmd & CP_ARRAY_MASK)] = value & 0xFF;
- break;
-
- default:
- DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_UNKNOWN_CP_COMMAND);
- WARN_LOG_FMT(VIDEO, "Unknown CP register {:02x} set to {:08x}", sub_cmd, value);
- }
-}
-
-void FillCPMemoryArray(u32* memory)
-{
- memory[MATINDEX_A] = g_main_cp_state.matrix_index_a.Hex;
- memory[MATINDEX_B] = g_main_cp_state.matrix_index_b.Hex;
- memory[VCD_LO] = g_main_cp_state.vtx_desc.low.Hex;
- memory[VCD_HI] = g_main_cp_state.vtx_desc.high.Hex;
-
- for (int i = 0; i < CP_NUM_VAT_REG; ++i)
- {
- memory[CP_VAT_REG_A + i] = g_main_cp_state.vtx_attr[i].g0.Hex;
- memory[CP_VAT_REG_B + i] = g_main_cp_state.vtx_attr[i].g1.Hex;
- memory[CP_VAT_REG_C + i] = g_main_cp_state.vtx_attr[i].g2.Hex;
- }
-
- for (u8 i = 0; i < CP_NUM_ARRAYS; ++i)
- {
- memory[ARRAY_BASE + i] = g_main_cp_state.array_bases[static_cast<CPArray>(i)];
- memory[ARRAY_STRIDE + i] = g_main_cp_state.array_strides[static_cast<CPArray>(i)];
- }
-}