diff --git a/.pick_status.json b/.pick_status.json index 967c7fe62bb..618781ea57a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -754,7 +754,7 @@ "description": "vulkan: add missing VkMemoryRangeBarriersInfoKHR support", "nominated": true, "nomination_type": 4, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/vulkan/runtime/vk_synchronization.c b/src/vulkan/runtime/vk_synchronization.c index 6767220e18f..bfd13ab09b8 100644 --- a/src/vulkan/runtime/vk_synchronization.c +++ b/src/vulkan/runtime/vk_synchronization.c @@ -99,6 +99,14 @@ vk_collect_dependency_info_src_stages(const VkDependencyInfo* pDependencyInfo) stages |= pDependencyInfo->pBufferMemoryBarriers[i].srcStageMask; for (uint32_t i = 0; i < pDependencyInfo->imageMemoryBarrierCount; i++) stages |= pDependencyInfo->pImageMemoryBarriers[i].srcStageMask; + + const VkMemoryRangeBarriersInfoKHR *mem_barriers_info = + vk_find_struct_const(pDependencyInfo->pNext, MEMORY_RANGE_BARRIERS_INFO_KHR); + if (mem_barriers_info) { + for (uint32_t i = 0; i < mem_barriers_info->memoryRangeBarrierCount; i++) + stages |= mem_barriers_info->pMemoryRangeBarriers[i].srcStageMask; + } + return stages; }