- switch (stage) {
- case PIPE_SHADER_TESS_CTRL:
- ureg_property(ureg, TGSI_PROPERTY_TCS_VERTICES_OUT,
- stp->Base.info.tess.tcs_vertices_out);
- break;
-
- case PIPE_SHADER_TESS_EVAL:
- if (stp->Base.info.tess.primitive_mode == GL_ISOLINES)
- ureg_property(ureg, TGSI_PROPERTY_TES_PRIM_MODE, GL_LINES);
- else
- ureg_property(ureg, TGSI_PROPERTY_TES_PRIM_MODE,
- stp->Base.info.tess.primitive_mode);
-
- STATIC_ASSERT((TESS_SPACING_EQUAL + 1) % 3 == PIPE_TESS_SPACING_EQUAL);
- STATIC_ASSERT((TESS_SPACING_FRACTIONAL_ODD + 1) % 3 ==
- PIPE_TESS_SPACING_FRACTIONAL_ODD);
- STATIC_ASSERT((TESS_SPACING_FRACTIONAL_EVEN + 1) % 3 ==
- PIPE_TESS_SPACING_FRACTIONAL_EVEN);
-
- ureg_property(ureg, TGSI_PROPERTY_TES_SPACING,
- (stp->Base.info.tess.spacing + 1) % 3);
-
- ureg_property(ureg, TGSI_PROPERTY_TES_VERTEX_ORDER_CW,
- !stp->Base.info.tess.ccw);
- ureg_property(ureg, TGSI_PROPERTY_TES_POINT_MODE,
- stp->Base.info.tess.point_mode);
- break;
-
- case PIPE_SHADER_GEOMETRY:
- ureg_property(ureg, TGSI_PROPERTY_GS_INPUT_PRIM,
- stp->Base.info.gs.input_primitive);
- ureg_property(ureg, TGSI_PROPERTY_GS_OUTPUT_PRIM,
- stp->Base.info.gs.output_primitive);
- ureg_property(ureg, TGSI_PROPERTY_GS_MAX_OUTPUT_VERTICES,
- stp->Base.info.gs.vertices_out);
- ureg_property(ureg, TGSI_PROPERTY_GS_INVOCATIONS,
- stp->Base.info.gs.invocations);
- break;
-
- default:
- break;
- }