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 <notasas@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Grazvydas Ignotas 2017-05-02 22:46:06 +03:00
parent 0ef302638f
commit 45ccb661d8
2 changed files with 4 additions and 8 deletions

View file

@ -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;
}

View file

@ -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;