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),
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: