b10078
b10078
View on GitHubView PackagePublished: Jul 21, 2026

Release Notes

vulkan: Refactor vk_queue to use per-instance mutexes and unique handles (#23570)

  • Refactor vk_queue to use per-instance mutexes and unique handles

  • integrates VK_KHR_internally_synchronized_queues, abstracting the queue submission into a polymorphic interface that completely bypasses host-side mutex locking when driver-side synchronization is supported

  • fix compilation error

  • fix duplicate pNext chain for VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR

  • add fallback defines for VK_KHR_internally_synchronized_queues

  • add null checks for queues in vk_device_struct destructor

  • use unique_ptr for outer queues to enforce exclusive ownership and optimize lifetime

  • use static constexpr for eInternallySynchronizedKHR

  • add lock guard to ggml_vk_create_aliased_queue for thread safety

  • initialize sync_query_features.internallySynchronizedQueues to VK_FALSE

  • reuse sync_query_features for internallySynchronizedQueues and simplify chaining

  • refactor internallySynchronizedQueues detection

  • fix internallySynchronizedQueues query guard

  • use eInternallySynchronizedKHR constant

  • fix self-referential alias for eInternallySynchronizedKHR

  • use macro for eInternallySynchronizedKHR fallback

  • fix internallySynchronizedQueues query timing in ggml-vulkan.cpp to prevent device creation mismatch

  • reset sync_query_features.pNext before reusing in device creation chain, also removed the redundant second probe call

  • refactor internally synchronized queues detection to use chained feature query and avoid redundant API calls

  • Update ggml/src/ggml-vulkan/ggml-vulkan.cpp

Co-authored-by: Jeff Bolz [email protected]

  • Update ggml/src/ggml-vulkan/ggml-vulkan.cpp

Co-authored-by: Jeff Bolz [email protected]

  • Update ggml/src/ggml-vulkan/ggml-vulkan.cpp

Co-authored-by: Jeff Bolz [email protected]

  • Update ggml/src/ggml-vulkan/ggml-vulkan.cpp

Co-authored-by: Jeff Bolz [email protected]

  • Update ggml/src/ggml-vulkan/ggml-vulkan.cpp

Co-authored-by: Jeff Bolz [email protected]

  • Update ggml/src/ggml-vulkan/ggml-vulkan.cpp

Co-authored-by: Jeff Bolz [email protected]

  • rename sync_enable_features to internally_synchronized_queues_features

  • queue_flags is still computed before has_internally_synchronized_queues is set

  • fix trailing whitespace

  • replace eInternallySynchronizedKHR macro with static constexpr

  • preserve source queue semantics in single-queue aliased transfer queue

  • vulkan: fix cmd_pool access via pointer for compute_queue unique_ptr

  • vulkan: lock queue during debug label emission when not internally synchronized


Co-authored-by: Jeff Bolz [email protected]

Website:

macOS/iOS:

Linux:

Android:

Windows:

openEuler:

  • DISABLED
  • openEuler x86 (310p)
  • openEuler x86 (910b, ACL Graph)
  • openEuler aarch64 (310p)
  • openEuler aarch64 (910b, ACL Graph)

UI: