diff options
-rw-r--r-- | src/amd/vulkan/radv_device.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index f449199d994..6594b2a00d9 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -5800,7 +5800,9 @@ static void radv_destroy_event(struct radv_device *device, const VkAllocationCallbacks* pAllocator, struct radv_event *event) { - device->ws->buffer_destroy(event->bo); + if (event->bo) + device->ws->buffer_destroy(event->bo); + vk_object_base_finish(&event->base); vk_free2(&device->vk.alloc, pAllocator, event); } @@ -5826,7 +5828,7 @@ VkResult radv_CreateEvent( RADEON_FLAG_VA_UNCACHED | RADEON_FLAG_CPU_ACCESS | RADEON_FLAG_NO_INTERPROCESS_SHARING, RADV_BO_PRIORITY_FENCE); if (!event->bo) { - vk_free2(&device->vk.alloc, pAllocator, event); + radv_destroy_event(device, pAllocator, event); return vk_error(device->instance, VK_ERROR_OUT_OF_DEVICE_MEMORY); } |