whisper.cpp/ggml
Simao Gomes Viana a80d3d31a3
ggml-vulkan: probe vkGetBufferDeviceAddress before enabling BDA
Some Vulkan drivers (observed on Adreno, Qualcomm build 923a446bf8,
driver date 09/05/24) report bufferDeviceAddress support in
VkPhysicalDeviceVulkan12Features but crash with SIGSEGV when
vkGetBufferDeviceAddress is actually called:

    Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
    #01 ggml_vk_create_buffer+4084
    #02 ggml_vk_create_buffer_device+148
    #03 ggml_backend_vk_buffer_type_alloc_buffer+240
    #07 whisper_model_load+5996

The crash occurs inside ggml_vk_create_buffer when
device->device.getBufferAddress() is called — the driver-internal
function pointer dereferences null.

After creating the logical device, verify that the function pointer
resolves via vkGetDeviceProcAddr and that a test call returns a
non-zero address. If either check fails, disable
buffer_device_address so all guarded code paths skip BDA.
2026-03-25 13:57:43 +01:00
..
cmake cmake : remove unused file (ggml/1419) 2026-02-08 09:29:10 +02:00
include ggml : restore ggml_type_sizef() to aboid major version bump (ggml/1441) 2026-03-18 15:18:24 +02:00
src ggml-vulkan: probe vkGetBufferDeviceAddress before enabling BDA 2026-03-25 13:57:43 +01:00
.gitignore whisper : reorganize source code + improve CMake (#2256) 2024-06-26 19:34:09 +03:00
CMakeLists.txt ggml : bump version to 0.9.8 (ggml/1442) 2026-03-18 15:18:24 +02:00