This commit is contained in:
Daniel Müller 2026-04-20 10:12:56 +00:00 committed by GitHub
commit d055e8b252
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 3 additions and 0 deletions

View File

@ -2060,6 +2060,7 @@ struct vk_instance_t {
vk_device devices[GGML_VK_MAX_DEVICES];
};
static std::recursive_mutex vk_instance_init_mutex;
static bool vk_instance_initialized = false;
static vk_instance_t vk_instance;
@ -4779,6 +4780,7 @@ static uint32_t ggml_vk_intel_shader_core_count(const vk::PhysicalDevice& vkdev)
static vk_device ggml_vk_get_device(size_t idx) {
VK_LOG_DEBUG("ggml_vk_get_device(" << idx << ")");
std::lock_guard<std::recursive_mutex> lock(vk_instance_init_mutex);
if (vk_instance.devices[idx] == nullptr) {
VK_LOG_DEBUG("Initializing new vk_device");
vk_device device = std::make_shared<vk_device_struct>();
@ -5713,6 +5715,7 @@ DispatchLoaderDynamic & ggml_vk_default_dispatcher() {
}
static void ggml_vk_instance_init() {
std::lock_guard<std::recursive_mutex> lock(vk_instance_init_mutex);
if (vk_instance_initialized) {
return;
}