描述符本质上是指向资源的指针/引用,为了告诉设备(GPU)每个描述符指向哪些(device-local/GPU)缓冲区/内存,需要在主机端(CPU概念上)设置。程序员通常知道从主机到设备的数据传输何时完成,因为它记录在命令缓冲区中,然后提交到队列。vkUpdateDescriptorSets不是命令缓冲区命令,人们说描述符集立即更新。这实际上是如何运作的?
描述符集分配在描述符池中,就像命令缓冲池一样驻留在主机端。因此,在记录命令时,您将写入主机端内存,直到提交命令缓冲区为止。vkUpdateDescriptorSets是否以相同方式工作,即它正在写入主机端内存,然后在提交命令缓冲区时将数据传输到GPU?还是它立即进行GPU传输?对于数组形式的描述符,如果我编写描述符绑定数组元素 [1] 和 element[4091],Vulkan是否需要传输整个数组到GPU,还是会导致两个小传输?
请告诉我我的理解是否正确。编写的描述符需要写入GPU,因为这里是资源指针的位置。
描述符集分配在描述符池中,就像命令缓冲池一样驻留在主机端。因此,在记录命令时,您将写入主机端内存,直到提交命令缓冲区为止。vkUpdateDescriptorSets是否以相同方式工作,即它正在写入主机端内存,然后在提交命令缓冲区时将数据传输到GPU?还是它立即进行GPU传输?对于数组形式的描述符,如果我编写描述符绑定数组元素 [1] 和 element[4091],Vulkan是否需要传输整个数组到GPU,还是会导致两个小传输?
请告诉我我的理解是否正确。编写的描述符需要写入GPU,因为这里是资源指针的位置。