compiler: add fields for tes metadata to shader info
authorTimothy Arceri <timothy.arceri@collabora.com>
Thu, 13 Oct 2016 04:11:47 +0000 (15:11 +1100)
committerTimothy Arceri <timothy.arceri@collabora.com>
Wed, 26 Oct 2016 03:29:36 +0000 (14:29 +1100)
And copy the values from gl_tess_eval_program struct.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/shader_info.c
src/compiler/shader_info.h

index 2da9757854862608833aa7b8a017967e92ec66c9..3ec1e8ad6d5032da726b345457279fa76245cfb4 100644 (file)
@@ -40,6 +40,17 @@ copy_shader_info(const struct gl_shader_program *shader_prog,
    info->uses_texture_gather = sh->Program->UsesGather;
 
    switch (sh->Stage) {
+   case MESA_SHADER_TESS_EVAL: {
+      struct gl_tess_eval_program *tep =
+         (struct gl_tess_eval_program *)sh->Program;
+
+      info->tes.primitive_mode = tep->PrimitiveMode;
+      info->tes.spacing = tep->Spacing;
+      info->tes.vertex_order = tep->VertexOrder;
+      info->tes.point_mode = tep->PointMode;
+      break;
+   }
+
    case MESA_SHADER_GEOMETRY:
       info->gs.vertices_in = shader_prog->Geom.VerticesIn;
       info->gs.output_primitive = sh->info.Geom.OutputType;
index 7624008dedcd3ef95b08ae2eced3445144a2f2d2..5eae8f13f46247420d8505fcb925c0962f25b8bb 100644 (file)
@@ -121,6 +121,13 @@ typedef struct shader_info {
          /** The number of vertices in the TCS output patch. */
          unsigned vertices_out;
       } tcs;
+
+      struct {
+         uint32_t primitive_mode; /* GL_TRIANGLES, GL_QUADS or GL_ISOLINES */
+         uint32_t spacing;        /* GL_EQUAL, GL_FRACTIONAL_EVEN, GL_FRACTIONAL_ODD */
+         uint32_t vertex_order;   /* GL_CW or GL_CCW */
+         bool point_mode;
+      } tes;
    };
 } shader_info;