WIP: HLSL: Add GS support

This PR adds:

[maxvertexcount(n)] attributes

point/line/triangle/lineadj/triangleadj qualifiers

PointStream/LineStream/TriangleStream templatized types

Append method on above template types

RestartStrip method on above template types.
This commit is contained in:
steve-lunarg
2016-11-17 15:04:20 -07:00
parent fabe7d6a61
commit f49cdf4183
13 changed files with 531 additions and 39 deletions

25
Test/hlsl.basic.geom Normal file
View File

@@ -0,0 +1,25 @@
struct PSInput
{
float myfloat : SOME_SEMANTIC;
int something : ANOTHER_SEMANTIC;
};
struct nametest {
int Append; // these are valid names even though they are also method names.
int RestartStrip; // ...
};
[maxvertexcount(4)]
void main(triangle in uint VertexID[3] : VertexID,
triangle uint test[3] : FOO,
inout LineStream<PSInput> OutputStream)
{
PSInput Vert;
Vert.myfloat = test[0] + test[1] + test[2];
Vert.something = VertexID[0];
OutputStream.Append(Vert);
OutputStream.Append(Vert);
OutputStream.RestartStrip();
}