result = radv_pipeline_import_graphics_info(&pipeline->base, state, pipeline_layout, pCreateInfo,
imported_flags);
if (result != VK_SUCCESS)
- return result;
+ goto fail;
radv_pipeline_layout_hash(pipeline_layout);
pCreateInfo->pStages, pCreateInfo->stageCount, flags, NULL,
creation_feedback, NULL, NULL,
&pipeline->base.last_vgt_api_stage);
- if (result != VK_SUCCESS)
- return result;
+ if (result != VK_SUCCESS && result != VK_PIPELINE_COMPILE_REQUIRED)
+ goto fail;
}
return VK_SUCCESS;
+
+fail:
+ radv_pipeline_layout_finish(device, pipeline_layout);
+ return result;
}
static VkResult