The inidividual init parts don't clean up their own stuff on failure.
CC: <[email protected]>
---
src/amd/vulkan/radv_meta_bufimage.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/amd/vulkan/radv_meta_bufimage.c
b/src/amd/vulkan/radv_meta_bufimage.c
index 5bcc1e62db..adf610a933 100644
--- a/src/amd/vulkan/radv_meta_bufimage.c
+++ b/src/amd/vulkan/radv_meta_bufimage.c
@@ -901,21 +901,23 @@ radv_device_init_meta_bufimage_state(struct radv_device
*device)
result = radv_device_init_meta_itob_state(device);
if (result != VK_SUCCESS)
- return result;
+ goto fail_itob;
result = radv_device_init_meta_btoi_state(device);
if (result != VK_SUCCESS)
- goto fail_itob;
+ goto fail_btoi;
result = radv_device_init_meta_itoi_state(device);
if (result != VK_SUCCESS)
- goto fail_btoi;
+ goto fail_itoi;
result = radv_device_init_meta_cleari_state(device);
if (result != VK_SUCCESS)
- goto fail_itoi;
+ goto fail_cleari;
return VK_SUCCESS;
+fail_cleari:
+ radv_device_finish_meta_cleari_state(device);
fail_itoi:
radv_device_finish_meta_itoi_state(device);
fail_btoi:
--
2.15.1
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev