Skip to content

Commit 418f5ee

Browse files
authored
vulkan : improve ggml_vk_create_buffer error handling (ggml-org#9898)
1 parent ba6f62e commit 418f5ee

File tree

1 file changed

+1
-4
lines changed

1 file changed

+1
-4
lines changed

ggml/src/ggml-vulkan.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,7 +1047,6 @@ static vk_buffer ggml_vk_create_buffer(vk_device& device, size_t size, vk::Memor
10471047
return buf;
10481048
}
10491049

1050-
buf->size = size;
10511050
vk::BufferCreateInfo buffer_create_info{
10521051
vk::BufferCreateFlags(),
10531052
size,
@@ -1075,7 +1074,6 @@ static vk_buffer ggml_vk_create_buffer(vk_device& device, size_t size, vk::Memor
10751074

10761075
if (memory_type_index == UINT32_MAX) {
10771076
device->device.destroyBuffer(buf->buffer);
1078-
buf->size = 0;
10791077
throw vk::OutOfDeviceMemoryError("No suitable memory type found");
10801078
}
10811079

@@ -1092,13 +1090,11 @@ static vk_buffer ggml_vk_create_buffer(vk_device& device, size_t size, vk::Memor
10921090
}
10931091
catch (const vk::SystemError& e) {
10941092
device->device.destroyBuffer(buf->buffer);
1095-
buf->size = 0;
10961093
throw e;
10971094
}
10981095
} else {
10991096
// Out of Host/Device memory, clean up buffer
11001097
device->device.destroyBuffer(buf->buffer);
1101-
buf->size = 0;
11021098
throw e;
11031099
}
11041100
}
@@ -1111,6 +1107,7 @@ static vk_buffer ggml_vk_create_buffer(vk_device& device, size_t size, vk::Memor
11111107
device->device.bindBufferMemory(buf->buffer, buf->device_memory, 0);
11121108

11131109
buf->device = device;
1110+
buf->size = size;
11141111

11151112
#ifdef GGML_VULKAN_MEMORY_DEBUG
11161113
device->memory_logger->log_allocation(buf, size);

0 commit comments

Comments
 (0)