FidelityFX-FSR2
FidelityFX-FSR2 copied to clipboard
Vulkan validation errors associated with descriptor set frees
On the most recent FSR2 release, I'm seeing the following validation errors due to invalid descriptor set frees on dsets in use by the command buffer from what I can tell:
<17:07:39> [Error] (vkDebugMessage) - [ERROR][Validation] Validation Error: [ VUID-vkFreeDescriptorSets-pDescriptorSets-00309 ] Object 0: handle = 0xef6209000000197b, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0xbfce1114 | vkUpdateDescriptorSets() pDescriptorWrites[1] failed write update validation for VkDescriptorSet 0xef6209000000197b[] with error: Cannot call vkUpdateDescriptorSets() to perform write update on VkDescriptorSet 0xef6209000000197b[] allocated with VkDescriptorSetLayout 0xe144aa0000001978[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to any element of pDescriptorSets must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VUID-vkFreeDescriptorSets-pDescriptorSets-00309) <17:07:39> [Error] (vkDebugMessage) - [ERROR][Validation] Validation Error: [ VUID-vkFreeDescriptorSets-pDescriptorSets-00309 ] Object 0: handle = 0xef6209000000197b, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0xbfce1114 | vkUpdateDescriptorSets() pDescriptorWrites[2] failed write update validation for VkDescriptorSet 0xef6209000000197b[] with error: Cannot call vkUpdateDescriptorSets() to perform write update on VkDescriptorSet 0xef6209000000197b[] allocated with VkDescriptorSetLayout 0xe144aa0000001978[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to any element of pDescriptorSets must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VUID-vkFreeDescriptorSets-pDescriptorSets-00309) <17:07:39> [Error] (vkDebugMessage) - [ERROR][Validation] Validation Error: [ VUID-vkFreeDescriptorSets-pDescriptorSets-00309 ] Object 0: handle = 0xef6209000000197b, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0xbfce1114 | vkUpdateDescriptorSets() pDescriptorWrites[3] failed write update validation for VkDescriptorSet 0xef6209000000197b[] with error: Cannot call vkUpdateDescriptorSets() to perform write update on VkDescriptorSet 0xef6209000000197b[] allocated with VkDescriptorSetLayout 0xe144aa0000001978[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to any element of pDescriptorSets must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VUID-vkFreeDescriptorSets-pDescriptorSets-00309) <17:07:39> [Error] (vkDebugMessage) - [ERROR][Validation] Validation Error: [ VUID-vkFreeDescriptorSets-pDescriptorSets-00309 ] Object 0: handle = 0xef6209000000197b, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0xbfce1114 | vkUpdateDescriptorSets() pDescriptorWrites[4] failed write update validation for VkDescriptorSet 0xef6209000000197b[] with error: Cannot call vkUpdateDescriptorSets() to perform write update on VkDescriptorSet 0xef6209000000197b[] allocated with VkDescriptorSetLayout 0xe144aa0000001978[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to any element of pDescriptorSets must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VUID-vkFreeDescriptorSets-pDescriptorSets-00309)
Did you manage to sort it out? Was it your integration bug or still on the FSR side? In our case it happens with descriptor set updates inside FSR.
FYI: it may be a bug in validation layers. With a recent Vulkan SDK update we don't see them any more, and we could not explain where they could originate from with the older SDK.