vulkan同步機制之——Fence & Barriers

vulkan提供了四個基本的同步機制:

• Fences


• Semaphores


• Events


• Barriers


Fence的作用是對兩個有依賴關係的的command 的執行進行控制,比如一個計算: (1)B = D + C; (2) res = A * B, 在計算 res時,必須要先保證B合法的求解完畢,fence的作用正是保證在(1)求解完之前(2)不會求解


Barriers 的名稱很好的描述了barries的作用,barriers是控制一系列的執行和讀寫命令的同步的,比如(1)B = C + D + E + F + ……+ X,其中每一個加數都要計算出來,這時候就使用barriers保證每一個加數都計算出來之後(1)過程纔開始執行


fence 的使用:

VkResult vkQueueSubmit(
VkQueue queue,
uint32_t submitCount,
const VkSubmitInfo* pSubmits,
VkFence fence);
如果fence不是VK_NULL_HANDLE,在VkSubmitInfo::pCommandBuffers 中record的所有command執行完之後,fence就會成爲:signaled。 當submitted的command爲0時,在submitted的前期工作做完後,fence仍會變成singled



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章