Vulkan::Calling vkWaitForFences Timeout
The attached archive contains an amber file, asm and spv file. Running the amber file with the command:
amber -t spv1.3 -v 1.1 error.amber
gives the error:
[ERROR] validation layer (Validation):
Validation Error: [ VUID-vkDestroyFence-fence-01120 ] Object 0: handle = 0xf56c9b0000000004, type = VK_OBJECT_TYPE_FENCE; | MessageID = 0x5d296248 | VkFence 0xf56c9b0000000004[] is in use. The Vulkan spec states: All queue submission commands that refer to fence must have completed execution (https://vulkan.lunarg.com/doc/view/1.3.204.1/linux/1.3-extensions/vkspec.html#VUID-vkDestroyFence-fence-01120)
[ERROR] validation layer (Validation):
Validation Error: [ VUID-vkFreeCommandBuffers-pCommandBuffers-00047 ] Object 0: handle = 0x55f7661dacd0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x1ab902fc | Attempt to free VkCommandBuffer 0x55f7661dacd0[] which is in use. The Vulkan spec states: All elements of pCommandBuffers must not be in the pending state (https://vulkan.lunarg.com/doc/view/1.3.204.1/linux/1.3-extensions/vkspec.html#VUID-vkFreeCommandBuffers-pCommandBuffers-00047)
error.amber: Vulkan::Calling vkWaitForFences Timeout
Summary of Failures:
error.amber
Summary: 0 pass, 1 fail
[ERROR] validation layer (Validation):
Validation Error: [ VUID-vkDestroyDevice-device-00378 ] Object 0: handle = 0x55f7660fd3d0, type = VK_OBJECT_TYPE_DEVICE; Object 1: handle = 0xcfef35000000000a, type = VK_OBJECT_TYPE_PIPELINE_LAYOUT; | MessageID = 0x71500fba | OBJ ERROR : For VkDevice 0x55f7660fd3d0[], VkPipelineLayout 0xcfef35000000000a[] has not been destroyed. The Vulkan spec states: All child objects created on device must have been destroyed prior to destroying device (https://vulkan.lunarg.com/doc/view/1.3.204.1/linux/1.3-extensions/vkspec.html#VUID-vkDestroyDevice-device-00378)
[ERROR] validation layer (Validation):
Validation Error: [ VUID-vkDestroyDevice-device-00378 ] Object 0: handle = 0x55f7660fd3d0, type = VK_OBJECT_TYPE_DEVICE; Object 1: handle = 0xec4bec000000000b, type = VK_OBJECT_TYPE_PIPELINE; | MessageID = 0x71500fba | OBJ ERROR : For VkDevice 0x55f7660fd3d0[], VkPipeline 0xec4bec000000000b[] has not been destroyed. The Vulkan spec states: All child objects created on device must have been destroyed prior to destroying device (https://vulkan.lunarg.com/doc/view/1.3.204.1/linux/1.3-extensions/vkspec.html#VUID-vkDestroyDevice-device-00378)
Device: Mesa Intel(R) Xe Graphics (TGL GT2)
I can reproduce this on branch 22.0 and on master (commit 492401c0)
I don't get this issue running with either SwiftShader or Nvidia drivers.
On line 57 in the amber file in the attached archive, changing OpBranchConditional %temp_12_6 %13 %13
to OpBranchConditional %temp_12_6 %13 %14
will allow the program to execute correctly.