-
Notifications
You must be signed in to change notification settings - Fork 345
Description
When implementing the STORAGE usage on BGRA8Unorm on Vulkan we found there are still quite a lot of Vulkan devices that don't support the STORAGE_IMAGE usage on B8G8R8A8_UNORM (only 55.88% support the STORAGE_IMAGE usage on B8G8R8A8_UNORM according to http://vulkan.gpuinfo.org/listoptimaltilingformats.php).
For example, on old Intel Mesa driver (19.0.2), calling vkGetPhysicalDeviceImageFormatProperties() will return VK_ERROR_FORMAT_NOT_SUPPORTED when format is VK_FORMAT_B8G8R8A8_UNORM and usage contains VK_IMAGE_USAGE_STORAGE_BIT, which means we cannot create a vkImage with VK_FORMAT_B8G8R8A8_UNORM and usage VK_IMAGE_USAGE_STORAGE_BIT according to Vulkan SPEC (if format is not a supported image format, or if the combination of format, type, tiling, usage, and flags is not supported for images, then vkGetPhysicalDeviceImageFormatProperties returns VK_ERROR_FORMAT_NOT_SUPPORTED).
I suggest we should support the STORAGE usage on BGRA8Unorm behind a WebGPU extension instead of core feature, or we will fail to support WebGPU on many Vulkan devices.
See #3640