mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[hud] Reduce update frequency of queue submission display
Shows the maximum number of submissions encountered per frame in the given time frame.
This commit is contained in:
parent
3febca6863
commit
2c4879b58c
@ -290,8 +290,17 @@ namespace dxvk::hud {
|
|||||||
DxvkStatCounters counters = m_device->getStatCounters();
|
DxvkStatCounters counters = m_device->getStatCounters();
|
||||||
|
|
||||||
uint32_t currCounter = counters.getCtr(DxvkStatCounter::QueueSubmitCount);
|
uint32_t currCounter = counters.getCtr(DxvkStatCounter::QueueSubmitCount);
|
||||||
m_diffCounter = currCounter - m_prevCounter;
|
m_diffCounter = std::max(m_diffCounter, currCounter - m_prevCounter);
|
||||||
m_prevCounter = currCounter;
|
m_prevCounter = currCounter;
|
||||||
|
|
||||||
|
auto elapsed = std::chrono::duration_cast<std::chrono::microseconds>(time - m_lastUpdate);
|
||||||
|
|
||||||
|
if (elapsed.count() >= UpdateInterval) {
|
||||||
|
m_showCounter = m_diffCounter;
|
||||||
|
m_diffCounter = 0;
|
||||||
|
|
||||||
|
m_lastUpdate = time;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -308,7 +317,7 @@ namespace dxvk::hud {
|
|||||||
renderer.drawText(16.0f,
|
renderer.drawText(16.0f,
|
||||||
{ position.x + 228.0f, position.y },
|
{ position.x + 228.0f, position.y },
|
||||||
{ 1.0f, 1.0f, 1.0f, 1.0f },
|
{ 1.0f, 1.0f, 1.0f, 1.0f },
|
||||||
str::format(m_diffCounter));
|
str::format(m_showCounter));
|
||||||
|
|
||||||
position.y += 8.0f;
|
position.y += 8.0f;
|
||||||
return position;
|
return position;
|
||||||
|
@ -220,7 +220,7 @@ namespace dxvk::hud {
|
|||||||
* \brief HUD item to display queue submissions
|
* \brief HUD item to display queue submissions
|
||||||
*/
|
*/
|
||||||
class HudSubmissionStatsItem : public HudItem {
|
class HudSubmissionStatsItem : public HudItem {
|
||||||
|
constexpr static int64_t UpdateInterval = 500'000;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
HudSubmissionStatsItem(const Rc<DxvkDevice>& device);
|
HudSubmissionStatsItem(const Rc<DxvkDevice>& device);
|
||||||
@ -239,6 +239,10 @@ namespace dxvk::hud {
|
|||||||
|
|
||||||
uint64_t m_prevCounter = 0;
|
uint64_t m_prevCounter = 0;
|
||||||
uint64_t m_diffCounter = 0;
|
uint64_t m_diffCounter = 0;
|
||||||
|
uint64_t m_showCounter = 0;
|
||||||
|
|
||||||
|
dxvk::high_resolution_clock::time_point m_lastUpdate
|
||||||
|
= dxvk::high_resolution_clock::now();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user