gpt4 book ai didi

c++ - 使用计算着色器渲染到交换链

转载 作者:行者123 更新时间:2023-11-28 01:14:02 26 4
gpt4 key购买 nike

我正在尝试使用计算着色器直接渲染到交换链。

为此,我需要使用VK_IMAGE_USAGE_STORAGE_BIT 创建交换链

问题是 swapchain 需要以 VK_FORMAT_B8G8R8A8_UNORMVK_FORMAT_B8G8R8A8_SRGB 格式创建,而这两种格式都不允许格式特征 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT 与我使用的物理设备。

我是不是说错了什么,或者使用我的配置无法使用计算着色器渲染到 swapchain

最佳答案

Vulkan 对允许在计算着色器操作中直接使用交换链图像的实现没有强加任何要求(仅供引用:“渲染”通常指的是非常具体的操作;它不是在计算着色器中发生的事情)。因此,该实现完全有可能通过各种方式禁止您在 CS 中使用交换链图像。

如果您不能以您喜欢的格式创建交换链图像,那么您的下一个最佳选择是看看您是否可以找到一种兼容格式的 ImageView ,该格式可以用作存储图像。然而,这需要实现支持 KHR 扩展 swapchain_mutable_format,并且交换链的创建标志必须包括 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR 以及 VkImageFormatListCreateInfoKHR 您打算创建 View 的格式列表为。

此外,如果支持,这将意味着您的 CS 将不得不交换数据的顺序。不要忘记,当您创建交换链时,您必须询问它是否可以将其图像用作存储图像 (imageUsage)。它可能会直接禁止这个。

关于c++ - 使用计算着色器渲染到交换链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59282319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com