diff --git a/src/compiler/shader_enums.c b/src/compiler/shader_enums.c index e761896e0b2..1d5a2bc2438 100644 --- a/src/compiler/shader_enums.c +++ b/src/compiler/shader_enums.c @@ -208,6 +208,34 @@ gl_varying_slot_name_for_stage(gl_varying_slot slot, mesa_shader_stage stage) } break; + case MESA_SHADER_VERTEX: + switch (slot) { + case VARYING_SLOT_GS_HEADER_IR3: return "VARYING_SLOT_GS_HEADER_IR3"; + default: + /* Not an overlapping value. */ + break; + } + break; + + case MESA_SHADER_TESS_EVAL: + switch (slot) { + case VARYING_SLOT_GS_HEADER_IR3: return "VARYING_SLOT_GS_HEADER_IR3"; + default: + /* Not an overlapping value. */ + break; + } + break; + + case MESA_SHADER_GEOMETRY: + switch (slot) { + case VARYING_SLOT_GS_HEADER_IR3: return "VARYING_SLOT_GS_HEADER_IR3"; + case VARYING_SLOT_GS_VERTEX_FLAGS_IR3: return "VARYING_SLOT_GS_VERTEX_FLAGS_IR3"; + default: + /* Not an overlapping value. */ + break; + } + break; + default: break; } diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h index 6105286bab7..2d5e7780870 100644 --- a/src/compiler/shader_enums.h +++ b/src/compiler/shader_enums.h @@ -374,6 +374,9 @@ typedef enum VARYING_SLOT_TASK_COUNT = VARYING_SLOT_BOUNDING_BOX0, /* Only appears in TASK. */ VARYING_SLOT_CULL_PRIMITIVE = VARYING_SLOT_BOUNDING_BOX0, /* Only appears in MESH. */ + VARYING_SLOT_GS_HEADER_IR3 = VARYING_SLOT_BOUNDING_BOX0, /* VS/TES output and GS input */ + VARYING_SLOT_GS_VERTEX_FLAGS_IR3 = VARYING_SLOT_BOUNDING_BOX1, /* GS output */ + VARYING_SLOT_VAR0 = 32, /* First generic varying slot */ /* the remaining are simply for the benefit of gl_varying_slot_name() * and not to be construed as an upper bound: diff --git a/src/freedreno/ir3/ir3_shader.h b/src/freedreno/ir3/ir3_shader.h index e70701dcba5..e40fb292e19 100644 --- a/src/freedreno/ir3/ir3_shader.h +++ b/src/freedreno/ir3/ir3_shader.h @@ -1420,10 +1420,8 @@ void print_raw(FILE *out, const BITSET_WORD *data, size_t size); void ir3_link_stream_out(struct ir3_shader_linkage *l, const struct ir3_shader_variant *v); -#define VARYING_SLOT_GS_HEADER_IR3 (VARYING_SLOT_MAX + 0) -#define VARYING_SLOT_GS_VERTEX_FLAGS_IR3 (VARYING_SLOT_MAX + 1) -#define VARYING_SLOT_TCS_HEADER_IR3 (VARYING_SLOT_MAX + 2) -#define VARYING_SLOT_REL_PATCH_ID_IR3 (VARYING_SLOT_MAX + 3) +#define VARYING_SLOT_TCS_HEADER_IR3 (VARYING_SLOT_MAX + 0) +#define VARYING_SLOT_REL_PATCH_ID_IR3 (VARYING_SLOT_MAX + 1) static inline uint32_t ir3_find_sysval_regid(const struct ir3_shader_variant *so, unsigned slot)