2017-07-26 32 views
0

我在圖像和圖像查看參數兼容性要求表文檔和VkImageViewCreateInfo::viewType有一些麻煩。圖像VkImageViewCreateInfo屬性接縫足夠靈活,可創建例如2D圖像的單個1D或1D陣列圖像視圖。我試圖從啓用了驗證層的2D圖像中創建一維圖像視圖,並且沒有發出警告(如果這是有效的用法,我不知道將使用哪一行/列)。不支持圖像查看參數兼容性要求

是真的假定有圖像中的VkImageCreateInfo::imageType + VkImageCreateInfo::arrayLayers和在視圖中VkImageViewCreateInfo::viewType之間的一對一的映射,即,該VkImageViewType類型是存在的處理立方體映射的特殊情況下,否則viewType可以從圖像類型推斷出來嗎?如果不是,2D圖像的一維視圖如何工作?

回答

1

您無法創建2D圖像的一維視圖,只有表中列出的組合是有效的。

看起來您正在查看的頁面最近未被重新生成,或者不包括VK_KHR_maintenance1擴展所做的修改。

現在忽略該擴展名和立方體貼圖,imageType + arrayLayers與viewType之間存在1:1對應關係並不完全正確。具有多個圖層的2D圖像可以用於2D或2D_ARRAY視圖類型,而只有一個圖層的2D圖像仍可以用於2D_ARRAY視圖類型。視圖類型對應於SPIR-V資源類型,並且主要確定需要多少個座標來標識視圖中的位置。

然後就是你觀察到的立方體貼圖複雜化。

使用VK_KHR_maintenance1,可以在3D圖像中創建切片子集的2D和2D_ARRAY視圖。該擴展在表中添加了兩個新行來描述這種情況。