Merge pull request #2908 from Biswa96/cmake-spirv-remap
[platform/upstream/glslang.git] / Test / hlsl.hull.4.tesc
1
2 // Test mixed InputPatch structure: user and builtin members.  Hull shaders involve extra
3 // logic in this case due to patch constant function call synthesis.
4
5 // This example tests the main EP and the PCF EP both having an input patch.
6
7 struct HS_Main_Output
8
9     float4 m_Position : SV_POSITION ; 
10 }; 
11
12 struct HS_Output 
13
14     float fTessFactor [ 3 ] : SV_TessFactor ; 
15     float fInsideTessFactor : SV_InsideTessFactor ; 
16 }; 
17
18 struct HS_Input 
19
20     float4 m_Position : SV_POSITION; 
21     float4 m_Normal   : TEXCOORD2; 
22 }; 
23
24 HS_Output HS_ConstFunc ( InputPatch < HS_Input , 3 > I ) 
25
26     HS_Output O = (HS_Output)0;
27
28     O.fInsideTessFactor = I [ 0 ].m_Position.w + I [ 0 ].m_Normal.w;
29
30     return O;
31
32
33 [ domain ( "tri" ) ] 
34 [ partitioning ( "fractional_odd" ) ] 
35 [ outputtopology ( "triangle_cw" ) ] 
36 [ patchconstantfunc ( "HS_ConstFunc" ) ] 
37 [ outputcontrolpoints ( 3 ) ] 
38 HS_Main_Output main( InputPatch < HS_Input , 3 > I , uint cpid : SV_OutputControlPointID ) 
39
40     HS_Main_Output output = ( HS_Main_Output ) 0 ; 
41     output.m_Position = 0;
42     return output ; 
43 }