vulkan: Add a return code to vk_device_init
Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8676>
This commit is contained in:
parent
8ee88948e3
commit
5d6ac87d61
|
@ -2798,8 +2798,12 @@ VkResult radv_CreateDevice(
|
|||
if (!device)
|
||||
return vk_error(physical_device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
vk_device_init(&device->vk, pCreateInfo,
|
||||
&physical_device->instance->alloc, pAllocator);
|
||||
result = vk_device_init(&device->vk, pCreateInfo,
|
||||
&physical_device->instance->alloc, pAllocator);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free(&device->vk.alloc, device);
|
||||
return result;
|
||||
}
|
||||
|
||||
device->instance = physical_device->instance;
|
||||
device->physical_device = physical_device;
|
||||
|
|
|
@ -1579,8 +1579,12 @@ v3dv_CreateDevice(VkPhysicalDevice physicalDevice,
|
|||
if (!device)
|
||||
return vk_error(instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
vk_device_init(&device->vk, pCreateInfo,
|
||||
&physical_device->instance->alloc, pAllocator);
|
||||
result = vk_device_init(&device->vk, pCreateInfo,
|
||||
&physical_device->instance->alloc, pAllocator);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free(&device->vk.alloc, device);
|
||||
return vk_error(instance, result);
|
||||
}
|
||||
|
||||
device->instance = instance;
|
||||
device->pdevice = physical_device;
|
||||
|
|
|
@ -1041,8 +1041,13 @@ tu_CreateDevice(VkPhysicalDevice physicalDevice,
|
|||
if (!device)
|
||||
return vk_startup_errorf(physical_device->instance, VK_ERROR_OUT_OF_HOST_MEMORY, "OOM");
|
||||
|
||||
vk_device_init(&device->vk, pCreateInfo,
|
||||
result = vk_device_init(&device->vk, pCreateInfo,
|
||||
&physical_device->instance->alloc, pAllocator);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free(&device->vk.alloc, device);
|
||||
return vk_startup_errorf(physical_device->instance, result,
|
||||
"vk_device_init failed");
|
||||
}
|
||||
|
||||
device->instance = physical_device->instance;
|
||||
device->physical_device = physical_device;
|
||||
|
|
|
@ -937,8 +937,13 @@ VkResult lvp_CreateDevice(
|
|||
if (!device)
|
||||
return vk_error(physical_device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
vk_device_init(&device->vk, pCreateInfo,
|
||||
&physical_device->instance->alloc, pAllocator);
|
||||
VkResult result = vk_device_init(&device->vk, pCreateInfo,
|
||||
&physical_device->instance->alloc,
|
||||
pAllocator);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free(&device->vk.alloc, device);
|
||||
return vk_error(physical_device->instance, result);
|
||||
}
|
||||
|
||||
device->instance = physical_device->instance;
|
||||
device->physical_device = physical_device;
|
||||
|
|
|
@ -2860,8 +2860,12 @@ VkResult anv_CreateDevice(
|
|||
if (!device)
|
||||
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
vk_device_init(&device->vk, pCreateInfo,
|
||||
&physical_device->instance->alloc, pAllocator);
|
||||
result = vk_device_init(&device->vk, pCreateInfo,
|
||||
&physical_device->instance->alloc, pAllocator);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_error(result);
|
||||
goto fail_alloc;
|
||||
}
|
||||
|
||||
if (INTEL_DEBUG & DEBUG_BATCH) {
|
||||
const unsigned decode_flags =
|
||||
|
@ -3239,6 +3243,7 @@ VkResult anv_CreateDevice(
|
|||
close(device->fd);
|
||||
fail_device:
|
||||
vk_device_finish(&device->vk);
|
||||
fail_alloc:
|
||||
vk_free(&device->vk.alloc, device);
|
||||
|
||||
return result;
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "util/hash_table.h"
|
||||
#include "util/ralloc.h"
|
||||
|
||||
void
|
||||
VkResult
|
||||
vk_device_init(struct vk_device *device,
|
||||
UNUSED const VkDeviceCreateInfo *pCreateInfo,
|
||||
const VkAllocationCallbacks *instance_alloc,
|
||||
|
@ -44,6 +44,8 @@ vk_device_init(struct vk_device *device,
|
|||
mtx_init(&device->swapchain_private_mtx, mtx_plain);
|
||||
device->swapchain_private = NULL;
|
||||
#endif /* ANDROID */
|
||||
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -42,11 +42,14 @@ struct vk_device {
|
|||
#endif
|
||||
};
|
||||
|
||||
void vk_device_init(struct vk_device *device,
|
||||
const VkDeviceCreateInfo *pCreateInfo,
|
||||
const VkAllocationCallbacks *instance_alloc,
|
||||
const VkAllocationCallbacks *device_alloc);
|
||||
void vk_device_finish(struct vk_device *device);
|
||||
VkResult MUST_CHECK
|
||||
vk_device_init(struct vk_device *device,
|
||||
const VkDeviceCreateInfo *pCreateInfo,
|
||||
const VkAllocationCallbacks *instance_alloc,
|
||||
const VkAllocationCallbacks *device_alloc);
|
||||
|
||||
void
|
||||
vk_device_finish(struct vk_device *device);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue