mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-03-12 22:56:52 +01:00
VideoCommon/Statistics: Make all member functions non-static
Rather than making Statistics' member functions operate on the global variable instance of itself, we can make these functions member functions and operate on a by-instance state, removing the direct dependency on the global variable itself. This also makes for less reading, as there's no need to repeat "stats." for all variable accesses.
This commit is contained in:
parent
a99c7d01e1
commit
9802a5e16b
@ -51,13 +51,13 @@ static u32 InterpretDisplayList(u32 address, u32 size)
|
|||||||
if (startAddress != nullptr)
|
if (startAddress != nullptr)
|
||||||
{
|
{
|
||||||
// temporarily swap dl and non-dl (small "hack" for the stats)
|
// temporarily swap dl and non-dl (small "hack" for the stats)
|
||||||
Statistics::SwapDL();
|
stats.SwapDL();
|
||||||
|
|
||||||
Run(DataReader(startAddress, startAddress + size), &cycles, true);
|
Run(DataReader(startAddress, startAddress + size), &cycles, true);
|
||||||
INCSTAT(stats.this_frame.num_dlists_called);
|
INCSTAT(stats.this_frame.num_dlists_called);
|
||||||
|
|
||||||
// un-swap
|
// un-swap
|
||||||
Statistics::SwapDL();
|
stats.SwapDL();
|
||||||
}
|
}
|
||||||
|
|
||||||
return cycles;
|
return cycles;
|
||||||
|
@ -524,7 +524,7 @@ void Renderer::DrawDebugText()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (g_ActiveConfig.bOverlayStats)
|
if (g_ActiveConfig.bOverlayStats)
|
||||||
Statistics::Display();
|
stats.Display();
|
||||||
|
|
||||||
if (g_ActiveConfig.bShowNetPlayMessages && g_netplay_chat_ui)
|
if (g_ActiveConfig.bShowNetPlayMessages && g_netplay_chat_ui)
|
||||||
g_netplay_chat_ui->Display();
|
g_netplay_chat_ui->Display();
|
||||||
@ -533,7 +533,7 @@ void Renderer::DrawDebugText()
|
|||||||
g_netplay_golf_ui->Display();
|
g_netplay_golf_ui->Display();
|
||||||
|
|
||||||
if (g_ActiveConfig.bOverlayProjStats)
|
if (g_ActiveConfig.bOverlayProjStats)
|
||||||
Statistics::DisplayProj();
|
stats.DisplayProj();
|
||||||
}
|
}
|
||||||
|
|
||||||
float Renderer::CalculateDrawAspectRatio() const
|
float Renderer::CalculateDrawAspectRatio() const
|
||||||
|
@ -19,13 +19,13 @@ void Statistics::ResetFrame()
|
|||||||
|
|
||||||
void Statistics::SwapDL()
|
void Statistics::SwapDL()
|
||||||
{
|
{
|
||||||
std::swap(stats.this_frame.num_dl_prims, stats.this_frame.num_prims);
|
std::swap(this_frame.num_dl_prims, this_frame.num_prims);
|
||||||
std::swap(stats.this_frame.num_xf_loads_in_dl, stats.this_frame.num_xf_loads);
|
std::swap(this_frame.num_xf_loads_in_dl, this_frame.num_xf_loads);
|
||||||
std::swap(stats.this_frame.num_cp_loads_in_dl, stats.this_frame.num_cp_loads);
|
std::swap(this_frame.num_cp_loads_in_dl, this_frame.num_cp_loads);
|
||||||
std::swap(stats.this_frame.num_bp_loads_in_dl, stats.this_frame.num_bp_loads);
|
std::swap(this_frame.num_bp_loads_in_dl, this_frame.num_bp_loads);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Statistics::Display()
|
void Statistics::Display() const
|
||||||
{
|
{
|
||||||
const float scale = ImGui::GetIO().DisplayFramebufferScale.x;
|
const float scale = ImGui::GetIO().DisplayFramebufferScale.x;
|
||||||
ImGui::SetNextWindowPos(ImVec2(10.0f * scale, 10.0f * scale), ImGuiCond_FirstUseEver);
|
ImGui::SetNextWindowPos(ImVec2(10.0f * scale, 10.0f * scale), ImGuiCond_FirstUseEver);
|
||||||
@ -48,43 +48,43 @@ void Statistics::Display()
|
|||||||
|
|
||||||
if (g_ActiveConfig.backend_info.api_type == APIType::Nothing)
|
if (g_ActiveConfig.backend_info.api_type == APIType::Nothing)
|
||||||
{
|
{
|
||||||
draw_statistic("Objects", "%d", stats.this_frame.num_drawn_objects);
|
draw_statistic("Objects", "%d", this_frame.num_drawn_objects);
|
||||||
draw_statistic("Vertices Loaded", "%d", stats.this_frame.num_vertices_loaded);
|
draw_statistic("Vertices Loaded", "%d", this_frame.num_vertices_loaded);
|
||||||
draw_statistic("Triangles Input", "%d", stats.this_frame.num_triangles_in);
|
draw_statistic("Triangles Input", "%d", this_frame.num_triangles_in);
|
||||||
draw_statistic("Triangles Rejected", "%d", stats.this_frame.num_triangles_rejected);
|
draw_statistic("Triangles Rejected", "%d", this_frame.num_triangles_rejected);
|
||||||
draw_statistic("Triangles Culled", "%d", stats.this_frame.num_triangles_culled);
|
draw_statistic("Triangles Culled", "%d", this_frame.num_triangles_culled);
|
||||||
draw_statistic("Triangles Clipped", "%d", stats.this_frame.num_triangles_clipped);
|
draw_statistic("Triangles Clipped", "%d", this_frame.num_triangles_clipped);
|
||||||
draw_statistic("Triangles Drawn", "%d", stats.this_frame.num_triangles_drawn);
|
draw_statistic("Triangles Drawn", "%d", this_frame.num_triangles_drawn);
|
||||||
draw_statistic("Rasterized Pix", "%d", stats.this_frame.rasterized_pixels);
|
draw_statistic("Rasterized Pix", "%d", this_frame.rasterized_pixels);
|
||||||
draw_statistic("TEV Pix In", "%d", stats.this_frame.tev_pixels_in);
|
draw_statistic("TEV Pix In", "%d", this_frame.tev_pixels_in);
|
||||||
draw_statistic("TEV Pix Out", "%d", stats.this_frame.tev_pixels_out);
|
draw_statistic("TEV Pix Out", "%d", this_frame.tev_pixels_out);
|
||||||
}
|
}
|
||||||
|
|
||||||
draw_statistic("Textures created", "%d", stats.num_textures_created);
|
draw_statistic("Textures created", "%d", num_textures_created);
|
||||||
draw_statistic("Textures uploaded", "%d", stats.num_textures_uploaded);
|
draw_statistic("Textures uploaded", "%d", num_textures_uploaded);
|
||||||
draw_statistic("Textures alive", "%d", stats.num_textures_alive);
|
draw_statistic("Textures alive", "%d", num_textures_alive);
|
||||||
draw_statistic("pshaders created", "%d", stats.num_pixel_shaders_created);
|
draw_statistic("pshaders created", "%d", num_pixel_shaders_created);
|
||||||
draw_statistic("pshaders alive", "%d", stats.num_pixel_shaders_alive);
|
draw_statistic("pshaders alive", "%d", num_pixel_shaders_alive);
|
||||||
draw_statistic("vshaders created", "%d", stats.num_vertex_shaders_created);
|
draw_statistic("vshaders created", "%d", num_vertex_shaders_created);
|
||||||
draw_statistic("vshaders alive", "%d", stats.num_vertex_shaders_alive);
|
draw_statistic("vshaders alive", "%d", num_vertex_shaders_alive);
|
||||||
draw_statistic("shaders changes", "%d", stats.this_frame.num_shader_changes);
|
draw_statistic("shaders changes", "%d", this_frame.num_shader_changes);
|
||||||
draw_statistic("dlists called", "%d", stats.this_frame.num_dlists_called);
|
draw_statistic("dlists called", "%d", this_frame.num_dlists_called);
|
||||||
draw_statistic("Primitive joins", "%d", stats.this_frame.num_primitive_joins);
|
draw_statistic("Primitive joins", "%d", this_frame.num_primitive_joins);
|
||||||
draw_statistic("Draw calls", "%d", stats.this_frame.num_draw_calls);
|
draw_statistic("Draw calls", "%d", this_frame.num_draw_calls);
|
||||||
draw_statistic("Primitives", "%d", stats.this_frame.num_prims);
|
draw_statistic("Primitives", "%d", this_frame.num_prims);
|
||||||
draw_statistic("Primitives (DL)", "%d", stats.this_frame.num_dl_prims);
|
draw_statistic("Primitives (DL)", "%d", this_frame.num_dl_prims);
|
||||||
draw_statistic("XF loads", "%d", stats.this_frame.num_xf_loads);
|
draw_statistic("XF loads", "%d", this_frame.num_xf_loads);
|
||||||
draw_statistic("XF loads (DL)", "%d", stats.this_frame.num_xf_loads_in_dl);
|
draw_statistic("XF loads (DL)", "%d", this_frame.num_xf_loads_in_dl);
|
||||||
draw_statistic("CP loads", "%d", stats.this_frame.num_cp_loads);
|
draw_statistic("CP loads", "%d", this_frame.num_cp_loads);
|
||||||
draw_statistic("CP loads (DL)", "%d", stats.this_frame.num_cp_loads_in_dl);
|
draw_statistic("CP loads (DL)", "%d", this_frame.num_cp_loads_in_dl);
|
||||||
draw_statistic("BP loads", "%d", stats.this_frame.num_bp_loads);
|
draw_statistic("BP loads", "%d", this_frame.num_bp_loads);
|
||||||
draw_statistic("BP loads (DL)", "%d", stats.this_frame.num_bp_loads_in_dl);
|
draw_statistic("BP loads (DL)", "%d", this_frame.num_bp_loads_in_dl);
|
||||||
draw_statistic("Vertex streamed", "%i kB", stats.this_frame.bytes_vertex_streamed / 1024);
|
draw_statistic("Vertex streamed", "%i kB", this_frame.bytes_vertex_streamed / 1024);
|
||||||
draw_statistic("Index streamed", "%i kB", stats.this_frame.bytes_index_streamed / 1024);
|
draw_statistic("Index streamed", "%i kB", this_frame.bytes_index_streamed / 1024);
|
||||||
draw_statistic("Uniform streamed", "%i kB", stats.this_frame.bytes_uniform_streamed / 1024);
|
draw_statistic("Uniform streamed", "%i kB", this_frame.bytes_uniform_streamed / 1024);
|
||||||
draw_statistic("Vertex Loaders", "%d", stats.num_vertex_loaders);
|
draw_statistic("Vertex Loaders", "%d", num_vertex_loaders);
|
||||||
draw_statistic("EFB peeks:", "%d", stats.this_frame.num_efb_peeks);
|
draw_statistic("EFB peeks:", "%d", this_frame.num_efb_peeks);
|
||||||
draw_statistic("EFB pokes:", "%d", stats.this_frame.num_efb_pokes);
|
draw_statistic("EFB pokes:", "%d", this_frame.num_efb_pokes);
|
||||||
|
|
||||||
ImGui::Columns(1);
|
ImGui::Columns(1);
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ void Statistics::Display()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Is this really needed?
|
// Is this really needed?
|
||||||
void Statistics::DisplayProj()
|
void Statistics::DisplayProj() const
|
||||||
{
|
{
|
||||||
if (!ImGui::Begin("Projection Statistics", nullptr, ImGuiWindowFlags_NoNavInputs))
|
if (!ImGui::Begin("Projection Statistics", nullptr, ImGuiWindowFlags_NoNavInputs))
|
||||||
{
|
{
|
||||||
@ -102,22 +102,22 @@ void Statistics::DisplayProj()
|
|||||||
|
|
||||||
ImGui::TextUnformatted("Projection #: X for Raw 6=0 (X for Raw 6!=0)");
|
ImGui::TextUnformatted("Projection #: X for Raw 6=0 (X for Raw 6!=0)");
|
||||||
ImGui::NewLine();
|
ImGui::NewLine();
|
||||||
ImGui::Text("Projection 0: %f (%f) Raw 0: %f", stats.gproj[0], stats.g2proj[0], stats.proj[0]);
|
ImGui::Text("Projection 0: %f (%f) Raw 0: %f", gproj[0], g2proj[0], proj[0]);
|
||||||
ImGui::Text("Projection 1: %f (%f)", stats.gproj[1], stats.g2proj[1]);
|
ImGui::Text("Projection 1: %f (%f)", gproj[1], g2proj[1]);
|
||||||
ImGui::Text("Projection 2: %f (%f) Raw 1: %f", stats.gproj[2], stats.g2proj[2], stats.proj[1]);
|
ImGui::Text("Projection 2: %f (%f) Raw 1: %f", gproj[2], g2proj[2], proj[1]);
|
||||||
ImGui::Text("Projection 3: %f (%f)", stats.gproj[3], stats.g2proj[3]);
|
ImGui::Text("Projection 3: %f (%f)", gproj[3], g2proj[3]);
|
||||||
ImGui::Text("Projection 4: %f (%f)", stats.gproj[4], stats.g2proj[4]);
|
ImGui::Text("Projection 4: %f (%f)", gproj[4], g2proj[4]);
|
||||||
ImGui::Text("Projection 5: %f (%f) Raw 2: %f", stats.gproj[5], stats.g2proj[5], stats.proj[2]);
|
ImGui::Text("Projection 5: %f (%f) Raw 2: %f", gproj[5], g2proj[5], proj[2]);
|
||||||
ImGui::Text("Projection 6: %f (%f) Raw 3: %f", stats.gproj[6], stats.g2proj[6], stats.proj[3]);
|
ImGui::Text("Projection 6: %f (%f) Raw 3: %f", gproj[6], g2proj[6], proj[3]);
|
||||||
ImGui::Text("Projection 7: %f (%f)", stats.gproj[7], stats.g2proj[7]);
|
ImGui::Text("Projection 7: %f (%f)", gproj[7], g2proj[7]);
|
||||||
ImGui::Text("Projection 8: %f (%f)", stats.gproj[8], stats.g2proj[8]);
|
ImGui::Text("Projection 8: %f (%f)", gproj[8], g2proj[8]);
|
||||||
ImGui::Text("Projection 9: %f (%f)", stats.gproj[9], stats.g2proj[9]);
|
ImGui::Text("Projection 9: %f (%f)", gproj[9], g2proj[9]);
|
||||||
ImGui::Text("Projection 10: %f (%f) Raw 4: %f", stats.gproj[10], stats.g2proj[10], stats.proj[4]);
|
ImGui::Text("Projection 10: %f (%f) Raw 4: %f", gproj[10], g2proj[10], proj[4]);
|
||||||
ImGui::Text("Projection 11: %f (%f) Raw 5: %f", stats.gproj[11], stats.g2proj[11], stats.proj[5]);
|
ImGui::Text("Projection 11: %f (%f) Raw 5: %f", gproj[11], g2proj[11], proj[5]);
|
||||||
ImGui::Text("Projection 12: %f (%f)", stats.gproj[12], stats.g2proj[12]);
|
ImGui::Text("Projection 12: %f (%f)", gproj[12], g2proj[12]);
|
||||||
ImGui::Text("Projection 13: %f (%f)", stats.gproj[13], stats.g2proj[13]);
|
ImGui::Text("Projection 13: %f (%f)", gproj[13], g2proj[13]);
|
||||||
ImGui::Text("Projection 14: %f (%f)", stats.gproj[14], stats.g2proj[14]);
|
ImGui::Text("Projection 14: %f (%f)", gproj[14], g2proj[14]);
|
||||||
ImGui::Text("Projection 15: %f (%f)", stats.gproj[15], stats.g2proj[15]);
|
ImGui::Text("Projection 15: %f (%f)", gproj[15], g2proj[15]);
|
||||||
|
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
}
|
}
|
||||||
|
@ -62,9 +62,9 @@ struct Statistics
|
|||||||
};
|
};
|
||||||
ThisFrame this_frame;
|
ThisFrame this_frame;
|
||||||
void ResetFrame();
|
void ResetFrame();
|
||||||
static void SwapDL();
|
void SwapDL();
|
||||||
static void Display();
|
void Display() const;
|
||||||
static void DisplayProj();
|
void DisplayProj() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern Statistics stats;
|
extern Statistics stats;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user