diff options
| author | Pokechu22 <Pokechu022@gmail.com> | 2022-05-17 13:58:54 -0700 |
|---|---|---|
| committer | Pokechu22 <Pokechu022@gmail.com> | 2022-05-18 14:43:14 -0700 |
| commit | 8df55b492c52401f88393295479d6fbeba92ad9b (patch) | |
| tree | 9fd3d69e23b597bb3ef6fc52f4bb3f20cf0538e3 /Source/Core/VideoCommon/VertexLoaderManager.cpp | |
| parent | 38a75f6a49706840edf7a6f5b94e224468ebbabd (diff) | |
Show a panic alert if the CP matrix indices don't match the XF matrix indices
This almost certainly never happens, but if it does we want to know.
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoaderManager.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/VertexLoaderManager.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/VertexLoaderManager.cpp b/Source/Core/VideoCommon/VertexLoaderManager.cpp index eea5183a81..f3fc4d9e7e 100644 --- a/Source/Core/VideoCommon/VertexLoaderManager.cpp +++ b/Source/Core/VideoCommon/VertexLoaderManager.cpp @@ -321,6 +321,18 @@ static void CheckCPConfiguration(int vtx_attr_group) // Don't bail out, though; we can still render something successfully // (real hardware seems to hang in this case, though) } + + if (g_main_cp_state.matrix_index_a.Hex != xfmem.MatrixIndexA.Hex || + g_main_cp_state.matrix_index_b.Hex != xfmem.MatrixIndexB.Hex) + { + PanicAlertFmt("Mismatched matrix index configuration between CP and XF stages - " + "index A: {:08x}/{:08x}, index B {:08x}/{:08x}. " + "Please report on the issue tracker.", + g_main_cp_state.matrix_index_a.Hex, xfmem.MatrixIndexA.Hex, + g_main_cp_state.matrix_index_b.Hex, xfmem.MatrixIndexB.Hex); + DolphinAnalytics::Instance().ReportGameQuirk( + GameQuirk::MISMATCHED_GPU_MATRIX_INDICES_BETWEEN_CP_AND_XF); + } } int RunVertices(int vtx_attr_group, OpcodeDecoder::Primitive primitive, int count, DataReader src, |
