Vulkan学习笔记:CommandBuffer

什么是commandbuffer

  • CPU发给GPU的命令,用于两者之间的通信。
  • 通过Graphic Queue、Present Queue等队列发送到GPU
  • 它是有顺序的

使用的流程

创建commandbuffer

Vulkan学习笔记:CPU数据写入GPU

从物理硬件获取内存类型索引

  • GPU里有存储纹理的内存、存储通用数据的内存。
  • 当申请一个vkBuffer的时候,它只是定义了一个逻辑上的对象,真正需要开辟物理内存时,需要根据要存储的是对象类型来决定给与它什么样的内存。
  • 获取类型有两个条件
    • 32位掩码:来自VkMemoryRequirements
    • VkMemoryPropertyFlags:这个设置代表着内存的访问权限,是GPU访问还是CPU访问。当CPU可见时,GPU访问会很慢。

Vulkan学习笔记:基础概念

与OpenGL的区别

  • Vulkan的目标是提供高性能与更均衡的CPU和GPU占用,这一点和DX12、Mantle一直。
  • 与DX(12之前)和OpenGL比,Vulkan是一个底层的API,可以执行并行任务。
  • 可以更好的分配多个CPU核心的使用。
  • 在传统的OpenGL编程中,OpenGL的驱动会追踪很多全局的状态,会掩盖大部分显卡操作的细节,比如命令的同步,指令排队的维护。但是在Vulkan中,这都需要程序自己维护。
  • 在Vulkan程序设计中,显卡就像一份资源,你可以往上面传输数据,可以往显卡上面传输程序。
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×