From: Bas Nieuwenhuizen Date: Sun, 21 Jan 2018 20:59:26 +0000 (+0100) Subject: radv: Fix fragment resolve init memory allocation failure paths. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2c802ca66c480a1038e1fe52350e30a27658e78a;p=mesa.git radv: Fix fragment resolve init memory allocation failure paths. CC: Reviewed-by: Dave Airlie --- diff --git a/src/amd/vulkan/radv_meta_resolve_fs.c b/src/amd/vulkan/radv_meta_resolve_fs.c index 99314d94e53..08c9282bf0d 100644 --- a/src/amd/vulkan/radv_meta_resolve_fs.c +++ b/src/amd/vulkan/radv_meta_resolve_fs.c @@ -319,16 +319,9 @@ create_resolve_pipeline(struct radv_device *device, &vk_pipeline_info, &radv_pipeline_info, &device->meta_state.alloc, pipeline); - ralloc_free(vs.nir); ralloc_free(fs.nir); - if (result != VK_SUCCESS) - goto fail; - return VK_SUCCESS; -fail: - ralloc_free(vs.nir); - ralloc_free(fs.nir); return result; } @@ -339,14 +332,19 @@ radv_device_init_meta_resolve_fragment_state(struct radv_device *device) res = create_layout(device); if (res != VK_SUCCESS) - return res; + goto fail; for (uint32_t i = 0; i < MAX_SAMPLES_LOG2; ++i) { for (unsigned j = 0; j < ARRAY_SIZE(pipeline_formats); ++j) { res = create_resolve_pipeline(device, i, pipeline_formats[j]); + if (res != VK_SUCCESS) + goto fail; } } + return VK_SUCCESS; +fail: + radv_device_finish_meta_resolve_fragment_state(device); return res; }