st/mesa: handle layer and primitive id output and point size input
authorDave Airlie <airlied@gmail.com>
Mon, 14 Oct 2013 07:27:48 +0000 (17:27 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 17 Oct 2013 07:35:42 +0000 (08:35 +0100)
This fixes a number of piglit crashes when running on a hacked up llvmpipe.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/state_tracker/st_program.c

index 5efd6141d0c69ca6e689f6e1cfc03f96a06706da..f010e1889f87c12fbaa560073af92648d9b0e991 100644 (file)
@@ -923,6 +923,10 @@ st_translate_geometry_program(struct st_context *st,
             stgp->input_semantic_name[slot] = TGSI_SEMANTIC_CLIPDIST;
             stgp->input_semantic_index[slot] = 1;
             break;
+         case VARYING_SLOT_PSIZ:
+            stgp->input_semantic_name[slot] = TGSI_SEMANTIC_PSIZE;
+            stgp->input_semantic_index[slot] = 0;
+            break;
          case VARYING_SLOT_TEX0:
          case VARYING_SLOT_TEX1:
          case VARYING_SLOT_TEX2:
@@ -1007,6 +1011,14 @@ st_translate_geometry_program(struct st_context *st,
             gs_output_semantic_name[slot] = TGSI_SEMANTIC_CLIPDIST;
             gs_output_semantic_index[slot] = 1;
             break;
+         case VARYING_SLOT_LAYER:
+            gs_output_semantic_name[slot] = TGSI_SEMANTIC_LAYER;
+            gs_output_semantic_index[slot] = 0;
+            break;
+         case VARYING_SLOT_PRIMITIVE_ID:
+            gs_output_semantic_name[slot] = TGSI_SEMANTIC_PRIMID;
+            gs_output_semantic_index[slot] = 0;
+            break;
          case VARYING_SLOT_TEX0:
          case VARYING_SLOT_TEX1:
          case VARYING_SLOT_TEX2: