yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
ce90fec1c
master
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}