diff options
author | Timothy Arceri <[email protected]> | 2016-10-13 15:11:47 +1100 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2016-10-26 14:29:36 +1100 |
commit | 088c25bfb7d77e2a23af7cc8c3357f4c5228c757 (patch) | |
tree | 4b646d0c31f69ff645ce7a172539a3f9c3bfdac3 | |
parent | 64d9773cfebded42691a70e3b233cadf896e53ba (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]>
-rw-r--r-- | src/compiler/shader_info.c | 11 | ||||
-rw-r--r-- | src/compiler/shader_info.h | 7 |
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; |