使用 VK_KHR_swapchain_mutable_format 的 Vulkan 交换链格式 UNORM 到 SRGB?
Vulkan swapchain format UNORM to SRGB using VK_KHR_swapchain_mutable_format?
创建格式错误的交换链图像显然会导致:
vkCreateImageView() format VK_FORMAT_B8G8R8A8_UNORM differs from VkImage
0x40000000004[] format VK_FORMAT_B8G8R8A8_SRGB. Formats MUST be IDENTICAL unless
VK_IMAGE_CREATE_MUTABLE_FORMAT BIT was set on image creation.
VK_KHR_swapchain_mutable_format 需要 Vulkan 1.0
结果是:
The Vulkan spec states: If flags contains VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
then the pNext chain must include a VkImageFormatListCreateInfo structure with a viewFormatCount
greater than zero and pViewFormats must have an element equal to imageFormat
VkImageFormatListCreateInfo 由 VK_VERSION_1_2
提供
问题 - Vulkan 1.0 扩展如何需要 1.2 结构? (也许我遗漏了什么 idk)
正如我在 https://vulkan.gpuinfo.org/listextensions.php 上看到的 VK_KHR_swapchain_mutable_format 只有 60% 的 Vulkan GPU 支持... 所以最好写“手动转换”?
VkImageFormatListCreateInfo Provided by VK_VERSION_1_2
您已链接到 Vulkan 1.2 规范。所以它当然引用了本身。有问题的扩展是 1.2 的核心部分,VkImageFormatListCreateInfo
.
实际extension引用了另一个扩展名:
Requires VK_KHR_image_format_list
它定义了交换链格式扩展使用的 VkImageFormatListCreateInfoKHR
结构。这个结构当然等同于核心 1.2 结构 VkImageFormatListCreateInfo
,因为“image_format_list”在 Vulkan 1.2 中被提升为核心。
创建格式错误的交换链图像显然会导致:
vkCreateImageView() format VK_FORMAT_B8G8R8A8_UNORM differs from VkImage
0x40000000004[] format VK_FORMAT_B8G8R8A8_SRGB. Formats MUST be IDENTICAL unless
VK_IMAGE_CREATE_MUTABLE_FORMAT BIT was set on image creation.
VK_KHR_swapchain_mutable_format 需要 Vulkan 1.0
结果是:
The Vulkan spec states: If flags contains VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
then the pNext chain must include a VkImageFormatListCreateInfo structure with a viewFormatCount
greater than zero and pViewFormats must have an element equal to imageFormat
VkImageFormatListCreateInfo 由 VK_VERSION_1_2
提供问题 - Vulkan 1.0 扩展如何需要 1.2 结构? (也许我遗漏了什么 idk)
正如我在 https://vulkan.gpuinfo.org/listextensions.php 上看到的 VK_KHR_swapchain_mutable_format 只有 60% 的 Vulkan GPU 支持... 所以最好写“手动转换”?
VkImageFormatListCreateInfo Provided by VK_VERSION_1_2
您已链接到 Vulkan 1.2 规范。所以它当然引用了本身。有问题的扩展是 1.2 的核心部分,VkImageFormatListCreateInfo
.
实际extension引用了另一个扩展名:
Requires VK_KHR_image_format_list
它定义了交换链格式扩展使用的 VkImageFormatListCreateInfoKHR
结构。这个结构当然等同于核心 1.2 结构 VkImageFormatListCreateInfo
,因为“image_format_list”在 Vulkan 1.2 中被提升为核心。