Simplify saving CP state

Rather than makring some parts of VertexLoaderManager dirty in some places and some in others, do it all in VideoState. Also, since CPState no longer contains pointers/non-CP data after d039b1bc0d, we can just use p.Do on it instead of manually saving each field.
This commit is contained in:
Pokechu22
2022-10-07 12:25:04 -07:00
parent 05f3bbfa4d
commit ffed23c059
5 changed files with 9 additions and 25 deletions

View File

@ -15,24 +15,6 @@
CPState g_main_cp_state;
CPState g_preprocess_cp_state;
void DoCPState(PointerWrap& p)
{
// We don't save g_preprocess_cp_state separately because the GPU should be
// synced around state save/load.
p.DoArray(g_main_cp_state.array_bases);
p.DoArray(g_main_cp_state.array_strides);
p.Do(g_main_cp_state.matrix_index_a);
p.Do(g_main_cp_state.matrix_index_b);
p.Do(g_main_cp_state.vtx_desc);
p.DoArray(g_main_cp_state.vtx_attr);
p.DoMarker("CP Memory");
if (p.IsReadMode())
{
CopyPreprocessCPStateFromMain();
VertexLoaderManager::g_bases_dirty = true;
}
}
void CopyPreprocessCPStateFromMain()
{
std::memcpy(&g_preprocess_cp_state, &g_main_cp_state, sizeof(CPState));