compiler: add fields for tes metadata to shader info

And copy the values from gl_tess_eval_program struct.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Timothy Arceri
2016-10-13 15:11:47 +11:00
parent 64d9773cfe
commit 088c25bfb7
2 changed files with 18 additions and 0 deletions

View 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;

View 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;