前言
Vulkan是新一代图形(graphics)API,而它也是一个面向图形和计算的编程接口(graphics and compute)。支持Vulkan的设备可以是GPU,也可以是DSP或者固定功能的硬件。
Vulkan作为现代的图形API,有着更加强大复杂的特性,它可以使我们从更底层的视角去看待图形编程,让开发者自己掌握多线程,内存分配等,作为追求性能的API它具备具备对多线程渲染友好的特性。
所谓的多线程并不是指GPU端的多线程图像渲染,而是指在CPU提交DrawCall时所做的一系列工作可以并行化,也就是说多线程渲染其实是在CPU端提升程序的性能。
单线程瓶颈
对于单线程的图形API,性能的提升只能依赖于CPU主频的提高。为了解决性能瓶颈问题一般会将主线程和渲染线程分离或者异步加载资源等。但在复杂的现实场景中也是频繁遇到单线程的性能瓶颈。
以手机为例,CPU主频提升有限,各大芯片厂商开始向多核多线程发展,考虑到功耗温控问题,又不能把CPU频率升太高,越来越高的刷新率对实时渲染的速度要求越来越苛刻。
传统图形限制
传统的图形API是单线程的,在使用O