You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Impeller] Vulkan sync validation: BlitPassVK::ResizeTexture layout transition is not synchronized with its blit #195598
ID Name: SYNC-HAZARD-WRITE-AFTER-WRITETrigger: vkCmdPipelineBarrier(): WRITE_AFTER_WRITE hazard detected. vkCmdPipelineBarrier performs image layout transition on the VkImage 0x…, which was previously written by vkCmdBlitImage.No sufficient synchronization is present to ensure that a layout transition does not conflict with a prior write (VK_ACCESS_2_TRANSFER_WRITE_BIT) at VK_PIPELINE_STAGE_2_BLIT_BIT.
Analysis
After vkCmdBlitImage, BlitPassVK::ResizeTexture moves the destination to eShaderReadOnlyOptimal with src_access = {} and src_stage = eTopOfPipe. Because of that, the layout transition isn't ordered after the blit's transfer write. The barrier should probably use src_access = eTransferWrite and src_stage = eTransfer.
Play/BlitPassTest.CanResizeTextures/Vulkan is commented out of the sync validation shard (#195502) until this is fixed.
Activity
[Impeller] Order the Vulkan ResizeTexture layout transition after its…
[Impeller] Order the Vulkan ResizeTexture layout transition after its…