mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 01:28:07 +02:00
panvk: Switch to the new vk_error helpers
Also switch all our calls to use the closest object to the error and let vk_error sort out which object to actually use. Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Tested-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13045>
This commit is contained in:
parent
47adb11143
commit
708b65f704
15 changed files with 29 additions and 78 deletions
|
|
@ -300,7 +300,7 @@ panvk_CreateCommandPool(VkDevice _device,
|
|||
pool = vk_object_alloc(&device->vk, pAllocator, sizeof(*pool),
|
||||
VK_OBJECT_TYPE_COMMAND_POOL);
|
||||
if (pool == NULL)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
if (pAllocator)
|
||||
pool->alloc = *pAllocator;
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ panvk_CreateDescriptorSetLayout(VkDevice _device,
|
|||
pCreateInfo->bindingCount,
|
||||
&bindings);
|
||||
if (result != VK_SUCCESS)
|
||||
return vk_error(device->instance, result);
|
||||
return vk_error(device, result);
|
||||
|
||||
num_bindings = bindings[pCreateInfo->bindingCount - 1].binding + 1;
|
||||
}
|
||||
|
|
@ -161,7 +161,7 @@ panvk_CreateDescriptorSetLayout(VkDevice _device,
|
|||
|
||||
err_free_bindings:
|
||||
free(bindings);
|
||||
return vk_error(device->instance, result);
|
||||
return vk_error(device, result);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -198,7 +198,7 @@ panvk_GetDescriptorSetLayoutSupport(VkDevice _device,
|
|||
pCreateInfo->bindingCount,
|
||||
&bindings);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_error(device->instance, result);
|
||||
vk_error(device, result);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -267,7 +267,7 @@ panvk_CreatePipelineLayout(VkDevice _device,
|
|||
layout = vk_object_zalloc(&device->vk, pAllocator, sizeof(*layout),
|
||||
VK_OBJECT_TYPE_PIPELINE_LAYOUT);
|
||||
if (layout == NULL)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
layout->num_sets = pCreateInfo->setLayoutCount;
|
||||
_mesa_sha1_init(&ctx);
|
||||
|
|
@ -345,7 +345,7 @@ panvk_CreateDescriptorPool(VkDevice _device,
|
|||
sizeof(struct panvk_descriptor_pool),
|
||||
VK_OBJECT_TYPE_DESCRIPTOR_POOL);
|
||||
if (!pool)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
pool->max.sets = pCreateInfo->maxSets;
|
||||
|
||||
|
|
|
|||
|
|
@ -951,7 +951,7 @@ panvk_CreateDevice(VkPhysicalDevice physicalDevice,
|
|||
device = vk_zalloc2(&physical_device->instance->vk.alloc, pAllocator,
|
||||
sizeof(*device), 8, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE);
|
||||
if (!device)
|
||||
return vk_error(physical_device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(physical_device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
const struct vk_device_entrypoint_table *dev_entrypoints;
|
||||
struct vk_device_dispatch_table dispatch_table;
|
||||
|
|
@ -1131,7 +1131,7 @@ panvk_AllocateMemory(VkDevice _device,
|
|||
mem = vk_object_alloc(&device->vk, pAllocator, sizeof(*mem),
|
||||
VK_OBJECT_TYPE_DEVICE_MEMORY);
|
||||
if (mem == NULL)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
const VkImportMemoryFdInfoKHR *fd_info =
|
||||
vk_find_struct_const(pAllocateInfo->pNext,
|
||||
|
|
@ -1208,7 +1208,7 @@ panvk_MapMemory(VkDevice _device,
|
|||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
return vk_error(device->instance, VK_ERROR_MEMORY_MAP_FAILED);
|
||||
return vk_error(device, VK_ERROR_MEMORY_MAP_FAILED);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -1406,7 +1406,7 @@ panvk_CreateEvent(VkDevice _device,
|
|||
vk_object_zalloc(&device->vk, pAllocator, sizeof(*event),
|
||||
VK_OBJECT_TYPE_EVENT);
|
||||
if (!event)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
struct drm_syncobj_create create = {
|
||||
.flags = 0,
|
||||
|
|
@ -1525,7 +1525,7 @@ panvk_CreateBuffer(VkDevice _device,
|
|||
buffer = vk_object_alloc(&device->vk, pAllocator, sizeof(*buffer),
|
||||
VK_OBJECT_TYPE_BUFFER);
|
||||
if (buffer == NULL)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
buffer->size = pCreateInfo->size;
|
||||
buffer->usage = pCreateInfo->usage;
|
||||
|
|
@ -1566,7 +1566,7 @@ panvk_CreateFramebuffer(VkDevice _device,
|
|||
framebuffer = vk_object_alloc(&device->vk, pAllocator, size,
|
||||
VK_OBJECT_TYPE_FRAMEBUFFER);
|
||||
if (framebuffer == NULL)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
framebuffer->attachment_count = pCreateInfo->attachmentCount;
|
||||
framebuffer->width = pCreateInfo->width;
|
||||
|
|
@ -1669,7 +1669,7 @@ panvk_GetMemoryFdKHR(VkDevice _device,
|
|||
|
||||
int prime_fd = panfrost_bo_export(memory->bo);
|
||||
if (prime_fd < 0)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_DEVICE_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_DEVICE_MEMORY);
|
||||
|
||||
*pFd = prime_fd;
|
||||
return VK_SUCCESS;
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@ panvk_get_external_image_format_properties(const struct panvk_physical_device *p
|
|||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT;
|
||||
break;
|
||||
default:
|
||||
return vk_errorf(physical_device->instance, VK_ERROR_FORMAT_NOT_SUPPORTED,
|
||||
return vk_errorf(physical_device, VK_ERROR_FORMAT_NOT_SUPPORTED,
|
||||
"VkExternalMemoryTypeFlagBits(0x%x) unsupported for VkImageType(%d)",
|
||||
handleType, pImageFormatInfo->type);
|
||||
}
|
||||
|
|
@ -339,7 +339,7 @@ panvk_get_external_image_format_properties(const struct panvk_physical_device *p
|
|||
compat_flags = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT;
|
||||
break;
|
||||
default:
|
||||
return vk_errorf(physical_device->instance, VK_ERROR_FORMAT_NOT_SUPPORTED,
|
||||
return vk_errorf(physical_device, VK_ERROR_FORMAT_NOT_SUPPORTED,
|
||||
"VkExternalMemoryTypeFlagBits(0x%x) unsupported",
|
||||
handleType);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ panvk_image_create(VkDevice _device,
|
|||
image = vk_object_zalloc(&device->vk, alloc, sizeof(*image),
|
||||
VK_OBJECT_TYPE_IMAGE);
|
||||
if (!image)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
image->type = pCreateInfo->imageType;
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ panvk_CreateRenderPass2(VkDevice _device,
|
|||
pass = vk_object_zalloc(&device->vk, pAllocator, size,
|
||||
VK_OBJECT_TYPE_RENDER_PASS);
|
||||
if (pass == NULL)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
pass->attachment_count = pCreateInfo->attachmentCount;
|
||||
pass->subpass_count = pCreateInfo->subpassCount;
|
||||
|
|
@ -101,7 +101,7 @@ panvk_CreateRenderPass2(VkDevice _device,
|
|||
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||
if (pass->subpass_attachments == NULL) {
|
||||
vk_object_free(&device->vk, pAllocator, pass);
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ panvk_CreatePipelineCache(VkDevice _device,
|
|||
cache = vk_object_alloc(&device->vk, pAllocator, sizeof(*cache),
|
||||
VK_OBJECT_TYPE_PIPELINE_CACHE);
|
||||
if (cache == NULL)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
if (pAllocator)
|
||||
cache->alloc = *pAllocator;
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@
|
|||
#include "vk_command_buffer.h"
|
||||
#include "vk_device.h"
|
||||
#include "vk_instance.h"
|
||||
#include "vk_log.h"
|
||||
#include "vk_object.h"
|
||||
#include "vk_physical_device.h"
|
||||
#include "vk_queue.h"
|
||||
|
|
@ -104,26 +105,6 @@ typedef uint32_t xcb_window_t;
|
|||
|
||||
#define panvk_printflike(a, b) __attribute__((__format__(__printf__, a, b)))
|
||||
|
||||
/* Whenever we generate an error, pass it through this function. Useful for
|
||||
* debugging, where we can break on it. Only call at error site, not when
|
||||
* propagating errors. Might be useful to plug in a stack trace here.
|
||||
*/
|
||||
|
||||
struct panvk_instance;
|
||||
|
||||
VkResult
|
||||
__vk_errorf(struct panvk_instance *instance,
|
||||
VkResult error,
|
||||
const char *file,
|
||||
int line,
|
||||
const char *format,
|
||||
...);
|
||||
|
||||
#define vk_error(instance, error) \
|
||||
__vk_errorf(instance, error, __FILE__, __LINE__, NULL);
|
||||
#define vk_errorf(instance, error, format, ...) \
|
||||
__vk_errorf(instance, error, __FILE__, __LINE__, format, ##__VA_ARGS__);
|
||||
|
||||
void
|
||||
panvk_logi(const char *format, ...) panvk_printflike(1, 2);
|
||||
void
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ panvk_CreateShaderModule(VkDevice _device,
|
|||
sizeof(*module) + pCreateInfo->codeSize,
|
||||
VK_OBJECT_TYPE_SHADER_MODULE);
|
||||
if (module == NULL)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
module->code_size = pCreateInfo->codeSize;
|
||||
memcpy(module->code, pCreateInfo->pCode, pCreateInfo->codeSize);
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ sync_export(struct panvk_device *device, struct panvk_syncobj *sync,
|
|||
};
|
||||
int ret = drmIoctl(pdev->fd, DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD, &handle);
|
||||
if (ret)
|
||||
return vk_error(device->instance, VK_ERROR_INVALID_EXTERNAL_HANDLE);
|
||||
return vk_error(device, VK_ERROR_INVALID_EXTERNAL_HANDLE);
|
||||
|
||||
/* restore permanent payload on export */
|
||||
sync_set_temporary(device, sync, 0);
|
||||
|
|
@ -164,7 +164,7 @@ panvk_CreateSemaphore(VkDevice _device,
|
|||
vk_object_zalloc(&device->vk, pAllocator, sizeof(*sem),
|
||||
VK_OBJECT_TYPE_SEMAPHORE);
|
||||
if (!sem)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
VkResult ret = sync_create(device, &sem->syncobj, false);
|
||||
if (ret != VK_SUCCESS) {
|
||||
|
|
@ -218,7 +218,7 @@ panvk_CreateFence(VkDevice _device,
|
|||
vk_object_zalloc(&device->vk, pAllocator, sizeof(*fence),
|
||||
VK_OBJECT_TYPE_FENCE);
|
||||
if (!fence)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
VkResult ret = sync_create(device, &fence->syncobj,
|
||||
info->flags & VK_FENCE_CREATE_SIGNALED_BIT);
|
||||
|
|
|
|||
|
|
@ -55,33 +55,3 @@ panvk_logi_v(const char *format, va_list va)
|
|||
vfprintf(stderr, format, va);
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
|
||||
VkResult
|
||||
__vk_errorf(struct panvk_instance *instance,
|
||||
VkResult error,
|
||||
const char *file,
|
||||
int line,
|
||||
const char *format,
|
||||
...)
|
||||
{
|
||||
va_list ap;
|
||||
char buffer[256];
|
||||
|
||||
const char *error_str = vk_Result_to_str(error);
|
||||
|
||||
#ifndef DEBUG
|
||||
return error;
|
||||
#endif
|
||||
|
||||
if (format) {
|
||||
va_start(ap, format);
|
||||
vsnprintf(buffer, sizeof(buffer), format, ap);
|
||||
va_end(ap);
|
||||
|
||||
fprintf(stderr, "%s:%d: %s (%s)\n", file, line, buffer, error_str);
|
||||
} else {
|
||||
fprintf(stderr, "%s:%d: %s\n", file, line, error_str);
|
||||
}
|
||||
|
||||
return error;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1010,7 +1010,7 @@ panvk_create_cmdbuf(struct panvk_device *device,
|
|||
cmdbuf = vk_zalloc(&device->vk.alloc, sizeof(*cmdbuf),
|
||||
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||
if (!cmdbuf)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
VkResult result = vk_command_buffer_init(&cmdbuf->vk, &device->vk);
|
||||
if (result != VK_SUCCESS) {
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ panvk_per_arch(descriptor_set_create)(struct panvk_device *device,
|
|||
sizeof(struct panvk_descriptor_set),
|
||||
VK_OBJECT_TYPE_DESCRIPTOR_SET);
|
||||
if (!set)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
set->layout = layout;
|
||||
set->descs = vk_alloc(&device->vk.alloc,
|
||||
|
|
@ -109,7 +109,7 @@ err_free_set:
|
|||
vk_free(&device->vk.alloc, set->ubos);
|
||||
vk_free(&device->vk.alloc, set->descs);
|
||||
vk_object_free(&device->vk, NULL, set);
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
}
|
||||
|
||||
VkResult
|
||||
|
|
|
|||
|
|
@ -317,7 +317,7 @@ panvk_per_arch(CreateSampler)(VkDevice _device,
|
|||
sampler = vk_object_alloc(&device->vk, pAllocator, sizeof(*sampler),
|
||||
VK_OBJECT_TYPE_SAMPLER);
|
||||
if (!sampler)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
STATIC_ASSERT(sizeof(sampler->desc) >= pan_size(SAMPLER));
|
||||
panvk_per_arch(emit_sampler)(pCreateInfo, &sampler->desc);
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ panvk_per_arch(CreateImageView)(VkDevice _device,
|
|||
view = vk_object_zalloc(&device->vk, pAllocator, sizeof(*view),
|
||||
VK_OBJECT_TYPE_IMAGE_VIEW);
|
||||
if (view == NULL)
|
||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
view->pview.format = vk_format_to_pipe_format(pCreateInfo->format);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue