mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-30 07:28:20 +02:00
zink: check for error when binding memory
If binding fails, we don't really have a valid image. So let's make sure we free up the memory sooner rather than later. Reviewed-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10689>
This commit is contained in:
parent
deb7fa10a2
commit
9618d5700c
1 changed files with 9 additions and 3 deletions
|
|
@ -538,11 +538,17 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
|
|||
|
||||
if (templ->target == PIPE_BUFFER) {
|
||||
if (!(templ->flags & PIPE_RESOURCE_FLAG_SPARSE))
|
||||
vkBindBufferMemory(screen->dev, obj->buffer, obj->mem, obj->offset);
|
||||
} else
|
||||
vkBindImageMemory(screen->dev, obj->image, obj->mem, obj->offset);
|
||||
if (vkBindBufferMemory(screen->dev, obj->buffer, obj->mem, obj->offset) != VK_SUCCESS)
|
||||
goto fail3;
|
||||
} else {
|
||||
if (vkBindImageMemory(screen->dev, obj->image, obj->mem, obj->offset) != VK_SUCCESS)
|
||||
goto fail3;
|
||||
}
|
||||
return obj;
|
||||
|
||||
fail3:
|
||||
vkFreeMemory(screen->dev, obj->mem, NULL);
|
||||
|
||||
fail2:
|
||||
if (templ->target == PIPE_BUFFER)
|
||||
vkDestroyBuffer(screen->dev, obj->buffer, NULL);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue