mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 14:06:23 +00:00
vulkan: NULL check destruction of vulkan resources
If the element fails to start up, any number of vulkan resources could have not been created.
This commit is contained in:
parent
0c3eec57f2
commit
726261aa05
2 changed files with 23 additions and 17 deletions
|
@ -767,21 +767,25 @@ gst_vulkan_full_screen_render_stop (GstBaseTransform * bt)
|
|||
else
|
||||
last_fence = gst_vulkan_fence_new_always_signalled (render->device);
|
||||
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_free_pipeline (last_fence,
|
||||
render->graphics_pipeline));
|
||||
if (render->graphics_pipeline)
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_free_pipeline (last_fence,
|
||||
render->graphics_pipeline));
|
||||
render->graphics_pipeline = VK_NULL_HANDLE;
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_free_pipeline_layout (last_fence,
|
||||
render->pipeline_layout));
|
||||
if (render->pipeline_layout)
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_free_pipeline_layout (last_fence,
|
||||
render->pipeline_layout));
|
||||
render->pipeline_layout = VK_NULL_HANDLE;
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_free_render_pass (last_fence,
|
||||
render->render_pass));
|
||||
if (render->render_pass)
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_free_render_pass (last_fence,
|
||||
render->render_pass));
|
||||
render->render_pass = VK_NULL_HANDLE;
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_mini_object_unref (last_fence,
|
||||
(GstMiniObject *) render->descriptor_set_layout));
|
||||
if (render->descriptor_set_layout)
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_mini_object_unref (last_fence,
|
||||
(GstMiniObject *) render->descriptor_set_layout));
|
||||
render->descriptor_set_layout = NULL;
|
||||
|
||||
gst_vulkan_fence_unref (last_fence);
|
||||
|
|
|
@ -420,12 +420,14 @@ gst_vulkan_image_identity_stop (GstBaseTransform * bt)
|
|||
else
|
||||
last_fence = gst_vulkan_fence_new_always_signalled (render->device);
|
||||
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_object_unref (last_fence,
|
||||
(GstObject *) vk_identity->descriptor_pool));
|
||||
if (vk_identity->descriptor_pool)
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_object_unref (last_fence,
|
||||
(GstObject *) vk_identity->descriptor_pool));
|
||||
vk_identity->descriptor_pool = NULL;
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_free_sampler (last_fence, vk_identity->sampler));
|
||||
if (vk_identity->sampler)
|
||||
gst_vulkan_trash_list_add (render->trash_list,
|
||||
gst_vulkan_trash_new_free_sampler (last_fence, vk_identity->sampler));
|
||||
vk_identity->sampler = VK_NULL_HANDLE;
|
||||
|
||||
gst_vulkan_fence_unref (last_fence);
|
||||
|
|
Loading…
Reference in a new issue