summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrazvydas Ignotas <[email protected]>2017-05-02 22:46:06 +0300
committerGrazvydas Ignotas <[email protected]>2017-05-10 01:13:44 +0300
commit45ccb661d8b2aba00f1bdc0d3de4efe5b2a4a9f9 (patch)
treeefe6f732531acb3233fc8ac670481347af487b1c
parent0ef302638f2883789a3b39c2b6cfd20814efa0bb (diff)
radv: always free nir shaders from modules on stack
valgrind reports them as leaked, and I could not find anything making a copy of the nir pointer. Also, radv_device_init_meta_blit_color() is already freeing them unconditionally like this. Signed-off-by: Grazvydas Ignotas <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
-rw-r--r--src/amd/vulkan/radv_meta_blit.c6
-rw-r--r--src/amd/vulkan/radv_query.c6
2 files changed, 4 insertions, 8 deletions
diff --git a/src/amd/vulkan/radv_meta_blit.c b/src/amd/vulkan/radv_meta_blit.c
index 439309903d0..f63fa6795c0 100644
--- a/src/amd/vulkan/radv_meta_blit.c
+++ b/src/amd/vulkan/radv_meta_blit.c
@@ -1259,12 +1259,10 @@ radv_device_init_meta_blit_state(struct radv_device *device)
goto fail;
result = radv_device_init_meta_blit_stencil(device, &vs);
- if (result != VK_SUCCESS)
- goto fail;
- return VK_SUCCESS;
fail:
ralloc_free(vs.nir);
- radv_device_finish_meta_blit_state(device);
+ if (result != VK_SUCCESS)
+ radv_device_finish_meta_blit_state(device);
return result;
}
diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c
index 88d8ccb050c..f79b3e6a313 100644
--- a/src/amd/vulkan/radv_query.c
+++ b/src/amd/vulkan/radv_query.c
@@ -614,12 +614,10 @@ VkResult radv_device_init_meta_query_state(struct radv_device *device)
radv_pipeline_cache_to_handle(&device->meta_state.cache),
1, &pipeline_statistics_vk_pipeline_info, NULL,
&device->meta_state.query.pipeline_statistics_query_pipeline);
- if (result != VK_SUCCESS)
- goto fail;
- return VK_SUCCESS;
fail:
- radv_device_finish_meta_query_state(device);
+ if (result != VK_SUCCESS)
+ radv_device_finish_meta_query_state(device);
ralloc_free(occlusion_cs.nir);
ralloc_free(pipeline_statistics_cs.nir);
return result;