2017-06-15 37 views
1

是否有必要綁定製服,變化或屬性必須在vulkan中連續? 假設我們有vulkan綁定必須在着色器中是連續的

layout (std140, set = 0, binding = 0) uniform ubo1 {} 
layout (std140, set = 0, binding = 3) uniform ubo2 {} 

是否允許?相同的屬性綁定。

回答

0

不,他們不必緊緊包裝。在描述符佈局描述(13.2.1)中,規範說:

未指定的綁定的descriptorCount和stageFlags爲零,並且descriptorType被視爲未定義。但是,即使不使用所有描述符綁定,但VkDescriptorSetLayoutCreateInfo :: pBindings數組中的0和最大綁定數之間的所有綁定數都可能佔用描述符集佈局中的內存,儘管它不應消耗描述符池中的額外內存。

注意:指定的最大綁定數應儘可能小,以避免浪費內存。

1

是的,這是在着色器代碼中允許的。不太確定實現。

您可以查看VkDescriptorSetLayoutCreateInfo的文檔,以瞭解定義描述符集佈局涉及的內容。您會注意到VkDescriptorSetLayoutBinding允許在任意索引處指定綁定。

作爲一個個人喜好的問題(而且我沒有在這個問題上找到明確的措詞),我根本不相信實現來直觀地處理這個問題。所以,我創建了空的綁定來「填補空白」。

+0

我必須清空綁定才能刪除段錯誤。 – debonair

相關問題