Short info header:
gfx-backend-vulkan version: 0.6.5 1d14789011, used by wgpu commit d7812268e0faThis line uses ash's SubmitInfoBuilder::wait_dst_stage_mask which sets the internal wait_semaphore_count. This validation error explains why this is problematic in the following code snippet:
vkQueueSubmit: required parameter pSubmits[0].pWaitSemaphores specified as NULL. The Vulkan spec states: If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles (https://vulkan.lunarg.com/doc/view/1.2.154.1/windows/1.2-extensions/vkspec.html#VUID-VkSubmitInfo-pWaitSemaphores-parameter) (https://vulkan.lunarg.com/doc/view/1.2.154.1/windows/1.2-extensions/vkspec.html#VUID-VkSubmitInfo-pWaitSemaphores-parameter)
https://github.com/gfx-rs/gfx/blob/1d14789011cb892f4c1a205d3f8a87d479c2e354/src/backend/vulkan/src/lib.rs#L1487-L1489
In other words, waitSemaphoresCount is set to a non-zero value for the pWaitDstStageMask array but this requires pWaitSemaphores to contain an equal count of elements. In this snippet no elements are set.
This produces a STATUS_ACCESS_VIOLATION.
git blame shows that https://github.com/gfx-rs/gfx/commit/68233e98f7708f14f837e3644a71cfaa21f22bf7#diff-5fca551544b3a72005c917fa71c39e21344e9551ebab7efb0d9ed76c34d6cf04L1542-R1520 caused this. Note the differing wait_semaphore_count now (set to 1 by SubmitInfoBuilder::wait_dst_stage_mask) and before (0).
Most helpful comment
git blame shows that https://github.com/gfx-rs/gfx/commit/68233e98f7708f14f837e3644a71cfaa21f22bf7#diff-5fca551544b3a72005c917fa71c39e21344e9551ebab7efb0d9ed76c34d6cf04L1542-R1520 caused this. Note the differing
wait_semaphore_countnow (set to 1 bySubmitInfoBuilder::wait_dst_stage_mask) and before (0).