diff options
author | Ilia Mirkin <[email protected]> | 2014-07-19 09:39:18 -0400 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2015-05-16 14:48:54 +0200 |
commit | 018aa279532f5c9d07c3c73604e33b49569eb4e6 (patch) | |
tree | c9984243c04cd844539a8265bda0fb5d1987460d /src/gallium | |
parent | 88c4f5d0a54baf7711cf030e3c1d5eca63560716 (diff) |
gallium: add new semantics for tessellation
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
Signed-off-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_strings.c | 5 | ||||
-rw-r--r-- | src/gallium/docs/source/tgsi.rst | 37 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_shader_tokens.h | 7 |
3 files changed, 48 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_strings.c b/src/gallium/auxiliary/tgsi/tgsi_strings.c index 8938cf0b377..fc16d471afb 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_strings.c +++ b/src/gallium/auxiliary/tgsi/tgsi_strings.c @@ -90,6 +90,11 @@ const char *tgsi_semantic_names[TGSI_SEMANTIC_COUNT] = "INVOCATIONID", "VERTEXID_NOBASE", "BASEVERTEX", + "PATCH", + "TESSCOORD", + "TESSOUTER", + "TESSINNER", + "VERTICESIN", }; const char *tgsi_texture_names[TGSI_TEXTURE_COUNT] = diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst index 7771136f167..0116842bfda 100644 --- a/src/gallium/docs/source/tgsi.rst +++ b/src/gallium/docs/source/tgsi.rst @@ -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... +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 ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h index 776b0d48342..c6ab89924a9 100644 --- a/src/gallium/include/pipe/p_shader_tokens.h +++ b/src/gallium/include/pipe/p_shader_tokens.h @@ -180,7 +180,12 @@ struct tgsi_declaration_interp #define TGSI_SEMANTIC_INVOCATIONID 27 #define TGSI_SEMANTIC_VERTEXID_NOBASE 28 #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 { |