gpt4 book ai didi

gpu - 为什么 Vulkan 有内存分配限制?

转载 作者:行者123 更新时间:2023-12-04 15:07:16 24 4
gpt4 key购买 nike

是否有任何技术原因来限制内存分配的最大数量?

查看 vkAllocateMemory manual page .它说:

The maximum number of valid memory allocations that can exist simultaneously within a VkDevice may be restricted by implementation- or platform-dependent limits. If a call to vkAllocateMemory would cause the total number of allocations to exceed these limits, such a call will fail and must return VK_ERROR_TOO_MANY_OBJECTS.



OpenGL 不限制分配,DirectX 11/12 也不限制。那么为什么 Vulkan 应该这样做呢?

最佳答案

explained here ,这主要是操作系统的限制。

OpenGL doesn't limit allocations, DirectX 11/12 neither



哦,他们有。他们只是不告诉你。

OpenGL 和 DX11 驱动程序倾向于在内部进行大型 GPU(虚拟)分配,并在分配内存时执行子分配。因此,它们会造成您可以执行更多硬件分配的错觉。但限制仍然存在。

至于 DX12,我相当肯定如果你尝试分配超过 4096 个堆,你会发现 CreateHeap返回错误。

Vulkan 只是预先确定存在限制的 API。

使用 Vulkan,这只是一个永远不会出现的问题。如果您正在执行超过一千个单独的内存分配,那么您的内存分配方案是错误的。您应该分配一些大块内存,然后将它们的子部分用于纹理和缓冲区。

关于gpu - 为什么 Vulkan 有内存分配限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55444592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com