我试图获取我的游戏目前正在使用的VRAM总量。我想在我的调试信息中显示它。
当我使用Visual Studio Graphics Analyzer
时,我有了一个主意。
我想我可以通过添加每个图形对象的大小来获得所使用的VRAM数量,如Graphics Object Table
中所示。
不幸的是我不知道如何获得每个对象。有没有一种简单的方法可以获得这些?
答案 0 :(得分:3)
我实际上找到了一种更简单的方法:
#include <dxgi1_4.h>
...
IDXGIFactory4* pFactory;
CreateDXGIFactory1(__uuidof(IDXGIFactory4), (void**)&pFactory);
IDXGIAdapter3* adapter;
pFactory->EnumAdapters(0, reinterpret_cast<IDXGIAdapter**>(&adapter));
DXGI_QUERY_VIDEO_MEMORY_INFO videoMemoryInfo;
adapter->QueryVideoMemoryInfo(0, DXGI_MEMORY_SEGMENT_GROUP_LOCAL, &videoMemoryInfo);
size_t usedVRAM = videoMemoryInfo.CurrentUsage / 1024 / 1024;
这将从默认(ID 0)适配器获取当前使用的VRAM并将其转换为兆字节。
注意:这确实需要使用Windows 10 SDK