BGR formats in Vulkan cannot be used in storage images, as the pixel labels on storage images are always ordered as RGB, and swizzling is not an option due to old hardware limitations. This means that you must always use an RGB format and manually swizzle when reading or writing to BGR images, or simply not use a format in the shader itself. This adds support for the latter.
Unified · Split
| @@ -244,6 +244,8 @@ static void device_features_copy_needed(VulkanDeviceFeatures *dst, VulkanDeviceF · 243 unmodified lines | |||
| 244 | COPY_VAL(device.features.shaderInt64); | 244 | COPY_VAL(device.features.shaderInt64); |
| 245 | COPY_VAL(device.features.shaderInt16); | 245 | COPY_VAL(device.features.shaderInt16); |
| 246 | COPY_VAL(device.features.shaderFloat64); | 246 | COPY_VAL(device.features.shaderFloat64); |
| 247 | COPY_VAL(device.features.shaderStorageImageReadWithoutFormat); | ||
| 248 | COPY_VAL(device.features.shaderStorageImageWriteWithoutFormat); | ||
| 247 | 249 | ||
| 248 | COPY_VAL(vulkan_1_1.samplerYcbcrConversion); | 250 | COPY_VAL(vulkan_1_1.samplerYcbcrConversion); |
| 249 | COPY_VAL(vulkan_1_1.storagePushConstant16); | 251 | COPY_VAL(vulkan_1_1.storagePushConstant16); |