Skip to content

Commit ee6887b

Browse files
committed
GPU/HW: Add stat for depth buffer clears
1 parent 2bfbec3 commit ee6887b

3 files changed

Lines changed: 43 additions & 26 deletions

File tree

src/core/gpu_backend.cpp

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -31,26 +31,6 @@ LOG_CHANNEL(GPU);
3131

3232
namespace {
3333

34-
struct Counters
35-
{
36-
u32 num_reads;
37-
u32 num_writes;
38-
u32 num_copies;
39-
u32 num_vertices;
40-
u32 num_primitives;
41-
};
42-
43-
struct Stats : Counters
44-
{
45-
size_t host_buffer_streamed;
46-
u32 host_num_draws;
47-
u32 host_num_barriers;
48-
u32 host_num_render_passes;
49-
u32 host_num_copies;
50-
u32 host_num_downloads;
51-
u32 host_num_uploads;
52-
};
53-
5434
struct ALIGN_TO_CACHE_LINE CPUThreadState
5535
{
5636
static constexpr u32 WAIT_NONE = 0;
@@ -65,8 +45,8 @@ struct ALIGN_TO_CACHE_LINE CPUThreadState
6545

6646
} // namespace
6747

68-
static Counters s_counters = {};
69-
static Stats s_stats = {};
48+
GPUBackend::Counters GPUBackend::s_counters = {};
49+
GPUBackend::Stats GPUBackend::s_stats = {};
7050

7151
static CPUThreadState s_cpu_thread_state = {};
7252

@@ -603,10 +583,21 @@ void GPUBackend::GetStatsString(SmallStringBase& str) const
603583
{
604584
if (IsUsingHardwareBackend())
605585
{
606-
str.format("{}{} HW | {} P | {} DC | {} B | {} RP | {} RB | {} C | {} W",
607-
GPUDevice::RenderAPIToString(g_gpu_device->GetRenderAPI()), g_gpu_settings.gpu_use_thread ? "-MT" : "",
608-
s_stats.num_primitives, s_stats.host_num_draws, s_stats.host_num_barriers,
609-
s_stats.host_num_render_passes, s_stats.host_num_downloads, s_stats.num_copies, s_stats.num_writes);
586+
if (g_gpu_settings.gpu_pgxp_depth_buffer)
587+
{
588+
str.format("{}{} HW | {} P | {} DC | {} B | {} RP | {} RB | {} C | {} W | {} DBC",
589+
GPUDevice::RenderAPIToString(g_gpu_device->GetRenderAPI()), g_gpu_settings.gpu_use_thread ? "-MT" : "",
590+
s_stats.num_primitives, s_stats.host_num_draws, s_stats.host_num_barriers,
591+
s_stats.host_num_render_passes, s_stats.host_num_downloads, s_stats.num_copies, s_stats.num_writes,
592+
s_stats.num_depth_buffer_clears);
593+
}
594+
else
595+
{
596+
str.format("{}{} HW | {} P | {} DC | {} B | {} RP | {} RB | {} C | {} W",
597+
GPUDevice::RenderAPIToString(g_gpu_device->GetRenderAPI()), g_gpu_settings.gpu_use_thread ? "-MT" : "",
598+
s_stats.num_primitives, s_stats.host_num_draws, s_stats.host_num_barriers,
599+
s_stats.host_num_render_passes, s_stats.host_num_downloads, s_stats.num_copies, s_stats.num_writes);
600+
}
610601
}
611602
else
612603
{
@@ -644,6 +635,7 @@ void GPUBackend::UpdateStatistics(u32 frame_count)
644635
UPDATE_COUNTER(num_copies);
645636
UPDATE_COUNTER(num_vertices);
646637
UPDATE_COUNTER(num_primitives);
638+
UPDATE_COUNTER(num_depth_buffer_clears);
647639

648640
// UPDATE_COUNTER(num_read_texture_updates);
649641
// UPDATE_COUNTER(num_ubo_updates);

src/core/gpu_backend.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,27 @@ class ALIGN_TO_CACHE_LINE GPUBackend
126126
DEINTERLACE_BUFFER_COUNT = 4,
127127
};
128128

129+
struct Counters
130+
{
131+
u32 num_reads;
132+
u32 num_writes;
133+
u32 num_copies;
134+
u32 num_vertices;
135+
u32 num_primitives;
136+
u32 num_depth_buffer_clears;
137+
};
138+
139+
struct Stats : Counters
140+
{
141+
size_t host_buffer_streamed;
142+
u32 host_num_draws;
143+
u32 host_num_barriers;
144+
u32 host_num_render_passes;
145+
u32 host_num_copies;
146+
u32 host_num_downloads;
147+
u32 host_num_uploads;
148+
};
149+
129150
virtual void ReadVRAM(u32 x, u32 y, u32 width, u32 height) = 0;
130151
virtual void FillVRAM(u32 x, u32 y, u32 width, u32 height, u32 color, bool interlaced_rendering,
131152
u8 interlaced_display_field) = 0;
@@ -157,6 +178,9 @@ class ALIGN_TO_CACHE_LINE GPUBackend
157178
GPUPresenter& m_presenter;
158179
GSVector4i m_clamped_drawing_area = {};
159180

181+
static Counters s_counters;
182+
static Stats s_stats;
183+
160184
private:
161185
static void ReleaseQueuedFrame();
162186
};

src/core/gpu_hw.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1988,6 +1988,7 @@ void GPU_HW::ClearDepthBuffer()
19881988
else
19891989
g_gpu_device->ClearDepth(m_vram_depth_texture.get(), 1.0f);
19901990
m_last_depth_z = 1.0f;
1991+
s_counters.num_depth_buffer_clears++;
19911992
}
19921993

19931994
void GPU_HW::SetScissor()

0 commit comments

Comments
 (0)