zink: slightly refactor pipeline compile selection

no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25087>
This commit is contained in:
Mike Blumenkrantz 2023-09-06 10:28:08 -04:00 committed by Marge Bot
parent 3802be6bac
commit eacc44afb9

View file

@ -216,21 +216,25 @@ zink_get_gfx_pipeline(struct zink_context *ctx,
pc_entry->gpl.okey = okey;
/* create the non-optimized pipeline first using fast-linking to avoid stuttering */
pipeline = zink_create_gfx_pipeline_combined(screen, prog, ikey->pipeline, &gkey->pipeline, 1, okey->pipeline, false);
pc_entry->pipeline = pipeline;
if (!prog->is_separable)
/* trigger async optimized pipeline compile if this was the fast-linked unoptimized pipeline */
zink_gfx_program_compile_queue(ctx, pc_entry);
} else {
/* optimize by default only when expecting precompiles in order to reduce stuttering */
if (DYNAMIC_STATE != ZINK_DYNAMIC_VERTEX_INPUT2 && DYNAMIC_STATE != ZINK_DYNAMIC_VERTEX_INPUT)
pipeline = zink_create_gfx_pipeline(screen, prog, prog->objs, state, state->element_state->binding_map, vkmode, !HAVE_LIB, NULL);
else
pipeline = zink_create_gfx_pipeline(screen, prog, prog->objs, state, NULL, vkmode, !HAVE_LIB, NULL);
pc_entry->pipeline = pipeline;
if (HAVE_LIB && !prog->is_separable)
/* trigger async optimized pipeline compile if this was an unoptimized pipeline */
zink_gfx_program_compile_queue(ctx, pc_entry);
}
if (pipeline == VK_NULL_HANDLE)
return VK_NULL_HANDLE;
zink_screen_update_pipeline_cache(screen, &prog->base, false);
pc_entry->pipeline = pipeline;
if (HAVE_LIB && !prog->is_separable)
/* trigger async optimized pipeline compile if this was the fast-linked unoptimized pipeline */
zink_gfx_program_compile_queue(ctx, pc_entry);
}
struct zink_gfx_pipeline_cache_entry *cache_entry = (struct zink_gfx_pipeline_cache_entry *)entry->data;