gallium: add support for layered rendering

Since pipe_surface already has all the necessary fields no interface
changes are necessary except adding a new shader semantic value
(TGSI_SEMANTIC_LAYER).
(Note that what GL knows as "gl_Layer" variable d3d10 is naming
"RENDER_TARGET_ARRAY_INDEX".)

v2: drop cap bit (just tied to geometry shader), add docs.
This commit is contained in:
Roland Scheidegger
2013-06-01 20:02:17 +02:00
parent 458a9a0f85
commit 6b53e2b038
2 changed files with 23 additions and 4 deletions

View File

@@ -2400,14 +2400,32 @@ Edge flags are used to control which lines or points are actually
drawn when the polygon mode converts triangles/quads/polygons into
points or lines.
TGSI_SEMANTIC_STENCIL
""""""""""""""""""""""
For fragment shaders, this semantic label indicates than an output
TGSI_SEMANTIC_STENCIL
"""""""""""""""""""""
For fragment shaders, this semantic label indicates that an output
is a writable stencil reference value. Only the Y component is writable.
This allows the fragment shader to change the fragments stencilref value.
TGSI_SEMANTIC_VIEWPORT_INDEX
""""""""""""""""""""""""""""
For geometry shaders, this semantic label indicates that an output
contains the index of the viewport (and scissor) to use.
Only the X value is used.
TGSI_SEMANTIC_LAYER
"""""""""""""""""""
For geometry shaders, this semantic label indicates that an output
contains the layer value to use for the color and depth/stencil surfaces.
Only the X value is used. (Also known as rendertarget array index.)
Declaration Interpolate
^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -165,7 +165,8 @@ struct tgsi_declaration_interp
#define TGSI_SEMANTIC_TEXCOORD 19 /**< texture or sprite coordinates */
#define TGSI_SEMANTIC_PCOORD 20 /**< point sprite coordinate */
#define TGSI_SEMANTIC_VIEWPORT_INDEX 21 /**< viewport index */
#define TGSI_SEMANTIC_COUNT 22 /**< number of semantic values */
#define TGSI_SEMANTIC_LAYER 22 /**< layer (rendertarget index) */
#define TGSI_SEMANTIC_COUNT 23 /**< number of semantic values */
struct tgsi_declaration_semantic
{