gallium: add tessellation shader properties

v2: Marek: rename tess spacing definitions

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Ilia Mirkin
2014-07-19 10:09:28 -04:00
committed by Marek Olšák
parent 18bce2f194
commit 9e1ba1d689
4 changed files with 52 additions and 2 deletions

View File

@@ -131,7 +131,12 @@ const char *tgsi_property_names[TGSI_PROPERTY_COUNT] =
"FS_DEPTH_LAYOUT",
"VS_PROHIBIT_UCPS",
"GS_INVOCATIONS",
"VS_WINDOW_SPACE_POSITION"
"VS_WINDOW_SPACE_POSITION",
"TCS_VERTICES_OUT",
"TES_PRIM_MODE",
"TES_SPACING",
"TES_VERTEX_ORDER_CW",
"TES_POINT_MODE",
};
const char *tgsi_return_type_names[TGSI_RETURN_TYPE_COUNT] =

View File

@@ -3071,6 +3071,39 @@ Naturally, clipping is not performed on window coordinates either.
The effect of this property is undefined if a geometry or tessellation shader
are in use.
TCS_VERTICES_OUT
""""""""""""""""
The number of vertices written by the tessellation control shader. This
effectively defines the patch input size of the tessellation evaluation shader
as well.
TES_PRIM_MODE
"""""""""""""
This sets the tessellation primitive mode, one of ``PIPE_PRIM_TRIANGLES``,
``PIPE_PRIM_QUADS``, or ``PIPE_PRIM_LINES``. (Unlike in GL, there is no
separate isolines settings, the regular lines is assumed to mean isolines.)
TES_SPACING
"""""""""""
This sets the spacing mode of the tessellation generator, one of
``PIPE_TESS_SPACING_*``.
TES_VERTEX_ORDER_CW
"""""""""""""""""""
This sets the vertex order to be clockwise if the value is 1, or
counter-clockwise if set to 0.
TES_POINT_MODE
""""""""""""""
If set to a non-zero value, this turns on point mode for the tessellator,
which means that points will be generated instead of primitives.
Texture Sampling and Texture Formats
------------------------------------

View File

@@ -431,6 +431,13 @@ enum pipe_flush_flags
#define PIPE_PRIM_MAX 15
/**
* Tessellator spacing types
*/
#define PIPE_TESS_SPACING_FRACTIONAL_ODD 0
#define PIPE_TESS_SPACING_FRACTIONAL_EVEN 1
#define PIPE_TESS_SPACING_EQUAL 2
/**
* Query object types
*/

View File

@@ -262,7 +262,12 @@ union tgsi_immediate_data
#define TGSI_PROPERTY_VS_PROHIBIT_UCPS 7
#define TGSI_PROPERTY_GS_INVOCATIONS 8
#define TGSI_PROPERTY_VS_WINDOW_SPACE_POSITION 9
#define TGSI_PROPERTY_COUNT 10
#define TGSI_PROPERTY_TCS_VERTICES_OUT 10
#define TGSI_PROPERTY_TES_PRIM_MODE 11
#define TGSI_PROPERTY_TES_SPACING 12
#define TGSI_PROPERTY_TES_VERTEX_ORDER_CW 13
#define TGSI_PROPERTY_TES_POINT_MODE 14
#define TGSI_PROPERTY_COUNT 15
struct tgsi_property {
unsigned Type : 4; /**< TGSI_TOKEN_TYPE_PROPERTY */