From 49cac7b33da6990d79648ed7fbd1f5e1391e0e8f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 14 Mar 2022 09:40:02 -0400 Subject: [PATCH] lavapipe: ref/unref pipeline layouts for pipeline creation required by maintenance4 Reviewed-by: Dave Airlie Part-of: --- src/gallium/frontends/lavapipe/lvp_pipeline.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/frontends/lavapipe/lvp_pipeline.c b/src/gallium/frontends/lavapipe/lvp_pipeline.c index c7d7c1b3468..e15848946b9 100644 --- a/src/gallium/frontends/lavapipe/lvp_pipeline.c +++ b/src/gallium/frontends/lavapipe/lvp_pipeline.c @@ -67,6 +67,8 @@ VKAPI_ATTR void VKAPI_CALL lvp_DestroyPipeline( for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) ralloc_free(pipeline->pipeline_nir[i]); + lvp_pipeline_layout_unref(device, pipeline->layout); + ralloc_free(pipeline->mem_ctx); vk_object_base_finish(&pipeline->base); vk_free2(&device->vk.alloc, pAllocator, pipeline); @@ -917,6 +919,7 @@ lvp_graphics_pipeline_init(struct lvp_pipeline *pipeline, alloc = &device->vk.alloc; pipeline->device = device; pipeline->layout = lvp_pipeline_layout_from_handle(pCreateInfo->layout); + lvp_pipeline_layout_ref(pipeline->layout); pipeline->force_min_sample = false; pipeline->mem_ctx = ralloc_context(NULL); @@ -1105,6 +1108,7 @@ lvp_compute_pipeline_init(struct lvp_pipeline *pipeline, alloc = &device->vk.alloc; pipeline->device = device; pipeline->layout = lvp_pipeline_layout_from_handle(pCreateInfo->layout); + lvp_pipeline_layout_ref(pipeline->layout); pipeline->force_min_sample = false; pipeline->mem_ctx = ralloc_context(NULL);