- struct FormatData
- {
- std::string spirvImageFormat;
- bool isExtendedFormat;
- };
- const std::map<vk::VkFormat, FormatData> formatDataMap =
- {
- // Mandatory support
- { VK_FORMAT_R32G32B32A32_UINT, { "Rgba32ui", false } },
- { VK_FORMAT_R16G16B16A16_UINT, { "Rgba16ui", false } },
- { VK_FORMAT_R8G8B8A8_UINT, { "Rgba8ui", false } },
- { VK_FORMAT_R32_UINT, { "R32ui", false } },
- { VK_FORMAT_R32G32B32A32_SINT, { "Rgba32i", false } },
- { VK_FORMAT_R16G16B16A16_SINT, { "Rgba16i", false } },
- { VK_FORMAT_R8G8B8A8_SINT, { "Rgba8i", false } },
- { VK_FORMAT_R32_SINT, { "R32i", false } },
-
- // Requires StorageImageExtendedFormats capability
- { VK_FORMAT_R32G32_UINT, { "Rg32ui", true } },
- { VK_FORMAT_R16G16_UINT, { "Rg16ui", true } },
- { VK_FORMAT_R16_UINT, { "R16ui", true } },
- { VK_FORMAT_R8G8_UINT, { "Rg8ui", true } },
- { VK_FORMAT_R8_UINT, { "R8ui", true } },
- { VK_FORMAT_R32G32_SINT, { "Rg32i", true } },
- { VK_FORMAT_R16G16_SINT, { "Rg16i", true } },
- { VK_FORMAT_R16_SINT, { "R16i", true } },
- { VK_FORMAT_R8G8_SINT, { "Rg8i", true } },
- { VK_FORMAT_R8_SINT, { "R8i", true } },
- { VK_FORMAT_A2B10G10R10_UINT_PACK32, { "Rgb10a2ui", true } }
- };