diff --git a/Source/Core/VideoBackends/D3D/VertexManager.cpp b/Source/Core/VideoBackends/D3D/VertexManager.cpp index e470c8192d..f2a844fde2 100644 --- a/Source/Core/VideoBackends/D3D/VertexManager.cpp +++ b/Source/Core/VideoBackends/D3D/VertexManager.cpp @@ -50,7 +50,7 @@ static void UpdateConstantBuffer(ID3D11Buffer* const buffer, const void* data, u memcpy(map.pData, data, data_size); D3D::context->Unmap(buffer, 0); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, data_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, data_size); } static ComPtr @@ -166,7 +166,7 @@ bool VertexManager::UploadTexelBuffer(const void* data, u32 data_size, TexelBuff *out_offset = m_texel_buffer_offset / elem_size; std::memcpy(static_cast(sr.pData) + m_texel_buffer_offset, data, data_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, data_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, data_size); m_texel_buffer_offset += data_size; D3D::context->Unmap(m_texel_buffer.Get(), 0); @@ -194,7 +194,7 @@ bool VertexManager::UploadTexelBuffer(const void* data, u32 data_size, TexelBuff std::memcpy(static_cast(sr.pData) + m_texel_buffer_offset, data, data_size); std::memcpy(static_cast(sr.pData) + m_texel_buffer_offset + palette_byte_offset, palette_data, palette_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, palette_byte_offset + palette_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, palette_byte_offset + palette_size); *out_offset = m_texel_buffer_offset / elem_size; *out_palette_offset = (m_texel_buffer_offset + palette_byte_offset) / palette_elem_size; m_texel_buffer_offset += palette_byte_offset + palette_size; @@ -251,8 +251,8 @@ void VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_in m_buffer_cursor = cursor + totalBufferSize; - ADDSTAT(stats.this_frame.bytes_vertex_streamed, vertexBufferSize); - ADDSTAT(stats.this_frame.bytes_index_streamed, indexBufferSize); + ADDSTAT(g_stats.this_frame.bytes_vertex_streamed, vertexBufferSize); + ADDSTAT(g_stats.this_frame.bytes_index_streamed, indexBufferSize); D3D::stateman->SetVertexBuffer(m_buffers[m_current_buffer].Get(), vertex_stride, 0); D3D::stateman->SetIndexBuffer(m_buffers[m_current_buffer].Get()); diff --git a/Source/Core/VideoBackends/D3D12/VertexManager.cpp b/Source/Core/VideoBackends/D3D12/VertexManager.cpp index 2b6cb17117..235fa43750 100644 --- a/Source/Core/VideoBackends/D3D12/VertexManager.cpp +++ b/Source/Core/VideoBackends/D3D12/VertexManager.cpp @@ -112,8 +112,8 @@ void VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_in m_vertex_stream_buffer.CommitMemory(vertex_data_size); m_index_stream_buffer.CommitMemory(index_data_size); - ADDSTAT(stats.this_frame.bytes_vertex_streamed, static_cast(vertex_data_size)); - ADDSTAT(stats.this_frame.bytes_index_streamed, static_cast(index_data_size)); + ADDSTAT(g_stats.this_frame.bytes_vertex_streamed, static_cast(vertex_data_size)); + ADDSTAT(g_stats.this_frame.bytes_index_streamed, static_cast(index_data_size)); Renderer::GetInstance()->SetVertexBuffer(m_vertex_stream_buffer.GetGPUPointer(), vertex_stride, m_vertex_stream_buffer.GetSize()); @@ -137,7 +137,7 @@ void VertexManager::UpdateVertexShaderConstants() std::memcpy(m_uniform_stream_buffer.GetCurrentHostPointer(), &VertexShaderManager::constants, sizeof(VertexShaderConstants)); m_uniform_stream_buffer.CommitMemory(sizeof(VertexShaderConstants)); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, sizeof(VertexShaderConstants)); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, sizeof(VertexShaderConstants)); VertexShaderManager::dirty = false; } @@ -150,7 +150,7 @@ void VertexManager::UpdateGeometryShaderConstants() std::memcpy(m_uniform_stream_buffer.GetCurrentHostPointer(), &GeometryShaderManager::constants, sizeof(GeometryShaderConstants)); m_uniform_stream_buffer.CommitMemory(sizeof(GeometryShaderConstants)); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, sizeof(GeometryShaderConstants)); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, sizeof(GeometryShaderConstants)); GeometryShaderManager::dirty = false; } @@ -163,7 +163,7 @@ void VertexManager::UpdatePixelShaderConstants() std::memcpy(m_uniform_stream_buffer.GetCurrentHostPointer(), &PixelShaderManager::constants, sizeof(PixelShaderConstants)); m_uniform_stream_buffer.CommitMemory(sizeof(PixelShaderConstants)); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, sizeof(PixelShaderConstants)); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, sizeof(PixelShaderConstants)); PixelShaderManager::dirty = false; } @@ -227,7 +227,7 @@ void VertexManager::UploadAllConstants() // Finally, flush buffer memory after copying m_uniform_stream_buffer.CommitMemory(allocation_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, allocation_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, allocation_size); // Clear dirty flags VertexShaderManager::dirty = false; @@ -250,7 +250,7 @@ void VertexManager::UploadUtilityUniforms(const void* data, u32 data_size) Renderer::GetInstance()->SetConstantBuffer(2, m_uniform_stream_buffer.GetCurrentGPUPointer()); std::memcpy(m_uniform_stream_buffer.GetCurrentHostPointer(), data, data_size); m_uniform_stream_buffer.CommitMemory(data_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, data_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, data_size); } bool VertexManager::UploadTexelBuffer(const void* data, u32 data_size, TexelBufferFormat format, @@ -275,7 +275,7 @@ bool VertexManager::UploadTexelBuffer(const void* data, u32 data_size, TexelBuff std::memcpy(m_texel_stream_buffer.GetCurrentHostPointer(), data, data_size); *out_offset = static_cast(m_texel_stream_buffer.GetCurrentOffset()) / elem_size; m_texel_stream_buffer.CommitMemory(data_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, data_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, data_size); Renderer::GetInstance()->SetTextureDescriptor(0, m_texel_buffer_views[format].cpu_handle); return true; } @@ -312,7 +312,7 @@ bool VertexManager::UploadTexelBuffer(const void* data, u32 data_size, TexelBuff palette_elem_size; m_texel_stream_buffer.CommitMemory(palette_byte_offset + palette_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, palette_byte_offset + palette_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, palette_byte_offset + palette_size); Renderer::GetInstance()->SetTextureDescriptor(0, m_texel_buffer_views[format].cpu_handle); Renderer::GetInstance()->SetTextureDescriptor(1, m_texel_buffer_views[palette_format].cpu_handle); return true; diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp index 593a3186dc..c9bbdc2b36 100644 --- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp +++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp @@ -158,7 +158,7 @@ void SHADER::Bind() const { if (CurrentProgram != glprogid) { - INCSTAT(stats.this_frame.num_shader_changes); + INCSTAT(g_stats.this_frame.num_shader_changes); glUseProgram(glprogid); CurrentProgram = glprogid; } @@ -248,7 +248,7 @@ void ProgramShaderCache::UploadConstants() VertexShaderManager::dirty = false; GeometryShaderManager::dirty = false; - ADDSTAT(stats.this_frame.bytes_uniform_streamed, s_ubo_buffer_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, s_ubo_buffer_size); } } @@ -264,7 +264,7 @@ void ProgramShaderCache::UploadConstants(const void* data, u32 data_size) for (u32 index = 1; index <= 3; index++) glBindBufferRange(GL_UNIFORM_BUFFER, index, s_buffer->m_buffer, buffer.second, data_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, data_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, data_size); } bool ProgramShaderCache::CompileComputeShader(SHADER& shader, const std::string& code) diff --git a/Source/Core/VideoBackends/OGL/VertexManager.cpp b/Source/Core/VideoBackends/OGL/VertexManager.cpp index 211b55d1c7..0170a20a0b 100644 --- a/Source/Core/VideoBackends/OGL/VertexManager.cpp +++ b/Source/Core/VideoBackends/OGL/VertexManager.cpp @@ -105,7 +105,7 @@ bool VertexManager::UploadTexelBuffer(const void* data, u32 data_size, TexelBuff const u32 elem_size = GetTexelBufferElementSize(format); const auto dst = m_texel_buffer->Map(data_size, elem_size); std::memcpy(dst.first, data, data_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, data_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, data_size); *out_offset = dst.second / elem_size; m_texel_buffer->Unmap(data_size); @@ -130,7 +130,7 @@ bool VertexManager::UploadTexelBuffer(const void* data, u32 data_size, TexelBuff const u32 palette_byte_offset = Common::AlignUp(data_size, palette_elem_size); std::memcpy(dst.first, data, data_size); std::memcpy(dst.first + palette_byte_offset, palette_data, palette_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, palette_byte_offset + palette_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, palette_byte_offset + palette_size); *out_offset = dst.second / elem_size; *out_palette_offset = (dst.second + palette_byte_offset) / palette_elem_size; m_texel_buffer->Unmap(palette_byte_offset + palette_size); @@ -181,8 +181,8 @@ void VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_in m_vertex_buffer->Unmap(vertex_data_size); m_index_buffer->Unmap(index_data_size); - ADDSTAT(stats.this_frame.bytes_vertex_streamed, vertex_data_size); - ADDSTAT(stats.this_frame.bytes_index_streamed, index_data_size); + ADDSTAT(g_stats.this_frame.bytes_vertex_streamed, vertex_data_size); + ADDSTAT(g_stats.this_frame.bytes_index_streamed, index_data_size); } void VertexManager::UploadUniforms() diff --git a/Source/Core/VideoBackends/Software/Clipper.cpp b/Source/Core/VideoBackends/Software/Clipper.cpp index 5608ee5884..67712fa9da 100644 --- a/Source/Core/VideoBackends/Software/Clipper.cpp +++ b/Source/Core/VideoBackends/Software/Clipper.cpp @@ -221,7 +221,7 @@ static void ClipTriangle(int* indices, int* numIndices) POLY_CLIP(CLIP_POS_Z_BIT, 0, 0, 0, 1); POLY_CLIP(CLIP_NEG_Z_BIT, 0, 0, 1, 1); - INCSTAT(stats.this_frame.num_triangles_clipped); + INCSTAT(g_stats.this_frame.num_triangles_clipped); // transform the poly in inlist into triangles indices[0] = inlist[0]; @@ -288,7 +288,7 @@ static void ClipLine(int* indices) void ProcessTriangle(OutputVertexData* v0, OutputVertexData* v1, OutputVertexData* v2) { - INCSTAT(stats.this_frame.num_triangles_in) + INCSTAT(g_stats.this_frame.num_triangles_in) bool backface; @@ -410,7 +410,7 @@ bool CullTest(const OutputVertexData* v0, const OutputVertexData* v1, const Outp if (mask) { - INCSTAT(stats.this_frame.num_triangles_rejected) + INCSTAT(g_stats.this_frame.num_triangles_rejected) return false; } @@ -430,13 +430,13 @@ bool CullTest(const OutputVertexData* v0, const OutputVertexData* v1, const Outp if ((bpmem.genMode.cullmode & 1) && !backface) // cull frontfacing { - INCSTAT(stats.this_frame.num_triangles_culled) + INCSTAT(g_stats.this_frame.num_triangles_culled) return false; } if ((bpmem.genMode.cullmode & 2) && backface) // cull backfacing { - INCSTAT(stats.this_frame.num_triangles_culled) + INCSTAT(g_stats.this_frame.num_triangles_culled) return false; } diff --git a/Source/Core/VideoBackends/Software/DebugUtil.cpp b/Source/Core/VideoBackends/Software/DebugUtil.cpp index fa54450780..7b9be6e503 100644 --- a/Source/Core/VideoBackends/Software/DebugUtil.cpp +++ b/Source/Core/VideoBackends/Software/DebugUtil.cpp @@ -106,7 +106,7 @@ void DumpActiveTextures() { SaveTexture(StringFromFormat("%star%i_ind%i_map%i_mip%i.png", File::GetUserPath(D_DUMPTEXTURES_IDX).c_str(), - stats.this_frame.num_drawn_objects, stageNum, texmap, mip), + g_stats.this_frame.num_drawn_objects, stageNum, texmap, mip), texmap, mip); } } @@ -124,7 +124,7 @@ void DumpActiveTextures() { SaveTexture(StringFromFormat("%star%i_stage%i_map%i_mip%i.png", File::GetUserPath(D_DUMPTEXTURES_IDX).c_str(), - stats.this_frame.num_drawn_objects, stageNum, texmap, mip), + g_stats.this_frame.num_drawn_objects, stageNum, texmap, mip), texmap, mip); } } @@ -192,8 +192,8 @@ void CopyTempBuffer(s16 x, s16 y, int bufferBase, int subBuffer, const char* nam void OnObjectBegin() { if (g_ActiveConfig.bDumpTextures && - stats.this_frame.num_drawn_objects >= g_ActiveConfig.drawStart && - stats.this_frame.num_drawn_objects < g_ActiveConfig.drawEnd) + g_stats.this_frame.num_drawn_objects >= g_ActiveConfig.drawStart && + g_stats.this_frame.num_drawn_objects < g_ActiveConfig.drawEnd) { DumpActiveTextures(); } @@ -202,11 +202,11 @@ void OnObjectBegin() void OnObjectEnd() { if (g_ActiveConfig.bDumpObjects && - stats.this_frame.num_drawn_objects >= g_ActiveConfig.drawStart && - stats.this_frame.num_drawn_objects < g_ActiveConfig.drawEnd) + g_stats.this_frame.num_drawn_objects >= g_ActiveConfig.drawStart && + g_stats.this_frame.num_drawn_objects < g_ActiveConfig.drawEnd) { DumpEfb(StringFromFormat("%sobject%i.png", File::GetUserPath(D_DUMPOBJECTS_IDX).c_str(), - stats.this_frame.num_drawn_objects)); + g_stats.this_frame.num_drawn_objects)); } for (int i = 0; i < NUM_OBJECT_BUFFERS; i++) @@ -216,13 +216,13 @@ void OnObjectEnd() DrawnToBuffer[i] = false; std::string filename = StringFromFormat( "%sobject%i_%s(%i).png", File::GetUserPath(D_DUMPOBJECTS_IDX).c_str(), - stats.this_frame.num_drawn_objects, ObjectBufferName[i], i - BufferBase[i]); + g_stats.this_frame.num_drawn_objects, ObjectBufferName[i], i - BufferBase[i]); TextureToPng((u8*)ObjectBuffer[i], EFB_WIDTH * 4, filename, EFB_WIDTH, EFB_HEIGHT, true); memset(ObjectBuffer[i], 0, EFB_WIDTH * EFB_HEIGHT * sizeof(u32)); } } - stats.this_frame.num_drawn_objects++; + g_stats.this_frame.num_drawn_objects++; } } // namespace DebugUtil diff --git a/Source/Core/VideoBackends/Software/Rasterizer.cpp b/Source/Core/VideoBackends/Software/Rasterizer.cpp index a904d28498..5fc21340fe 100644 --- a/Source/Core/VideoBackends/Software/Rasterizer.cpp +++ b/Source/Core/VideoBackends/Software/Rasterizer.cpp @@ -72,7 +72,7 @@ void SetTevReg(int reg, int comp, s16 color) static void Draw(s32 x, s32 y, s32 xi, s32 yi) { - INCSTAT(stats.this_frame.rasterized_pixels); + INCSTAT(g_stats.this_frame.rasterized_pixels); float dx = vertexOffsetX + (float)(x - vertex0X); float dy = vertexOffsetY + (float)(y - vertex0Y); @@ -267,7 +267,7 @@ static void BuildBlock(s32 blockX, s32 blockY) void DrawTriangleFrontFace(const OutputVertexData* v0, const OutputVertexData* v1, const OutputVertexData* v2) { - INCSTAT(stats.this_frame.num_triangles_drawn); + INCSTAT(g_stats.this_frame.num_triangles_drawn); // adapted from http://devmaster.net/posts/6145/advanced-rasterization diff --git a/Source/Core/VideoBackends/Software/SWVertexLoader.cpp b/Source/Core/VideoBackends/Software/SWVertexLoader.cpp index f0cfb1c3b9..266f1046a1 100644 --- a/Source/Core/VideoBackends/Software/SWVertexLoader.cpp +++ b/Source/Core/VideoBackends/Software/SWVertexLoader.cpp @@ -91,7 +91,7 @@ void SWVertexLoader::DrawCurrentBatch(u32 base_index, u32 num_indices, u32 base_ // assemble and rasterize the primitive m_setup_unit.SetupVertex(); - INCSTAT(stats.this_frame.num_vertices_loaded) + INCSTAT(g_stats.this_frame.num_vertices_loaded) } DebugUtil::OnObjectEnd(); diff --git a/Source/Core/VideoBackends/Software/Tev.cpp b/Source/Core/VideoBackends/Software/Tev.cpp index cafb5f346e..b0285867b9 100644 --- a/Source/Core/VideoBackends/Software/Tev.cpp +++ b/Source/Core/VideoBackends/Software/Tev.cpp @@ -568,7 +568,7 @@ void Tev::Draw() ASSERT(Position[0] >= 0 && Position[0] < EFB_WIDTH); ASSERT(Position[1] >= 0 && Position[1] < EFB_HEIGHT); - INCSTAT(stats.this_frame.tev_pixels_in); + INCSTAT(g_stats.this_frame.tev_pixels_in); // initial color values for (int i = 0; i < 4; i++) @@ -869,7 +869,7 @@ void Tev::Draw() } #endif - INCSTAT(stats.this_frame.tev_pixels_out); + INCSTAT(g_stats.this_frame.tev_pixels_out); EfbInterface::IncPerfCounterQuadCount(PQ_BLEND_INPUT); EfbInterface::BlendTev(Position[0], Position[1], output); diff --git a/Source/Core/VideoBackends/Vulkan/VertexManager.cpp b/Source/Core/VideoBackends/Vulkan/VertexManager.cpp index c6fdd90a4f..ffcf1f0927 100644 --- a/Source/Core/VideoBackends/Vulkan/VertexManager.cpp +++ b/Source/Core/VideoBackends/Vulkan/VertexManager.cpp @@ -181,8 +181,8 @@ void VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_in m_vertex_stream_buffer->CommitMemory(vertex_data_size); m_index_stream_buffer->CommitMemory(index_data_size); - ADDSTAT(stats.this_frame.bytes_vertex_streamed, static_cast(vertex_data_size)); - ADDSTAT(stats.this_frame.bytes_index_streamed, static_cast(index_data_size)); + ADDSTAT(g_stats.this_frame.bytes_vertex_streamed, static_cast(vertex_data_size)); + ADDSTAT(g_stats.this_frame.bytes_index_streamed, static_cast(index_data_size)); StateTracker::GetInstance()->SetVertexBuffer(m_vertex_stream_buffer->GetBuffer(), 0); StateTracker::GetInstance()->SetIndexBuffer(m_index_stream_buffer->GetBuffer(), 0, @@ -207,7 +207,7 @@ void VertexManager::UpdateVertexShaderConstants() std::memcpy(m_uniform_stream_buffer->GetCurrentHostPointer(), &VertexShaderManager::constants, sizeof(VertexShaderConstants)); m_uniform_stream_buffer->CommitMemory(sizeof(VertexShaderConstants)); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, sizeof(VertexShaderConstants)); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, sizeof(VertexShaderConstants)); VertexShaderManager::dirty = false; } @@ -222,7 +222,7 @@ void VertexManager::UpdateGeometryShaderConstants() std::memcpy(m_uniform_stream_buffer->GetCurrentHostPointer(), &GeometryShaderManager::constants, sizeof(GeometryShaderConstants)); m_uniform_stream_buffer->CommitMemory(sizeof(GeometryShaderConstants)); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, sizeof(GeometryShaderConstants)); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, sizeof(GeometryShaderConstants)); GeometryShaderManager::dirty = false; } @@ -237,7 +237,7 @@ void VertexManager::UpdatePixelShaderConstants() std::memcpy(m_uniform_stream_buffer->GetCurrentHostPointer(), &PixelShaderManager::constants, sizeof(PixelShaderConstants)); m_uniform_stream_buffer->CommitMemory(sizeof(PixelShaderConstants)); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, sizeof(PixelShaderConstants)); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, sizeof(PixelShaderConstants)); PixelShaderManager::dirty = false; } @@ -302,7 +302,7 @@ void VertexManager::UploadAllConstants() // Finally, flush buffer memory after copying m_uniform_stream_buffer->CommitMemory(allocation_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, allocation_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, allocation_size); // Clear dirty flags VertexShaderManager::dirty = false; @@ -324,7 +324,7 @@ void VertexManager::UploadUtilityUniforms(const void* data, u32 data_size) m_uniform_stream_buffer->GetBuffer(), m_uniform_stream_buffer->GetCurrentOffset(), data_size); std::memcpy(m_uniform_stream_buffer->GetCurrentHostPointer(), data, data_size); m_uniform_stream_buffer->CommitMemory(data_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, data_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, data_size); } bool VertexManager::UploadTexelBuffer(const void* data, u32 data_size, TexelBufferFormat format, @@ -349,7 +349,7 @@ bool VertexManager::UploadTexelBuffer(const void* data, u32 data_size, TexelBuff std::memcpy(m_texel_stream_buffer->GetCurrentHostPointer(), data, data_size); *out_offset = static_cast(m_texel_stream_buffer->GetCurrentOffset()) / elem_size; m_texel_stream_buffer->CommitMemory(data_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, data_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, data_size); StateTracker::GetInstance()->SetTexelBuffer(0, m_texel_buffer_views[format]); return true; } @@ -386,7 +386,7 @@ bool VertexManager::UploadTexelBuffer(const void* data, u32 data_size, TexelBuff palette_elem_size; m_texel_stream_buffer->CommitMemory(palette_byte_offset + palette_size); - ADDSTAT(stats.this_frame.bytes_uniform_streamed, palette_byte_offset + palette_size); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, palette_byte_offset + palette_size); StateTracker::GetInstance()->SetTexelBuffer(0, m_texel_buffer_views[format]); StateTracker::GetInstance()->SetTexelBuffer(1, m_texel_buffer_views[palette_format]); return true; diff --git a/Source/Core/VideoCommon/AsyncRequests.cpp b/Source/Core/VideoCommon/AsyncRequests.cpp index 5df1e9e4ef..11a37afdfa 100644 --- a/Source/Core/VideoCommon/AsyncRequests.cpp +++ b/Source/Core/VideoCommon/AsyncRequests.cpp @@ -117,7 +117,7 @@ void AsyncRequests::HandleEvent(const AsyncRequests::Event& e) { case Event::EFB_POKE_COLOR: { - INCSTAT(stats.this_frame.num_efb_pokes); + INCSTAT(g_stats.this_frame.num_efb_pokes); EfbPokeData poke = {e.efb_poke.x, e.efb_poke.y, e.efb_poke.data}; g_renderer->PokeEFB(EFBAccessType::PokeColor, &poke, 1); } @@ -125,20 +125,20 @@ void AsyncRequests::HandleEvent(const AsyncRequests::Event& e) case Event::EFB_POKE_Z: { - INCSTAT(stats.this_frame.num_efb_pokes); + INCSTAT(g_stats.this_frame.num_efb_pokes); EfbPokeData poke = {e.efb_poke.x, e.efb_poke.y, e.efb_poke.data}; g_renderer->PokeEFB(EFBAccessType::PokeZ, &poke, 1); } break; case Event::EFB_PEEK_COLOR: - INCSTAT(stats.this_frame.num_efb_peeks); + INCSTAT(g_stats.this_frame.num_efb_peeks); *e.efb_peek.data = g_renderer->AccessEFB(EFBAccessType::PeekColor, e.efb_peek.x, e.efb_peek.y, 0); break; case Event::EFB_PEEK_Z: - INCSTAT(stats.this_frame.num_efb_peeks); + INCSTAT(g_stats.this_frame.num_efb_peeks); *e.efb_peek.data = g_renderer->AccessEFB(EFBAccessType::PeekZ, e.efb_peek.x, e.efb_peek.y, 0); break; diff --git a/Source/Core/VideoCommon/OpcodeDecoding.cpp b/Source/Core/VideoCommon/OpcodeDecoding.cpp index a93fba7258..2e40b6d863 100644 --- a/Source/Core/VideoCommon/OpcodeDecoding.cpp +++ b/Source/Core/VideoCommon/OpcodeDecoding.cpp @@ -51,13 +51,13 @@ static u32 InterpretDisplayList(u32 address, u32 size) if (startAddress != nullptr) { // temporarily swap dl and non-dl (small "hack" for the stats) - stats.SwapDL(); + g_stats.SwapDL(); Run(DataReader(startAddress, startAddress + size), &cycles, true); - INCSTAT(stats.this_frame.num_dlists_called); + INCSTAT(g_stats.this_frame.num_dlists_called); // un-swap - stats.SwapDL(); + g_stats.SwapDL(); } return cycles; @@ -114,7 +114,7 @@ u8* Run(DataReader src, u32* cycles, bool in_display_list) u32 value = src.Read(); LoadCPReg(sub_cmd, value, is_preprocess); if (!is_preprocess) - INCSTAT(stats.this_frame.num_cp_loads); + INCSTAT(g_stats.this_frame.num_cp_loads); } break; @@ -132,7 +132,7 @@ u8* Run(DataReader src, u32* cycles, bool in_display_list) u32 xf_address = Cmd2 & 0xFFFF; LoadXFReg(transfer_size, xf_address, src); - INCSTAT(stats.this_frame.num_xf_loads); + INCSTAT(g_stats.this_frame.num_xf_loads); } src.Skip(transfer_size); } @@ -208,7 +208,7 @@ u8* Run(DataReader src, u32* cycles, bool in_display_list) else { LoadBPReg(bp_cmd); - INCSTAT(stats.this_frame.num_bp_loads); + INCSTAT(g_stats.this_frame.num_bp_loads); } } break; diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index 06471c8560..795a96e40d 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -524,7 +524,7 @@ void Renderer::DrawDebugText() } if (g_ActiveConfig.bOverlayStats) - stats.Display(); + g_stats.Display(); if (g_ActiveConfig.bShowNetPlayMessages && g_netplay_chat_ui) g_netplay_chat_ui->Display(); @@ -533,7 +533,7 @@ void Renderer::DrawDebugText() g_netplay_golf_ui->Display(); if (g_ActiveConfig.bOverlayProjStats) - stats.DisplayProj(); + g_stats.DisplayProj(); } float Renderer::CalculateDrawAspectRatio() const @@ -1280,8 +1280,8 @@ void Renderer::Swap(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height, u6 DolphinAnalytics::PerformanceSample perf_sample; perf_sample.speed_ratio = SystemTimers::GetEstimatedEmulationPerformance(); - perf_sample.num_prims = stats.this_frame.num_prims + stats.this_frame.num_dl_prims; - perf_sample.num_draw_calls = stats.this_frame.num_draw_calls; + perf_sample.num_prims = g_stats.this_frame.num_prims + g_stats.this_frame.num_dl_prims; + perf_sample.num_draw_calls = g_stats.this_frame.num_draw_calls; DolphinAnalytics::Instance().ReportPerformanceInfo(std::move(perf_sample)); if (IsFrameDumping()) @@ -1289,7 +1289,7 @@ void Renderer::Swap(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height, u6 // Begin new frame m_frame_count++; - stats.ResetFrame(); + g_stats.ResetFrame(); g_shader_cache->RetrieveAsyncShaders(); g_vertex_manager->OnEndFrame(); BeginImGuiFrame(); diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index 649b5a8587..1f578f6bd8 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -221,12 +221,12 @@ void ShaderCache::LoadShaderCache(T& cache, APIType api_type, const char* type, switch (stage) { case ShaderStage::Vertex: - INCSTAT(stats.num_vertex_shaders_created); - INCSTAT(stats.num_vertex_shaders_alive); + INCSTAT(g_stats.num_vertex_shaders_created); + INCSTAT(g_stats.num_vertex_shaders_alive); break; case ShaderStage::Pixel: - INCSTAT(stats.num_pixel_shaders_created); - INCSTAT(stats.num_pixel_shaders_alive); + INCSTAT(g_stats.num_pixel_shaders_created); + INCSTAT(g_stats.num_pixel_shaders_alive); break; default: break; @@ -369,10 +369,10 @@ void ShaderCache::ClearCaches() ClearShaderCache(m_uber_vs_cache); ClearShaderCache(m_uber_ps_cache); - SETSTAT(stats.num_pixel_shaders_created, 0); - SETSTAT(stats.num_pixel_shaders_alive, 0); - SETSTAT(stats.num_vertex_shaders_created, 0); - SETSTAT(stats.num_vertex_shaders_alive, 0); + SETSTAT(g_stats.num_pixel_shaders_created, 0); + SETSTAT(g_stats.num_pixel_shaders_alive, 0); + SETSTAT(g_stats.num_vertex_shaders_created, 0); + SETSTAT(g_stats.num_vertex_shaders_alive, 0); } void ShaderCache::CompileMissingPipelines() @@ -434,8 +434,8 @@ const AbstractShader* ShaderCache::InsertVertexShader(const VertexShaderUid& uid if (!binary.empty()) m_vs_cache.disk_cache.Append(uid, binary.data(), static_cast(binary.size())); } - INCSTAT(stats.num_vertex_shaders_created); - INCSTAT(stats.num_vertex_shaders_alive); + INCSTAT(g_stats.num_vertex_shaders_created); + INCSTAT(g_stats.num_vertex_shaders_alive); entry.shader = std::move(shader); } @@ -456,8 +456,8 @@ const AbstractShader* ShaderCache::InsertVertexUberShader(const UberShader::Vert if (!binary.empty()) m_uber_vs_cache.disk_cache.Append(uid, binary.data(), static_cast(binary.size())); } - INCSTAT(stats.num_vertex_shaders_created); - INCSTAT(stats.num_vertex_shaders_alive); + INCSTAT(g_stats.num_vertex_shaders_created); + INCSTAT(g_stats.num_vertex_shaders_alive); entry.shader = std::move(shader); } @@ -478,8 +478,8 @@ const AbstractShader* ShaderCache::InsertPixelShader(const PixelShaderUid& uid, if (!binary.empty()) m_ps_cache.disk_cache.Append(uid, binary.data(), static_cast(binary.size())); } - INCSTAT(stats.num_pixel_shaders_created); - INCSTAT(stats.num_pixel_shaders_alive); + INCSTAT(g_stats.num_pixel_shaders_created); + INCSTAT(g_stats.num_pixel_shaders_alive); entry.shader = std::move(shader); } @@ -500,8 +500,8 @@ const AbstractShader* ShaderCache::InsertPixelUberShader(const UberShader::Pixel if (!binary.empty()) m_uber_ps_cache.disk_cache.Append(uid, binary.data(), static_cast(binary.size())); } - INCSTAT(stats.num_pixel_shaders_created); - INCSTAT(stats.num_pixel_shaders_alive); + INCSTAT(g_stats.num_pixel_shaders_created); + INCSTAT(g_stats.num_pixel_shaders_alive); entry.shader = std::move(shader); } diff --git a/Source/Core/VideoCommon/Statistics.cpp b/Source/Core/VideoCommon/Statistics.cpp index 081e20353c..98b60dd5da 100644 --- a/Source/Core/VideoCommon/Statistics.cpp +++ b/Source/Core/VideoCommon/Statistics.cpp @@ -10,7 +10,7 @@ #include "VideoCommon/VideoConfig.h" -Statistics stats; +Statistics g_stats; void Statistics::ResetFrame() { diff --git a/Source/Core/VideoCommon/Statistics.h b/Source/Core/VideoCommon/Statistics.h index 8491010641..e6fa72616a 100644 --- a/Source/Core/VideoCommon/Statistics.h +++ b/Source/Core/VideoCommon/Statistics.h @@ -67,7 +67,7 @@ struct Statistics void DisplayProj() const; }; -extern Statistics stats; +extern Statistics g_stats; #define STATISTICS diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index d031792b4b..490b51683e 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -1200,8 +1200,8 @@ TextureCacheBase::GetTexture(u32 address, u32 width, u32 height, const TextureFo } } - INCSTAT(stats.num_textures_uploaded); - SETSTAT(stats.num_textures_alive, static_cast(textures_by_address.size())); + INCSTAT(g_stats.num_textures_uploaded); + SETSTAT(g_stats.num_textures_alive, static_cast(textures_by_address.size())); entry = DoPartialTextureUpdates(iter->second, &texMem[tlutaddr], tlutfmt); @@ -1277,8 +1277,8 @@ TextureCacheBase::GetXFBTexture(u32 address, u32 width, u32 height, u32 stride, // Insert into the texture cache so we can re-use it next frame, if needed. textures_by_address.emplace(entry->addr, entry); - SETSTAT(stats.num_textures_alive, static_cast(textures_by_address.size())); - INCSTAT(stats.num_textures_uploaded); + SETSTAT(g_stats.num_textures_alive, static_cast(textures_by_address.size())); + INCSTAT(g_stats.num_textures_uploaded); if (g_ActiveConfig.bDumpXFBTarget) { @@ -2017,7 +2017,7 @@ TextureCacheBase::AllocateTexture(const TextureConfig& config) } } - INCSTAT(stats.num_textures_created); + INCSTAT(g_stats.num_textures_created); return TexPoolEntry(std::move(texture), std::move(framebuffer)); } diff --git a/Source/Core/VideoCommon/VertexLoaderManager.cpp b/Source/Core/VideoCommon/VertexLoaderManager.cpp index 391d956401..81b537c297 100644 --- a/Source/Core/VideoCommon/VertexLoaderManager.cpp +++ b/Source/Core/VideoCommon/VertexLoaderManager.cpp @@ -54,7 +54,7 @@ void Init() map_entry = nullptr; for (auto& map_entry : g_preprocess_cp_state.vertex_loaders) map_entry = nullptr; - SETSTAT(stats.num_vertex_loaders, 0); + SETSTAT(g_stats.num_vertex_loaders, 0); } void Clear() @@ -223,7 +223,7 @@ static VertexLoaderBase* RefreshLoader(int vtx_attr_group, bool preprocess = fal s_vertex_loader_map[uid] = VertexLoaderBase::CreateVertexLoader(state->vtx_desc, state->vtx_attr[vtx_attr_group]); loader = s_vertex_loader_map[uid].get(); - INCSTAT(stats.num_vertex_loaders); + INCSTAT(g_stats.num_vertex_loaders); } if (check_for_native_format) { @@ -287,8 +287,8 @@ int RunVertices(int vtx_attr_group, int primitive, int count, DataReader src, bo g_vertex_manager->FlushData(count, loader->m_native_vtx_decl.stride); - ADDSTAT(stats.this_frame.num_prims, count); - INCSTAT(stats.this_frame.num_primitive_joins); + ADDSTAT(g_stats.this_frame.num_prims, count); + INCSTAT(g_stats.this_frame.num_primitive_joins); return size; } diff --git a/Source/Core/VideoCommon/VertexManagerBase.cpp b/Source/Core/VideoCommon/VertexManagerBase.cpp index f196bfc48a..c9fa12f6bb 100644 --- a/Source/Core/VideoCommon/VertexManagerBase.cpp +++ b/Source/Core/VideoCommon/VertexManagerBase.cpp @@ -442,7 +442,7 @@ void VertexManagerBase::Flush() g_perf_query->EnableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); DrawCurrentBatch(base_index, num_indices, base_vertex); - INCSTAT(stats.this_frame.num_draw_calls); + INCSTAT(g_stats.this_frame.num_draw_calls); if (PerfQueryBase::ShouldEmulate()) g_perf_query->DisableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); diff --git a/Source/Core/VideoCommon/VertexShaderManager.cpp b/Source/Core/VideoCommon/VertexShaderManager.cpp index 2cfc19993f..59a89be52d 100644 --- a/Source/Core/VideoCommon/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/VertexShaderManager.cpp @@ -374,7 +374,7 @@ void VertexShaderManager::SetConstants() g_fProjectionMatrix[14] = -1.0f; g_fProjectionMatrix[15] = 0.0f; - stats.gproj = g_fProjectionMatrix; + g_stats.gproj = g_fProjectionMatrix; break; case GX_ORTHOGRAPHIC: @@ -399,8 +399,8 @@ void VertexShaderManager::SetConstants() g_fProjectionMatrix[14] = 0.0f; g_fProjectionMatrix[15] = 1.0f; - stats.g2proj = g_fProjectionMatrix; - stats.proj = rawProjection; + g_stats.g2proj = g_fProjectionMatrix; + g_stats.proj = rawProjection; break; default: