Skip to content

Commit c48e7a7

Browse files
Merge branch 'hud-vram' into 'main'
Add total vram consumption to the dxvk.hud See merge request lightspeedrtx/dxvk-remix-nv!2322
2 parents 158dc61 + 4d13aba commit c48e7a7

2 files changed

Lines changed: 33 additions & 0 deletions

File tree

src/dxvk/hud/dxvk_hud_item.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -573,6 +573,10 @@ namespace dxvk::hud {
573573
void HudMemoryStatsItem::update(dxvk::high_resolution_clock::time_point time) {
574574
for (uint32_t i = 0; i < m_memory.memoryHeapCount; i++)
575575
m_heaps[i] = m_device->getMemoryStats(i);
576+
577+
// NV-DXVK start: report driver-side VRAM usage
578+
m_driverMemInfo = m_device->adapter()->getMemoryHeapInfo();
579+
// NV-DXVK end
576580
}
577581

578582

@@ -618,6 +622,30 @@ namespace dxvk::hud {
618622
position.y += 4.0f;
619623
}
620624

625+
// NV-DXVK start: report driver-side VRAM usage alongside DXVK's own allocator stats
626+
// "Vidmem heap" only counts memory that DXVK's own suballocator, this includes everything
627+
// the driver attributes to this process.
628+
const DxvkAdapterMemoryHeapInfo& driverHeap = m_driverMemInfo.heaps[i];
629+
VkDeviceSize driverUsedMib = driverHeap.memoryAllocated >> 20;
630+
VkDeviceSize driverBudgetMib = driverHeap.memoryBudget >> 20;
631+
uint64_t driverPercentage = driverBudgetMib ? (100 * driverUsedMib) / driverBudgetMib : 0;
632+
633+
std::string driverLabel = "Total VRAM:";
634+
std::string driverText = str::format(std::setfill(' '), std::setw(5),
635+
driverUsedMib, " / ", driverBudgetMib, " MB(", driverPercentage, "%)");
636+
637+
position.y += 20.0f;
638+
renderer.drawText(16.0f,
639+
{ position.x, position.y },
640+
{ 0.6f, 1.0f, 1.0f, 1.0f },
641+
driverLabel);
642+
643+
renderer.drawText(16.0f,
644+
{ position.x + 168.0f, position.y },
645+
{ 1.0f, 1.0f, 1.0f, 1.0f },
646+
driverText);
647+
// NV-DXVK end
648+
621649
position.y += 16.0f;
622650
}
623651
}

src/dxvk/hud/dxvk_hud_item.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#include "../../util/util_time.h"
99

10+
#include "../dxvk_adapter.h"
11+
1012
#include "dxvk_hud_renderer.h"
1113

1214
namespace dxvk::hud {
@@ -380,6 +382,9 @@ namespace dxvk::hud {
380382
Rc<DxvkDevice> m_device;
381383
VkPhysicalDeviceMemoryProperties m_memory;
382384
DxvkMemoryStats m_heaps[VK_MAX_MEMORY_HEAPS];
385+
// NV-DXVK start: report driver-side VRAM usage
386+
DxvkAdapterMemoryInfo m_driverMemInfo;
387+
// NV-DXVK end
383388

384389
};
385390

0 commit comments

Comments
 (0)