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

Bro*_*her -2 c++ gpu vulkan

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

Nic*_*las 5

为什么"应该"是硬件限制?

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

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

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