aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2016-10-13 15:11:47 +1100
committerTimothy Arceri <[email protected]>2016-10-26 14:29:36 +1100
commit088c25bfb7d77e2a23af7cc8c3357f4c5228c757 (patch)
tree4b646d0c31f69ff645ce7a172539a3f9c3bfdac3 /src
parent64d9773cfebded42691a70e3b233cadf896e53ba (diff)
compiler: add fields for tes metadata to shader info
And copy the values from gl_tess_eval_program struct. Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/compiler/shader_info.c11
-rw-r--r--src/compiler/shader_info.h7
2 files changed, 18 insertions, 0 deletions
diff --git a/src/compiler/shader_info.c b/src/compiler/shader_info.c
index 2da97578548..3ec1e8ad6d5 100644
--- a/src/compiler/shader_info.c
+++ b/src/compiler/shader_info.c
@@ -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;
diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h
index 7624008dedc..5eae8f13f46 100644
--- a/src/compiler/shader_info.h
+++ b/src/compiler/shader_info.h
@@ -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;