diff --git a/src/compiler/shader_enums.c b/src/compiler/shader_enums.c index 8e6babed870..78d5c8baf70 100644 --- a/src/compiler/shader_enums.c +++ b/src/compiler/shader_enums.c @@ -160,6 +160,30 @@ gl_varying_slot_name_for_stage(gl_varying_slot slot, gl_shader_stage stage) if (stage != MESA_SHADER_FRAGMENT && slot == VARYING_SLOT_PRIMITIVE_SHADING_RATE) return "VARYING_SLOT_PRIMITIVE_SHADING_RATE"; + switch (stage) { + case MESA_SHADER_MESH: + switch (slot) { + case VARYING_SLOT_PRIMITIVE_COUNT: return "VARYING_SLOT_PRIMITIVE_COUNT"; + case VARYING_SLOT_PRIMITIVE_INDICES: return "VARYING_SLOT_PRIMITIVE_INDICES"; + default: + /* Not an overlapping value. */ + break; + } + break; + + case MESA_SHADER_TASK: + switch (slot) { + case VARYING_SLOT_TASK_COUNT: return "VARYING_SLOT_TASK_COUNT"; + default: + /* Not an overlapping value. */ + break; + } + break; + + default: + break; + } + static const char *names[] = { ENUM(VARYING_SLOT_POS), ENUM(VARYING_SLOT_COL0), diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h index 1833b8c1ed0..1dc8f7a646c 100644 --- a/src/compiler/shader_enums.h +++ b/src/compiler/shader_enums.h @@ -303,6 +303,11 @@ typedef enum VARYING_SLOT_VIEW_INDEX, VARYING_SLOT_VIEWPORT_MASK, /* Does not appear in FS */ VARYING_SLOT_PRIMITIVE_SHADING_RATE = VARYING_SLOT_FACE, /* Does not appear in FS. */ + + VARYING_SLOT_PRIMITIVE_COUNT = VARYING_SLOT_TESS_LEVEL_OUTER, /* Only appears in MESH. */ + VARYING_SLOT_PRIMITIVE_INDICES = VARYING_SLOT_TESS_LEVEL_INNER, /* Only appears in MESH. */ + VARYING_SLOT_TASK_COUNT = VARYING_SLOT_BOUNDING_BOX0, /* Only appears in TASK. */ + 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: