gallium: add new semantics for tessellation

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 09:39:18 -04:00
committed by Marek Olšák
parent 88c4f5d0a5
commit 018aa27953
3 changed files with 48 additions and 1 deletions

View File

@@ -90,6 +90,11 @@ const char *tgsi_semantic_names[TGSI_SEMANTIC_COUNT] =
"INVOCATIONID", "INVOCATIONID",
"VERTEXID_NOBASE", "VERTEXID_NOBASE",
"BASEVERTEX", "BASEVERTEX",
"PATCH",
"TESSCOORD",
"TESSOUTER",
"TESSINNER",
"VERTICESIN",
}; };
const char *tgsi_texture_names[TGSI_TEXTURE_COUNT] = const char *tgsi_texture_names[TGSI_TEXTURE_COUNT] =

View File

@@ -2894,6 +2894,43 @@ and only the X component is used.
FIXME: This right now can be either a ordinary input or a system value... FIXME: This right now can be either a ordinary input or a system value...
TGSI_SEMANTIC_PATCH
"""""""""""""""""""
For tessellation evaluation/control shaders, this semantic label indicates a
generic per-patch attribute. Such semantics will not implicitly be per-vertex
arrays.
TGSI_SEMANTIC_TESSCOORD
"""""""""""""""""""""""
For tessellation evaluation shaders, this semantic label indicates the
coordinates of the vertex being processed. This is available in XYZ; W is
undefined.
TGSI_SEMANTIC_TESSOUTER
"""""""""""""""""""""""
For tessellation evaluation/control shaders, this semantic label indicates the
outer tessellation levels of the patch. Isoline tessellation will only have XY
defined, triangle will have XYZ and quads will have XYZW defined. This
corresponds to gl_TessLevelOuter.
TGSI_SEMANTIC_TESSINNER
"""""""""""""""""""""""
For tessellation evaluation/control shaders, this semantic label indicates the
inner tessellation levels of the patch. The X value is only defined for
triangle tessellation, while quads will have XY defined. This is entirely
undefined for isoline tessellation.
TGSI_SEMANTIC_VERTICESIN
""""""""""""""""""""""""
For tessellation evaluation/control shaders, this semantic label indicates the
number of vertices provided in the input patch. Only the X value is defined.
Declaration Interpolate Declaration Interpolate
^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -180,7 +180,12 @@ struct tgsi_declaration_interp
#define TGSI_SEMANTIC_INVOCATIONID 27 #define TGSI_SEMANTIC_INVOCATIONID 27
#define TGSI_SEMANTIC_VERTEXID_NOBASE 28 #define TGSI_SEMANTIC_VERTEXID_NOBASE 28
#define TGSI_SEMANTIC_BASEVERTEX 29 #define TGSI_SEMANTIC_BASEVERTEX 29
#define TGSI_SEMANTIC_COUNT 30 /**< number of semantic values */ #define TGSI_SEMANTIC_PATCH 30 /**< generic per-patch semantic */
#define TGSI_SEMANTIC_TESSCOORD 31 /**< coordinate being processed by tess */
#define TGSI_SEMANTIC_TESSOUTER 32 /**< outer tessellation levels */
#define TGSI_SEMANTIC_TESSINNER 33 /**< inner tessellation levels */
#define TGSI_SEMANTIC_VERTICESIN 34 /**< number of input vertices */
#define TGSI_SEMANTIC_COUNT 35 /**< number of semantic values */
struct tgsi_declaration_semantic struct tgsi_declaration_semantic
{ {