1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-27 04:54:15 +01:00

[hud] Display number of merged draws, if any

This commit is contained in:
Philip Rebohle 2025-02-21 18:18:52 +01:00 committed by Philip Rebohle
parent 9b37ba679a
commit a0ea29a2fa
2 changed files with 19 additions and 13 deletions

View File

@ -800,10 +800,11 @@ namespace dxvk::hud {
auto diffCounters = counters.diff(m_prevCounters);
if (elapsed.count() >= UpdateInterval) {
m_gpCount = diffCounters.getCtr(DxvkStatCounter::CmdDrawCalls);
m_cpCount = diffCounters.getCtr(DxvkStatCounter::CmdDispatchCalls);
m_rpCount = diffCounters.getCtr(DxvkStatCounter::CmdRenderPassCount);
m_pbCount = diffCounters.getCtr(DxvkStatCounter::CmdBarrierCount);
m_drawCallCount = diffCounters.getCtr(DxvkStatCounter::CmdDrawCalls);
m_drawCount = diffCounters.getCtr(DxvkStatCounter::CmdDrawsMerged) + m_drawCallCount;
m_dispatchCount = diffCounters.getCtr(DxvkStatCounter::CmdDispatchCalls);
m_renderPassCount = diffCounters.getCtr(DxvkStatCounter::CmdRenderPassCount);
m_barrierCount = diffCounters.getCtr(DxvkStatCounter::CmdBarrierCount);
m_lastUpdate = time;
}
@ -818,21 +819,25 @@ namespace dxvk::hud {
const HudOptions& options,
HudRenderer& renderer,
HudPos position) {
std::string drawCount = m_drawCount > m_drawCallCount
? str::format(m_drawCallCount, " (", m_drawCount, ")")
: str::format(m_drawCallCount);
position.y += 16;
renderer.drawText(16, position, 0xffff8040, "Draw calls:");
renderer.drawText(16, { position.x + 192, position.y }, 0xffffffffu, str::format(m_gpCount));
renderer.drawText(16, { position.x + 192, position.y }, 0xffffffffu, drawCount);
position.y += 20;
renderer.drawText(16, position, 0xffff8040, "Dispatch calls:");
renderer.drawText(16, { position.x + 192, position.y }, 0xffffffffu, str::format(m_cpCount));
renderer.drawText(16, { position.x + 192, position.y }, 0xffffffffu, str::format(m_dispatchCount));
position.y += 20;
renderer.drawText(16, position, 0xffff8040, "Render passes:");
renderer.drawText(16, { position.x + 192, position.y }, 0xffffffffu, str::format(m_rpCount));
renderer.drawText(16, { position.x + 192, position.y }, 0xffffffffu, str::format(m_renderPassCount));
position.y += 20;
renderer.drawText(16, position, 0xffff8040, "Barriers:");
renderer.drawText(16, { position.x + 192, position.y }, 0xffffffffu, str::format(m_pbCount));
renderer.drawText(16, { position.x + 192, position.y }, 0xffffffffu, str::format(m_barrierCount));
position.y += 8;
return position;

View File

@ -422,10 +422,11 @@ namespace dxvk::hud {
DxvkStatCounters m_prevCounters;
uint64_t m_gpCount = 0;
uint64_t m_cpCount = 0;
uint64_t m_rpCount = 0;
uint64_t m_pbCount = 0;
uint64_t m_drawCallCount = 0;
uint64_t m_drawCount = 0;
uint64_t m_dispatchCount = 0;
uint64_t m_renderPassCount = 0;
uint64_t m_barrierCount = 0;
dxvk::high_resolution_clock::time_point m_lastUpdate
= dxvk::high_resolution_clock::now();