yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Tim FoleyMerge pull request #3 from tfoleyNV/rename-testsce90fec1c

master
1.5 KiB53 linesraw
1//TEST:SIMPLE:
2// `HullShader` without `Domain` attribute
3
4pipeline P
5{
6    world CoarseVertex;
7    world ControlPoint;
8    world CornerPoint;
9    world TessPatch;
10    world FineVertex;
11    
12    require @FineVertex vec4 RS_Position; 
13    require @ControlPoint vec2 tessLevelInner;
14    require @ControlPoint vec4 tessLevelOuter;
15        
16    // implicit import operator CoarseVertex->CornerPoint
17    extern @CornerPoint CoarseVertex[] CoarseVertex_ControlPoint;
18    [PerCornerIterator]
19    extern @CornerPoint int HS_CornerID;
20    
21    extern @ControlPoint CoarseVertex[] CoarseVertex_ControlPoint;
22    extern @TessPatch CoarseVertex[] CoarseVertex_ControlPoint;
23    [InvocationId]
24    extern @ControlPoint int invocationId;
25    extern @FineVertex ControlPoint[] ControlPoint_tes;
26    extern @FineVertex Patch<TessPatch> perPatch_tes;
27    
28    extern @FineVertex Patch<CornerPoint[3]> perCorner_tes;
29    [TessCoord]
30    extern @FineVertex vec3 tessCoord;
31      
32    stage hs : HullShader
33    {
34        PatchWorld: TessPatch;
35        ControlPointWorld: ControlPoint;
36        CornerPointWorld: CornerPoint;
37        InputControlPointCount: 3;
38        ControlPointCount: 1;
39        Domain: pentagons;
40        TessLevelOuter: tessLevelOuter;
41        TessLevelInner: tessLevelInner;
42		Partitioning: integer;
43		OutputTopology: triangle_ccw;
44    }
45}
46
47shader S
48    targets P
49{
50	@FineVertex float4 RS_Position = float4(0.0);
51	@ControlPoint float2 tessLevelInner = float2(2.0);
52	@ControlPoint float4 tessLevelOuter = float4(2.0);
53}