如何获取Vulkan当前内存分配计数?maxMemoryAllocationCount是否为应用本地?
Vulkan内存分配计数与
maxMemoryAllocationCount的作用范围 maxMemoryAllocationCount是单个应用进程级别的限制,并非全局设备的总分配上限,其他应用的内存分配不会计入这个数值。
Vulkan的设备能力参数(包括这个内存分配计数限制),都是针对当前应用创建的Vulkan设备上下文而言的。也就是说,你的应用只需要统计自身发起的内存分配,确保计数不超过该值即可,不用考虑其他进程的占用——这些进程的分配属于各自独立的Vulkan上下文,不会占用你应用的配额。
另外,Vulkan本身没有提供API来获取设备全局的内存分配统计,因为这类系统级资源统计不属于Vulkan的核心职责范畴。如果需要查看全局GPU内存使用情况,只能通过对应平台的系统工具(比如Windows的任务管理器、Linux的nvidia-smi等)来查看,但无法通过Vulkan API直接获取。
实际开发中,你只需要维护好自身应用内的内存分配计数,若出现分配失败的情况,可以通过内存块合并、释放闲置资源、调整分配策略等方式降级处理,避免触发限制。
内容的提问来源于stack exchange,提问作者psionic12
相关产品推荐
相关产品推荐

