1.引言
Vulkan规范已经发布,本文将和你分享为什么Vulkan是一个牛逼的图形API, 它和OpenGL有何区别。Nvidia认为, Vulkan将是OpenGL 很好的补充,两个API都各有优势。
Vulkan的优势在于它能够更好的多线程处理和GPU底层控制能力,并能减少CPU消耗。而OpenGL,继续提供简单的硬件访问接口,这对那些CPU消耗不大应用程序来说是很方便的。 当前Nvidia 针对OpenGL的技术像“bindless”, NV_command_list, 和“ADZ0”, 都能够实现较好的单线程性能。
为使下面介绍更加容易读懂,我们省略掉其中的一些细节。
2.指令提交
在这篇文章中,我们看下绘制一帧需要哪些API
OpenGL API 的状态和绘制指令通常是立即发给GPU的, 而Vulkan API会累计这些API延迟发送;CommandBuffe 存储设置渲染状态的指令,然后提交给 Queue 去执行。
CommandBuffer 内部的操作过程看起来不应该陌生。 一个 RenderPass 和 FBO 绑定是相似的, 一个 DescriptorSet 处理 uniform bindings (buffer, texture...), 后面有详细介绍。
- Device