Vulkan specs descriptorType-00336 requires that imageView members bound as VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must have been created
With the identity swizzle (https://docs.vulkan.org/spec/latest/chapters/descriptorsets.html#VUID-VkWriteDescriptorSet-descriptorType-00336).
Identity swizzle means components.r/g/b/a are set to VK_COMPONENT_SWIZZLE_R/G/B/A (see "Table 2: Component Mappings Equivalent To VK_COMPONENT_SWIZZLE_IDENTITY")
(https://docs.vulkan.org/spec/latest/chapters/resources.html#resources-image-views-identity-mappings).
Previously Handle() was returned for typeless storage images, which could have non-identity swizzles like (r=R, g=ZERO, b=ZERO, a=ONE) as shown in validation
error logs, violating this requirement.
Based on reverted PR#321, with fixes to prevent regressions with incorrect colors in 'Sonic X Shadow Generations'.
Aims to improve flickering in 'Pokemon Legends: ZA' and rendering issues in 'Trident's Tale'
Co-authored-by: wildcard <wildcard@eden-emu.dev>