繁体   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