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

View File

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