Vulkan SDK之 CommandBuff

时间:2022-01-01 18:29:08

Basic Command Buffer Operation

调用指定的api, 驱动将命令放入指定的buff当中。 在其他图形API(dx,or opengl) ,glsetlinewidth驱动会将其他所有的事情都做掉。

 

 

Vulkan SDK之 CommandBuff

 

 

 

 

Command Buffer Pools

好处:

1、避免频繁分配和释放;

2、command buff是gpu和cpu都可见的,许多系统gpu和cpu的内存映射只能采用大粒度的内存,这个小的命令buff对显存是一种浪费;

3、内存映射比较耗时,涉及页表操作以及TLB(页表缓存,快表) 更新;

 

Command Buffer Pools and Queue Families

1. 一个queue falily 需要command buffer pool;

2. 通过 vkCreateCommandPool申请一个command pool,再从pool中申请buff,可以一次性从pool中申请多个buff;

Using Command Buffers

1、调用vkBeginCommandBuffer ,在这之后,再调用vkcmd*的话,就会将对应的命令录制到这个buff当中,vkEndCommandBuffer() 说明录制操作结束;

2、vkQueueSubmit 会将对应的命令提交给gpu,但在此之前,还是有太多之前需要处理的,后续会介绍。