summaryrefslogtreecommitdiff
path: root/src/mesa
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2016-11-22 14:43:57 -0800
committerKenneth Graunke <kenneth@whitecape.org>2017-01-07 20:42:32 -0800
commit9bb89175e6487186389b69e8ee0b587d38ed8015 (patch)
treee1aa28ac935aac1f5d089ad88bd7b7f26f3d1207 /src/mesa
parentfaa1edeeb7bbe9321c79587e592dce812e8caa78 (diff)
compiler: Change shader_info->tes.vertex_order into a ccw boolean.
The vertex order is either clockwise or counterclockwise. We can just store a "ccw" boolean rather than GLenum values. I don't want to use GLenums in a Vulkan driver, and even in GL a simple boolean works fine. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_tes.c13
-rw-r--r--src/mesa/main/shaderapi.c2
-rw-r--r--src/mesa/state_tracker/st_program.c2
3 files changed, 5 insertions, 12 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_tes.c b/src/mesa/drivers/dri/i965/brw_tes.c
index 06862df8346..2dae1e57f41 100644
--- a/src/mesa/drivers/dri/i965/brw_tes.c
+++ b/src/mesa/drivers/dri/i965/brw_tes.c
@@ -127,16 +127,9 @@ brw_codegen_tes_prog(struct brw_context *brw,
prog_data.output_topology = BRW_TESS_OUTPUT_TOPOLOGY_LINE;
} else {
/* Hardware winding order is backwards from OpenGL */
- switch (tep->program.info.tes.vertex_order) {
- case GL_CCW:
- prog_data.output_topology = BRW_TESS_OUTPUT_TOPOLOGY_TRI_CW;
- break;
- case GL_CW:
- prog_data.output_topology = BRW_TESS_OUTPUT_TOPOLOGY_TRI_CCW;
- break;
- default:
- unreachable("invalid domain shader vertex order");
- }
+ prog_data.output_topology =
+ tep->program.info.tes.ccw ? BRW_TESS_OUTPUT_TOPOLOGY_TRI_CW
+ : BRW_TESS_OUTPUT_TOPOLOGY_TRI_CCW;
}
/* Allocate the references to the uniforms that will end up in the
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 571b35be58b..f198a3c6302 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -2176,7 +2176,7 @@ _mesa_copy_linked_program_data(const struct gl_shader_program *src,
case MESA_SHADER_TESS_EVAL: {
dst->info.tes.primitive_mode = dst_sh->info.TessEval.PrimitiveMode;
dst->info.tes.spacing = dst_sh->info.TessEval.Spacing;
- dst->info.tes.vertex_order = dst_sh->info.TessEval.VertexOrder;
+ dst->info.tes.ccw = dst_sh->info.TessEval.VertexOrder == GL_CCW;
dst->info.tes.point_mode = dst_sh->info.TessEval.PointMode;
dst->ClipDistanceArraySize = src->TessEval.ClipDistanceArraySize;
dst->CullDistanceArraySize = src->TessEval.CullDistanceArraySize;
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index e9dd5846698..7d548d51c13 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -1624,7 +1624,7 @@ st_translate_tesseval_program(struct st_context *st,
}
ureg_property(ureg, TGSI_PROPERTY_TES_VERTEX_ORDER_CW,
- sttep->Base.info.tes.vertex_order == GL_CW);
+ !sttep->Base.info.tes.ccw);
ureg_property(ureg, TGSI_PROPERTY_TES_POINT_MODE,
sttep->Base.info.tes.point_mode);