yum-mirror/glslang

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

John KessenichMerge pull request #1051 from LoopDawg/bug-1049346dd7c7

main
1.1 KiB43 linesraw
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
7struct HS_Main_Output
8{ 
9    float4 m_Position : SV_POSITION ; 
10}; 
11
12struct HS_Output 
13{ 
14    float fTessFactor [ 3 ] : SV_TessFactor ; 
15    float fInsideTessFactor : SV_InsideTessFactor ; 
16}; 
17
18struct HS_Input 
19{ 
20    float4 m_Position : SV_POSITION; 
21    float4 m_Normal   : TEXCOORD2; 
22}; 
23
24HS_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 ) ] 
38HS_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}