一:概述
我们现在的顶点缓冲区工作正常,但顶点缓冲区的内存类型可能不是最优内的存类型,最优的内存类型应该允许从图形卡内存中读取,而不是从CPU访问的内存。最优的内存类型具有VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT标志,通常在专用显卡上无法被CPU访问。在本章中,我们将创建两个顶点缓冲区。一个是在CPU可访问内存中的暂存缓冲区,用于将数据上传到顶点数组,另一个是在设备本地内存中的顶点缓冲区。然后,我们将使用缓冲区复制命令将数据从暂存缓冲区移动到实际的顶点缓冲区。
更多内容请参考 一文带你了解GPU编程从入门到精通-CSDN博客
二:数据传输队列
缓冲区复制命令需要支持传输操作的队列族,这通过 VK_QUEUE_TRANSFER_BIT 指示。好消息是,任何具有 VK_QUEUE_GRAPHICS_BIT 或 VK_QUEUE_COMPUTE_BIT 功能的队列族已经隐式支持 VK_QUEUE_TRANSFER_BIT 操作。在这些情况下,实现并不要求在 queueFlags 中明确列出它。
&nb