Vulkan:为什么1080 Ti在arch上的maxMemoryAllocationCount为4294967296但在Windows上只有4096?

时间:2017-11-15 17:05:59

标签: c++ gpu vulkan

我目前正在用C ++构建一个游戏引擎,它使用vulkan进行渲染。在实现地形渲染器时,我达到了硬件限制,maxMemoryAllocationCount限制了分配的内存块数量。我检查https://vulkan.gpuinfo.org/以查看不同GPU上的值有多高。在查看" GeForce GTX 1080 Ti"时,Windows的值为4096,而arch / manjaro的值为4294967296。为什么这些操作系统之间存在差异?当真正的应该是硬件限制时?

1 个答案:

答案 0 :(得分:5)

为什么“应该”是硬件限制?

除了4个例外,每个Windows实现仅限于4096个分配。这些例外是在Windows上运行的开源RADV或者返回虚假值的早期驱动程序。

很明显,Windows作为操作系统正在施加这种限制。毕竟,操作系统拥有GPU,必须参与任何内存分配。

操作系统有权阻止某个过程参与病态行为。 Windows似乎认为制作大量GPU分配是病态的,因此WDDM模型对GPU分配施加了一个低但合理的限制。