【发布时间】:2021-11-12 16:22:39
【问题描述】:
VkImageUsageFlagBits::VK_IMAGE_USAGE_TRANSFER_SRC_BIT 是否应该自动设置为交换链图像?
我一直在查找它,我没有看到任何迹象表明该标志应该自动添加到交换链图像中。
但是,我已经在 SDK 1.2.148.1(尚未尝试其他)中测试过,在具有最新驱动程序的 NVIDIA GTX 1080ti 上,即使没有请求,也会自动添加该标志。我不确定是SDK还是驱动程序设置了它,但其中之一是。
我首先在自己的代码中对其进行了验证,然后使用 Sascha Willem 的三角形示例进行了尝试,方法是注释掉以下行: https://github.com/SaschaWillems/Vulkan/blob/master/base/VulkanSwapChain.cpp#L347
这是一张在 NVIDIA Nsight 上运行 Triangle 应用程序的图像。它不应该有标志:
【问题讨论】:
-
“应该是”是什么意思?如果标志可用,您可以使用它。如果可用,您链接到显示有人使用它的代码。我不确定这有什么问题。
-
"即使没有请求,该标志也会自动添加。" 你怎么知道的?你不能问
VkImage它的使用标志是什么。 -
@Nicol Bolas:我最初是通过调试在将一些现有代码转换为使用无图像帧缓冲区时遇到的问题发现的。抱怨交换链图像和帧缓冲区配置没有匹配标志的验证层。错误消息显示了交换链图像标志的值。此外,正如帖子中的图片所示,我还通过 NVIDIA Insight 确认了这一点。
-
“'supposed to be' 是什么意思?”:我在问这个自动标志设置是一个特性还是一个错误。
标签: graphics gpu render vulkan