FidelityFX-SDK
FidelityFX-SDK copied to clipboard
FSR3 Upscaler: Image Format mismatch for rw_luma_history in Vulkan
I get the following Vulkan Validation Error:
Validation Warning: [ Undefined-Value-StorageImage-FormatMismatch-ImageView ] | MessageID = 0x13365b2
vkCmdDispatch(): the storage image descriptor [VkDescriptorSet 0x5570000000557, Set 0, Binding 7, Index 0, variable "rw_luma_history"] is accessed by a OpTypeImage that has a Format operand Rgba8 (equivalent to VK_FORMAT_R8G8B8A8_UNORM) which doesn't match the VkImageView 0x3980000000398 format (VK_FORMAT_R16G16B16A16_SFLOAT). Any loads or stores with the variable will produce undefined values to the whole image (not just the texel being accessed).
Spec information at https://docs.vulkan.org/spec/latest/chapters/textures.html#textures-format-validation
Objects: 4
[0] VkCommandBuffer 0x19709ff2cd0[Frame 1]
[1] VkPipeline 0x5810000000581
[2] VkDescriptorSet 0x5570000000557
[3] VkImageView 0x3980000000398
It seems like the access declared here:
https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/c6efa6bf7f2027b3ec94f28578bb5965eabb9e55/sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h#L398
mismatches the format of the created Images there:
https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/c6efa6bf7f2027b3ec94f28578bb5965eabb9e55/sdk/src/components/fsr3upscaler/ffx_fsr3upscaler.cpp#L592-L596