如何获取游戏外部的真实显存占用

我们发现在某些情况下,启动游戏前,系统已经占用了大量的专用显存。尝试从代码里的Adapter里获取LocalMemoryInfo.Budget 来获取游戏可用的专用显存。但似乎这个值是固定的,和启用游戏前的专用显存占用无关。两者似乎没有联系。想咨询一下,如果想计算游戏启动时,已经被系统占用的专用显存要如何处理。

Hi,

我看了一下UE5.6代码里的功能,应该是对的上的,我这台机器总的物理显存是11G,用了5.6G,还剩5.6G左右。这部分的代码是在\Release-5.6\Engine\Source\Runtime\RHICore\Private\DXGIUtilities.cpp的UE::DXGIUtilities::GetD3DMemoryStats函数里,你可以参考一下。

[Image Removed]

您好,Budget 是由操作系统控制的,无法自己改变

在windows下获取这些数据可以通过 Windows Performance Counter 来获取

目前这个功能只在Editor和非Shipping下打开(加启动参数 -perfcounters),开启了一个异步线程间隔一段时间获取,然后通过unreal insight可以显示(-trace=Counters)

如果需要在启动时获取,需要自己参考 WindowsPlatformPerfCounters.cpp 的代码获取相应的值