【发布时间】:2018-04-29 00:38:55
【问题描述】:
我目前正在用 C++ 构建一个使用 vulkan 进行渲染的游戏引擎。在实现地形渲染器时,我达到了硬件限制,maxMemoryAllocationCount 限制了分配的内存块的数量。我检查了https://vulkan.gpuinfo.org/ 以了解不同 GPU 上的该值有多高。查看“GeForce GTX 1080 Ti”时,windows 的值为 4096,而 arch/manjaro 的值为 4294967296。为什么这些操作系统之间存在差异,而这确实应该是硬件限制?
【问题讨论】:
-
4294967296是 2^32。maxMemoryAllocationCount是uint32_t,它可以保存0和4294967295/2^32-1之间的值。所以这个值很可能只是垃圾。 -
@SimonKraemer:这不是垃圾。它的意思是“尽可能多”。
-
4096 个内存分配是一个相当大的数字。如果你达到了这个限制,这意味着你应该分配更少数量的更大的内存对象。