簡體   English   中英

使用計算着色器渲染到交換鏈

[英]Render to swap chain using compute shader

我正在嘗試使用計算着色器直接渲染到交換鏈。

為此,我需要使用VK_IMAGE_USAGE_STORAGE_BIT創建swapchain VK_IMAGE_USAGE_STORAGE_BIT

的問題是, swapchain需要與格式創建VK_FORMAT_B8G8R8A8_UNORMVK_FORMAT_B8G8R8A8_SRGB既不的2允許格式特征VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT與物理設備我使用。

我是說錯了還是不可能使用我的配置通過計算着色器渲染到swapchain

Vulkan 對實現沒有任何要求,即它允許在計算着色器操作中直接使用交換鏈圖像(僅供參考:“渲染”通常是指非常具體的操作;它不是在計算着色器中發生的事情)。 因此,實現完全有可能禁止您通過各種方式在 CS 中使用交換鏈圖像。

如果您無法以您喜歡的格式創建交換鏈圖像,那么您的下一個最佳選擇是查看您是否可以找到可用作存儲圖像格式的圖像視圖的兼容格式。 然而,這要求實現支持 KHR 擴展 swapchain_mutable_format,並且交換鏈的創建標志必須包括VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR以及您打算為其創建視圖的格式的VkImageFormatListCreateInfoKHR列表。

此外,如果提供支持,這意味着您的 CS 將不得不交換數據的順序。 並且不要忘記,當您創建交換鏈時,您必須詢問它是否可以將其圖像用作存儲圖像 ( imageUsage )。 它可以直接禁止這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM