diff --git a/src/panfrost/vulkan/panvk_buffer.c b/src/panfrost/vulkan/panvk_buffer.c index 556d8b97f78..093ad1f9521 100644 --- a/src/panfrost/vulkan/panvk_buffer.c +++ b/src/panfrost/vulkan/panvk_buffer.c @@ -10,6 +10,8 @@ #include "vk_log.h" +#define PANVK_MAX_BUFFER_SIZE (1 << 30) + VKAPI_ATTR VkDeviceAddress VKAPI_CALL panvk_GetBufferDeviceAddress(VkDevice _device, const VkBufferDeviceAddressInfo *pInfo) @@ -89,6 +91,9 @@ panvk_CreateBuffer(VkDevice _device, const VkBufferCreateInfo *pCreateInfo, assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO); + if (pCreateInfo->size > PANVK_MAX_BUFFER_SIZE) + return vk_error(device, VK_ERROR_OUT_OF_DEVICE_MEMORY); + buffer = vk_buffer_create(&device->vk, pCreateInfo, pAllocator, sizeof(*buffer)); if (buffer == NULL)