From 408606af02b1a76f9d50ec6126ec9a4fb79bcf3d Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 1 Feb 2023 10:46:13 -0500 Subject: [PATCH] lavapipe: create gfx gallium csos at pipeline bind this should minimize pipeline creation time and make fast-linking "fast" Reviewed-by: Dave Airlie Part-of: --- src/gallium/frontends/lavapipe/lvp_execute.c | 1 + src/gallium/frontends/lavapipe/lvp_pipeline.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c index 1f217cadb5c..1241d406a08 100644 --- a/src/gallium/frontends/lavapipe/lvp_execute.c +++ b/src/gallium/frontends/lavapipe/lvp_execute.c @@ -641,6 +641,7 @@ static void handle_graphics_pipeline(struct vk_cmd_queue_entry *cmd, { LVP_FROM_HANDLE(lvp_pipeline, pipeline, cmd->u.bind_pipeline.pipeline); const struct vk_graphics_pipeline_state *ps = &pipeline->graphics_state; + lvp_pipeline_shaders_compile(pipeline); for (enum pipe_shader_type sh = PIPE_SHADER_VERTEX; sh < PIPE_SHADER_COMPUTE; sh++) { state->iv_dirty[sh] |= state->num_shader_images[sh] && diff --git a/src/gallium/frontends/lavapipe/lvp_pipeline.c b/src/gallium/frontends/lavapipe/lvp_pipeline.c index b777b6c45a6..9610f9866db 100644 --- a/src/gallium/frontends/lavapipe/lvp_pipeline.c +++ b/src/gallium/frontends/lavapipe/lvp_pipeline.c @@ -870,7 +870,7 @@ lvp_graphics_pipeline_init(struct lvp_pipeline *pipeline, pipeline->line_rectangular = true; lvp_pipeline_xfb_init(pipeline); } - if (!pipeline->library) + if (!libstate && !pipeline->library) lvp_pipeline_shaders_compile(pipeline); if (!pipeline->library && !pipeline->pipeline_nir[MESA_SHADER_FRAGMENT]) {