From: antonino Date: Wed, 8 Mar 2023 15:13:47 +0000 (+0100) Subject: zink: zink: add `parent` to `zink_shader::non_fs` X-Git-Tag: upstream/23.3.3~10868 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=431795b9b912ea47db75669984ac76d9f5e74922;p=platform%2Fupstream%2Fmesa.git zink: zink: add `parent` to `zink_shader::non_fs` For a generated gs this field will store a pointer to the shader that "owns" it. Reviewed-by: Mike Blumenkrantz Reviewed-by: Erik Faye-Lund Part-of: --- diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 8a911b1..1b138ae 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -2330,6 +2330,7 @@ zink_set_primitive_emulation_keys(struct zink_context *ctx) shader->needs_inlining = true; ctx->gfx_stages[prev_vertex_stage]->non_fs.generated_gs[ctx->gfx_pipeline_state.gfx_prim_mode][zink_prim_type] = shader; shader->non_fs.is_generated = true; + shader->non_fs.parent = ctx->gfx_stages[prev_vertex_stage]; shader->can_inline = true; shader->sinfo.so_info = ctx->gfx_stages[prev_vertex_stage]->sinfo.so_info; } diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index ee7da9a..68f3584 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -768,6 +768,8 @@ struct zink_shader { struct { struct zink_shader *generated_tcs; // a generated shader that this shader "owns"; only valid in the tes stage struct zink_shader *generated_gs[PIPE_PRIM_MAX][ZINK_PRIM_MAX]; // generated shaders that this shader "owns" + struct zink_shader *parent; // for a generated gs this points to the shader that "owns" it + bool is_generated; // if this is a driver-created shader (e.g., tcs) } non_fs;