diff --git a/Source/Core/VideoBackends/D3D/main.cpp b/Source/Core/VideoBackends/D3D/main.cpp index 9bd7b685f1..babdfc4059 100644 --- a/Source/Core/VideoBackends/D3D/main.cpp +++ b/Source/Core/VideoBackends/D3D/main.cpp @@ -186,7 +186,7 @@ void VideoBackend::Video_Prepare() Fifo::Init(); IndexGenerator::Init(); VertexLoaderManager::Init(); - OpcodeDecoder_Init(); + OpcodeDecoder::Init(); VertexShaderManager::Init(); PixelShaderManager::Init(); GeometryShaderManager::Init(); @@ -211,7 +211,7 @@ void VideoBackend::Shutdown() GeometryShaderManager::Shutdown(); PixelShaderManager::Shutdown(); VertexShaderManager::Shutdown(); - OpcodeDecoder_Shutdown(); + OpcodeDecoder::Shutdown(); VertexLoaderManager::Shutdown(); // internal interfaces diff --git a/Source/Core/VideoBackends/OGL/main.cpp b/Source/Core/VideoBackends/OGL/main.cpp index 07648b6acd..c4698d28d6 100644 --- a/Source/Core/VideoBackends/OGL/main.cpp +++ b/Source/Core/VideoBackends/OGL/main.cpp @@ -181,8 +181,8 @@ void VideoBackend::Video_Prepare() BPInit(); g_vertex_manager = std::make_unique(); g_perf_query = GetPerfQuery(); - Fifo::Init(); // must be done before OpcodeDecoder_Init() - OpcodeDecoder_Init(); + Fifo::Init(); // must be done before OpcodeDecoder::Init() + OpcodeDecoder::Init(); IndexGenerator::Init(); VertexShaderManager::Init(); PixelShaderManager::Init(); @@ -233,7 +233,7 @@ void VideoBackend::Video_Cleanup() g_perf_query.reset(); g_vertex_manager.reset(); - OpcodeDecoder_Shutdown(); + OpcodeDecoder::Shutdown(); g_renderer.reset(); GLInterface->ClearCurrent(); } diff --git a/Source/Core/VideoBackends/Software/SWmain.cpp b/Source/Core/VideoBackends/Software/SWmain.cpp index 16d80df52f..e229a713e4 100644 --- a/Source/Core/VideoBackends/Software/SWmain.cpp +++ b/Source/Core/VideoBackends/Software/SWmain.cpp @@ -205,7 +205,7 @@ void VideoSoftware::Video_Cleanup() PixelShaderManager::Shutdown(); g_perf_query.reset(); g_vertex_manager.reset(); - OpcodeDecoder_Shutdown(); + OpcodeDecoder::Shutdown(); g_renderer.reset(); } } @@ -221,8 +221,8 @@ void VideoSoftware::Video_Prepare() BPInit(); g_vertex_manager = std::make_unique(); g_perf_query = std::make_unique(); - Fifo::Init(); // must be done before OpcodeDecoder_Init() - OpcodeDecoder_Init(); + Fifo::Init(); // must be done before OpcodeDecoder::Init() + OpcodeDecoder::Init(); IndexGenerator::Init(); VertexShaderManager::Init(); PixelShaderManager::Init(); diff --git a/Source/Core/VideoCommon/Fifo.cpp b/Source/Core/VideoCommon/Fifo.cpp index acc43b8855..506024c193 100644 --- a/Source/Core/VideoCommon/Fifo.cpp +++ b/Source/Core/VideoCommon/Fifo.cpp @@ -261,7 +261,7 @@ static void ReadDataFromFifoOnCPU(u32 readPtr) } } Memory::CopyFromEmu(s_video_buffer_write_ptr, readPtr, len); - s_video_buffer_pp_read_ptr = OpcodeDecoder_Run(DataReader(s_video_buffer_pp_read_ptr, write_ptr + len), nullptr, false); + s_video_buffer_pp_read_ptr = OpcodeDecoder::Run(DataReader(s_video_buffer_pp_read_ptr, write_ptr + len), nullptr, false); // This would have to be locked if the GPU thread didn't spin. s_video_buffer_write_ptr = write_ptr + len; } @@ -305,7 +305,7 @@ void RunGpuLoop() // See comment in SyncGPU if (write_ptr > seen_ptr) { - s_video_buffer_read_ptr = OpcodeDecoder_Run(DataReader(s_video_buffer_read_ptr, write_ptr), nullptr, false); + s_video_buffer_read_ptr = OpcodeDecoder::Run(DataReader(s_video_buffer_read_ptr, write_ptr), nullptr, false); s_video_buffer_seen_ptr = write_ptr; } } @@ -336,7 +336,7 @@ void RunGpuLoop() "Negative fifo.CPReadWriteDistance = %i in FIFO Loop !\nThat can produce instability in the game. Please report it.", fifo.CPReadWriteDistance - 32); u8* write_ptr = s_video_buffer_write_ptr; - s_video_buffer_read_ptr = OpcodeDecoder_Run(DataReader(s_video_buffer_read_ptr, write_ptr), &cyclesExecuted, false); + s_video_buffer_read_ptr = OpcodeDecoder::Run(DataReader(s_video_buffer_read_ptr, write_ptr), &cyclesExecuted, false); Common::AtomicStore(fifo.CPReadPointer, readPtr); Common::AtomicAdd(fifo.CPReadWriteDistance, -32); @@ -423,7 +423,7 @@ void RunGpu() reset_simd_state = true; } ReadDataFromFifo(fifo.CPReadPointer); - s_video_buffer_read_ptr = OpcodeDecoder_Run(DataReader(s_video_buffer_read_ptr, s_video_buffer_write_ptr), nullptr, false); + s_video_buffer_read_ptr = OpcodeDecoder::Run(DataReader(s_video_buffer_read_ptr, s_video_buffer_write_ptr), nullptr, false); } //DEBUG_LOG(COMMANDPROCESSOR, "Fifo wraps to base"); diff --git a/Source/Core/VideoCommon/OpcodeDecoding.cpp b/Source/Core/VideoCommon/OpcodeDecoding.cpp index 99a801a8f3..3af3337b9e 100644 --- a/Source/Core/VideoCommon/OpcodeDecoding.cpp +++ b/Source/Core/VideoCommon/OpcodeDecoding.cpp @@ -28,8 +28,11 @@ #include "VideoCommon/VideoCommon.h" #include "VideoCommon/XFMemory.h" - bool g_bRecordFifoData = false; + +namespace OpcodeDecoder +{ + static bool s_bFifoErrorSeen = false; static u32 InterpretDisplayList(u32 address, u32 size) @@ -49,7 +52,7 @@ static u32 InterpretDisplayList(u32 address, u32 size) // temporarily swap dl and non-dl (small "hack" for the stats) Statistics::SwapDL(); - OpcodeDecoder_Run(DataReader(startAddress, startAddress + size), &cycles, true); + Run(DataReader(startAddress, startAddress + size), &cycles, true); INCSTAT(stats.thisFrame.numDListsCalled); // un-swap @@ -67,7 +70,7 @@ static void InterpretDisplayListPreprocess(u32 address, u32 size) if (startAddress != nullptr) { - OpcodeDecoder_Run(DataReader(startAddress, startAddress + size), nullptr, true); + Run(DataReader(startAddress, startAddress + size), nullptr, true); } } @@ -120,18 +123,17 @@ static void UnknownOpcode(u8 cmd_byte, void *buffer, bool preprocess) } } -void OpcodeDecoder_Init() +void Init() { s_bFifoErrorSeen = false; } - -void OpcodeDecoder_Shutdown() +void Shutdown() { } template -u8* OpcodeDecoder_Run(DataReader src, u32* cycles, bool in_display_list) +u8* Run(DataReader src, u32* cycles, bool in_display_list) { u32 totalCycles = 0; u8* opcodeStart; @@ -314,5 +316,7 @@ end: return opcodeStart; } -template u8* OpcodeDecoder_Run(DataReader src, u32* cycles, bool in_display_list); -template u8* OpcodeDecoder_Run(DataReader src, u32* cycles, bool in_display_list); +template u8* Run(DataReader src, u32* cycles, bool in_display_list); +template u8* Run(DataReader src, u32* cycles, bool in_display_list); + +} // namespace OpcodeDecoder diff --git a/Source/Core/VideoCommon/OpcodeDecoding.h b/Source/Core/VideoCommon/OpcodeDecoding.h index a79bf54be2..f955ecb90a 100644 --- a/Source/Core/VideoCommon/OpcodeDecoding.h +++ b/Source/Core/VideoCommon/OpcodeDecoding.h @@ -38,8 +38,13 @@ #define GX_DRAW_LINE_STRIP 0x6 // 0xB0 #define GX_DRAW_POINTS 0x7 // 0xB8 -void OpcodeDecoder_Init(); -void OpcodeDecoder_Shutdown(); +namespace OpcodeDecoder +{ + +void Init(); +void Shutdown(); template -u8* OpcodeDecoder_Run(DataReader src, u32* cycles, bool in_display_list); +u8* Run(DataReader src, u32* cycles, bool in_display_list); + +} // namespace OpcodeDecoder