diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 8b19c0254b345bae2a8318a2f115092d69906ab5..1876aeea3b358c052948f8b898e188d7ab12e45c 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -6,104 +6,110 @@ WARNING: 0:30: 'register' : ignoring shader_profile Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) -0:34 Function Parameters: -0:34 'input' (in 4-component vector of float) -0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) +0:40 Function Parameters: +0:40 'input' (in 4-component vector of float) +0:40 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? Sequence -0:39 Compare Equal (temp bool) -0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:40 move second child to first child (temp 4-component vector of float) -0:40 i: direct index for structure (temp 4-component vector of float) -0:40 's2' (global structure{temp 4-component vector of float i}) -0:40 Constant: -0:40 0 (const int) -0:40 ff4: direct index for structure (temp 4-component vector of float) -0:40 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:40 Constant: -0:40 7 (const int) -0:42 Branch: Return with expression -0:42 'input' (in 4-component vector of float) -0:34 Function Definition: PixelShaderFunction( (temp void) -0:34 Function Parameters: +0:45 Compare Equal (temp bool) +0:45 's3' (temp structure{temp 3-component vector of bool b3}) +0:45 's3' (temp structure{temp 3-component vector of bool b3}) +0:46 move second child to first child (temp 4-component vector of float) +0:46 i: direct index for structure (temp 4-component vector of float) +0:46 's2' (global structure{temp 4-component vector of float i}) +0:46 Constant: +0:46 0 (const int) +0:46 ff4: direct index for structure (temp 4-component vector of float) +0:46 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:46 Constant: +0:46 7 (const int) +0:50 move second child to first child (temp structure{}) +0:50 'e' (temp structure{}) +0:50 e: direct index for structure (temp structure{}) +0:50 'ce' (temp structure{temp structure{} e}) +0:50 Constant: +0:50 0 (const int) +0:52 Branch: Return with expression +0:52 'input' (in 4-component vector of float) +0:40 Function Definition: PixelShaderFunction( (temp void) +0:40 Function Parameters: 0:? Sequence -0:34 move second child to first child (temp 4-component vector of float) +0:40 move second child to first child (temp 4-component vector of float) 0:? 'input' (temp 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) -0:34 Sequence -0:34 move second child to first child (temp 4-component vector of float) -0:34 a: direct index for structure (temp 4-component vector of float) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 a: direct index for structure (temp 4-component vector of float) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 0 (const int) -0:34 a: direct index for structure (smooth temp 4-component vector of float) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 0 (const int) -0:34 move second child to first child (temp bool) -0:34 b: direct index for structure (temp bool) +0:40 Constant: +0:40 0 (const int) +0:40 a: direct index for structure (smooth temp 4-component vector of float) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 0 (const int) +0:40 move second child to first child (temp bool) +0:40 b: direct index for structure (temp bool) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 1 (const int) -0:34 b: direct index for structure (flat temp bool) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 1 (const int) -0:34 move second child to first child (temp 1-component vector of float) -0:34 c: direct index for structure (temp 1-component vector of float) +0:40 Constant: +0:40 1 (const int) +0:40 b: direct index for structure (flat temp bool) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 1 (const int) +0:40 move second child to first child (temp 1-component vector of float) +0:40 c: direct index for structure (temp 1-component vector of float) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 2 (const int) -0:34 c: direct index for structure (centroid noperspective temp 1-component vector of float) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 2 (const int) -0:34 move second child to first child (temp 2-component vector of float) -0:34 d: direct index for structure (temp 2-component vector of float) +0:40 Constant: +0:40 2 (const int) +0:40 c: direct index for structure (centroid noperspective temp 1-component vector of float) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 2 (const int) +0:40 move second child to first child (temp 2-component vector of float) +0:40 d: direct index for structure (temp 2-component vector of float) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 3 (const int) -0:34 d: direct index for structure (centroid sample temp 2-component vector of float) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 3 (const int) -0:34 move second child to first child (temp bool) -0:34 ff1: direct index for structure (temp bool) +0:40 Constant: +0:40 3 (const int) +0:40 d: direct index for structure (centroid sample temp 2-component vector of float) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 3 (const int) +0:40 move second child to first child (temp bool) +0:40 ff1: direct index for structure (temp bool) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 4 (const int) +0:40 Constant: +0:40 4 (const int) 0:? 's_ff1' (in bool Face) -0:34 move second child to first child (temp bool) -0:34 ff2: direct index for structure (temp bool) +0:40 move second child to first child (temp bool) +0:40 ff2: direct index for structure (temp bool) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 5 (const int) -0:34 ff2: direct index for structure (temp bool) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 4 (const int) -0:34 move second child to first child (temp bool) -0:34 ff3: direct index for structure (temp bool) +0:40 Constant: +0:40 5 (const int) +0:40 ff2: direct index for structure (temp bool) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 4 (const int) +0:40 move second child to first child (temp bool) +0:40 ff3: direct index for structure (temp bool) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 6 (const int) -0:34 ff3: direct index for structure (temp bool) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 5 (const int) -0:34 move second child to first child (temp 4-component vector of float) -0:34 ff4: direct index for structure (temp 4-component vector of float) +0:40 Constant: +0:40 6 (const int) +0:40 ff3: direct index for structure (temp bool) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 5 (const int) +0:40 move second child to first child (temp 4-component vector of float) +0:40 ff4: direct index for structure (temp 4-component vector of float) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 7 (const int) -0:34 ff4: direct index for structure (temp 4-component vector of float) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 6 (const int) -0:34 move second child to first child (temp 4-component vector of float) +0:40 Constant: +0:40 7 (const int) +0:40 ff4: direct index for structure (temp 4-component vector of float) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 6 (const int) +0:40 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:34 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) +0:40 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) 0:? 'input' (temp 4-component vector of float) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? Linker Objects @@ -121,104 +127,110 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) -0:34 Function Parameters: -0:34 'input' (in 4-component vector of float) -0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) +0:40 Function Parameters: +0:40 'input' (in 4-component vector of float) +0:40 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? Sequence -0:39 Compare Equal (temp bool) -0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:40 move second child to first child (temp 4-component vector of float) -0:40 i: direct index for structure (temp 4-component vector of float) -0:40 's2' (global structure{temp 4-component vector of float i}) -0:40 Constant: -0:40 0 (const int) -0:40 ff4: direct index for structure (temp 4-component vector of float) -0:40 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:40 Constant: -0:40 7 (const int) -0:42 Branch: Return with expression -0:42 'input' (in 4-component vector of float) -0:34 Function Definition: PixelShaderFunction( (temp void) -0:34 Function Parameters: +0:45 Compare Equal (temp bool) +0:45 's3' (temp structure{temp 3-component vector of bool b3}) +0:45 's3' (temp structure{temp 3-component vector of bool b3}) +0:46 move second child to first child (temp 4-component vector of float) +0:46 i: direct index for structure (temp 4-component vector of float) +0:46 's2' (global structure{temp 4-component vector of float i}) +0:46 Constant: +0:46 0 (const int) +0:46 ff4: direct index for structure (temp 4-component vector of float) +0:46 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:46 Constant: +0:46 7 (const int) +0:50 move second child to first child (temp structure{}) +0:50 'e' (temp structure{}) +0:50 e: direct index for structure (temp structure{}) +0:50 'ce' (temp structure{temp structure{} e}) +0:50 Constant: +0:50 0 (const int) +0:52 Branch: Return with expression +0:52 'input' (in 4-component vector of float) +0:40 Function Definition: PixelShaderFunction( (temp void) +0:40 Function Parameters: 0:? Sequence -0:34 move second child to first child (temp 4-component vector of float) +0:40 move second child to first child (temp 4-component vector of float) 0:? 'input' (temp 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) -0:34 Sequence -0:34 move second child to first child (temp 4-component vector of float) -0:34 a: direct index for structure (temp 4-component vector of float) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 a: direct index for structure (temp 4-component vector of float) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 0 (const int) -0:34 a: direct index for structure (smooth temp 4-component vector of float) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 0 (const int) -0:34 move second child to first child (temp bool) -0:34 b: direct index for structure (temp bool) +0:40 Constant: +0:40 0 (const int) +0:40 a: direct index for structure (smooth temp 4-component vector of float) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 0 (const int) +0:40 move second child to first child (temp bool) +0:40 b: direct index for structure (temp bool) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 1 (const int) -0:34 b: direct index for structure (flat temp bool) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 1 (const int) -0:34 move second child to first child (temp 1-component vector of float) -0:34 c: direct index for structure (temp 1-component vector of float) +0:40 Constant: +0:40 1 (const int) +0:40 b: direct index for structure (flat temp bool) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 1 (const int) +0:40 move second child to first child (temp 1-component vector of float) +0:40 c: direct index for structure (temp 1-component vector of float) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 2 (const int) -0:34 c: direct index for structure (centroid noperspective temp 1-component vector of float) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 2 (const int) -0:34 move second child to first child (temp 2-component vector of float) -0:34 d: direct index for structure (temp 2-component vector of float) +0:40 Constant: +0:40 2 (const int) +0:40 c: direct index for structure (centroid noperspective temp 1-component vector of float) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 2 (const int) +0:40 move second child to first child (temp 2-component vector of float) +0:40 d: direct index for structure (temp 2-component vector of float) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 3 (const int) -0:34 d: direct index for structure (centroid sample temp 2-component vector of float) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 3 (const int) -0:34 move second child to first child (temp bool) -0:34 ff1: direct index for structure (temp bool) +0:40 Constant: +0:40 3 (const int) +0:40 d: direct index for structure (centroid sample temp 2-component vector of float) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 3 (const int) +0:40 move second child to first child (temp bool) +0:40 ff1: direct index for structure (temp bool) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 4 (const int) +0:40 Constant: +0:40 4 (const int) 0:? 's_ff1' (in bool Face) -0:34 move second child to first child (temp bool) -0:34 ff2: direct index for structure (temp bool) +0:40 move second child to first child (temp bool) +0:40 ff2: direct index for structure (temp bool) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 5 (const int) -0:34 ff2: direct index for structure (temp bool) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 4 (const int) -0:34 move second child to first child (temp bool) -0:34 ff3: direct index for structure (temp bool) +0:40 Constant: +0:40 5 (const int) +0:40 ff2: direct index for structure (temp bool) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 4 (const int) +0:40 move second child to first child (temp bool) +0:40 ff3: direct index for structure (temp bool) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 6 (const int) -0:34 ff3: direct index for structure (temp bool) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 5 (const int) -0:34 move second child to first child (temp 4-component vector of float) -0:34 ff4: direct index for structure (temp 4-component vector of float) +0:40 Constant: +0:40 6 (const int) +0:40 ff3: direct index for structure (temp bool) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 5 (const int) +0:40 move second child to first child (temp 4-component vector of float) +0:40 ff4: direct index for structure (temp 4-component vector of float) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 7 (const int) -0:34 ff4: direct index for structure (temp 4-component vector of float) -0:34 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) -0:34 Constant: -0:34 6 (const int) -0:34 move second child to first child (temp 4-component vector of float) +0:40 Constant: +0:40 7 (const int) +0:40 ff4: direct index for structure (temp 4-component vector of float) +0:40 's' (layout(location=1 ) in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 6 (const int) +0:40 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:34 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) +0:40 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) 0:? 'input' (temp 4-component vector of float) 0:? 's' (temp structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? Linker Objects @@ -231,12 +243,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 97 +// Id's are bound by 105 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 43 48 71 86 + EntryPoint Fragment 4 "PixelShaderFunction" 51 56 79 94 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 11 "IN_S" @@ -257,49 +269,54 @@ gl_FragCoord origin is upper left Name 28 "" MemberName 28 0 "i" Name 30 "s2" - Name 41 "input" - Name 43 "input" - Name 45 "s" - Name 46 "IN_S" - MemberName 46(IN_S) 0 "a" - MemberName 46(IN_S) 1 "b" - MemberName 46(IN_S) 2 "c" - MemberName 46(IN_S) 3 "d" - MemberName 46(IN_S) 4 "ff2" - MemberName 46(IN_S) 5 "ff3" - MemberName 46(IN_S) 6 "ff4" - Name 48 "s" - Name 71 "s_ff1" - Name 86 "@entryPointOutput" - Name 87 "param" - Name 89 "param" - Name 93 "myS" - MemberName 93(myS) 0 "b" - MemberName 93(myS) 1 "c" - MemberName 93(myS) 2 "a" - MemberName 93(myS) 3 "d" - Name 94 "$Global" - MemberName 94($Global) 0 "s1" - MemberName 94($Global) 1 "ff5" - MemberName 94($Global) 2 "ff6" - Name 96 "" - Decorate 43(input) Location 0 - MemberDecorate 46(IN_S) 1 Flat - MemberDecorate 46(IN_S) 2 NoPerspective - MemberDecorate 46(IN_S) 2 Centroid - MemberDecorate 46(IN_S) 3 Centroid - Decorate 48(s) Location 1 - Decorate 71(s_ff1) BuiltIn FrontFacing - Decorate 86(@entryPointOutput) Location 0 - MemberDecorate 93(myS) 0 Offset 0 - MemberDecorate 93(myS) 1 Offset 4 - MemberDecorate 93(myS) 2 Offset 16 - MemberDecorate 93(myS) 3 Offset 32 - MemberDecorate 94($Global) 0 Offset 0 - MemberDecorate 94($Global) 1 Offset 1620 - MemberDecorate 94($Global) 2 Offset 1636 - Decorate 94($Global) Block - Decorate 96 DescriptorSet 0 + Name 38 "empty" + Name 40 "e" + Name 41 "containEmpty" + MemberName 41(containEmpty) 0 "e" + Name 43 "ce" + Name 49 "input" + Name 51 "input" + Name 53 "s" + Name 54 "IN_S" + MemberName 54(IN_S) 0 "a" + MemberName 54(IN_S) 1 "b" + MemberName 54(IN_S) 2 "c" + MemberName 54(IN_S) 3 "d" + MemberName 54(IN_S) 4 "ff2" + MemberName 54(IN_S) 5 "ff3" + MemberName 54(IN_S) 6 "ff4" + Name 56 "s" + Name 79 "s_ff1" + Name 94 "@entryPointOutput" + Name 95 "param" + Name 97 "param" + Name 101 "myS" + MemberName 101(myS) 0 "b" + MemberName 101(myS) 1 "c" + MemberName 101(myS) 2 "a" + MemberName 101(myS) 3 "d" + Name 102 "$Global" + MemberName 102($Global) 0 "s1" + MemberName 102($Global) 1 "ff5" + MemberName 102($Global) 2 "ff6" + Name 104 "" + Decorate 51(input) Location 0 + MemberDecorate 54(IN_S) 1 Flat + MemberDecorate 54(IN_S) 2 NoPerspective + MemberDecorate 54(IN_S) 2 Centroid + MemberDecorate 54(IN_S) 3 Centroid + Decorate 56(s) Location 1 + Decorate 79(s_ff1) BuiltIn FrontFacing + Decorate 94(@entryPointOutput) Location 0 + MemberDecorate 101(myS) 0 Offset 0 + MemberDecorate 101(myS) 1 Offset 4 + MemberDecorate 101(myS) 2 Offset 16 + MemberDecorate 101(myS) 3 Offset 32 + MemberDecorate 102($Global) 0 Offset 0 + MemberDecorate 102($Global) 1 Offset 1620 + MemberDecorate 102($Global) 2 Offset 1636 + Decorate 102($Global) Block + Decorate 104 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -320,76 +337,80 @@ gl_FragCoord origin is upper left 32: 31(int) Constant 0 33: 31(int) Constant 7 36: TypePointer Private 7(fvec4) - 42: TypePointer Input 7(fvec4) - 43(input): 42(ptr) Variable Input - 46(IN_S): TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 7(fvec4) - 47: TypePointer Input 46(IN_S) - 48(s): 47(ptr) Variable Input - 52: 31(int) Constant 1 - 53: TypePointer Input 9(bool) - 56: TypePointer Function 9(bool) - 58: 31(int) Constant 2 - 59: TypePointer Input 6(float) - 62: TypePointer Function 6(float) - 64: 31(int) Constant 3 - 65: TypePointer Input 10(fvec2) - 68: TypePointer Function 10(fvec2) - 70: 31(int) Constant 4 - 71(s_ff1): 53(ptr) Variable Input - 74: 31(int) Constant 5 - 78: 31(int) Constant 6 - 85: TypePointer Output 7(fvec4) -86(@entryPointOutput): 85(ptr) Variable Output - 92: TypeInt 32 0 - 93(myS): TypeStruct 92(int) 92(int) 7(fvec4) 7(fvec4) - 94($Global): TypeStruct 93(myS) 6(float) 6(float) - 95: TypePointer Uniform 94($Global) - 96: 95(ptr) Variable Uniform + 38(empty): TypeStruct + 39: TypePointer Function 38(empty) +41(containEmpty): TypeStruct 38(empty) + 42: TypePointer Function 41(containEmpty) + 50: TypePointer Input 7(fvec4) + 51(input): 50(ptr) Variable Input + 54(IN_S): TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 7(fvec4) + 55: TypePointer Input 54(IN_S) + 56(s): 55(ptr) Variable Input + 60: 31(int) Constant 1 + 61: TypePointer Input 9(bool) + 64: TypePointer Function 9(bool) + 66: 31(int) Constant 2 + 67: TypePointer Input 6(float) + 70: TypePointer Function 6(float) + 72: 31(int) Constant 3 + 73: TypePointer Input 10(fvec2) + 76: TypePointer Function 10(fvec2) + 78: 31(int) Constant 4 + 79(s_ff1): 61(ptr) Variable Input + 82: 31(int) Constant 5 + 86: 31(int) Constant 6 + 93: TypePointer Output 7(fvec4) +94(@entryPointOutput): 93(ptr) Variable Output + 100: TypeInt 32 0 + 101(myS): TypeStruct 100(int) 100(int) 7(fvec4) 7(fvec4) + 102($Global): TypeStruct 101(myS) 6(float) 6(float) + 103: TypePointer Uniform 102($Global) + 104: 103(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label - 41(input): 8(ptr) Variable Function - 45(s): 12(ptr) Variable Function - 87(param): 8(ptr) Variable Function - 89(param): 12(ptr) Variable Function - 44: 7(fvec4) Load 43(input) - Store 41(input) 44 - 49: 42(ptr) AccessChain 48(s) 32 - 50: 7(fvec4) Load 49 - 51: 8(ptr) AccessChain 45(s) 32 - Store 51 50 - 54: 53(ptr) AccessChain 48(s) 52 - 55: 9(bool) Load 54 - 57: 56(ptr) AccessChain 45(s) 52 - Store 57 55 - 60: 59(ptr) AccessChain 48(s) 58 - 61: 6(float) Load 60 - 63: 62(ptr) AccessChain 45(s) 58 - Store 63 61 - 66: 65(ptr) AccessChain 48(s) 64 - 67: 10(fvec2) Load 66 - 69: 68(ptr) AccessChain 45(s) 64 - Store 69 67 - 72: 9(bool) Load 71(s_ff1) - 73: 56(ptr) AccessChain 45(s) 70 - Store 73 72 - 75: 53(ptr) AccessChain 48(s) 70 - 76: 9(bool) Load 75 - 77: 56(ptr) AccessChain 45(s) 74 - Store 77 76 - 79: 53(ptr) AccessChain 48(s) 74 - 80: 9(bool) Load 79 - 81: 56(ptr) AccessChain 45(s) 78 + 49(input): 8(ptr) Variable Function + 53(s): 12(ptr) Variable Function + 95(param): 8(ptr) Variable Function + 97(param): 12(ptr) Variable Function + 52: 7(fvec4) Load 51(input) + Store 49(input) 52 + 57: 50(ptr) AccessChain 56(s) 32 + 58: 7(fvec4) Load 57 + 59: 8(ptr) AccessChain 53(s) 32 + Store 59 58 + 62: 61(ptr) AccessChain 56(s) 60 + 63: 9(bool) Load 62 + 65: 64(ptr) AccessChain 53(s) 60 + Store 65 63 + 68: 67(ptr) AccessChain 56(s) 66 + 69: 6(float) Load 68 + 71: 70(ptr) AccessChain 53(s) 66 + Store 71 69 + 74: 73(ptr) AccessChain 56(s) 72 + 75: 10(fvec2) Load 74 + 77: 76(ptr) AccessChain 53(s) 72 + Store 77 75 + 80: 9(bool) Load 79(s_ff1) + 81: 64(ptr) AccessChain 53(s) 78 Store 81 80 - 82: 42(ptr) AccessChain 48(s) 78 - 83: 7(fvec4) Load 82 - 84: 8(ptr) AccessChain 45(s) 33 - Store 84 83 - 88: 7(fvec4) Load 41(input) - Store 87(param) 88 - 90: 11(IN_S) Load 45(s) - Store 89(param) 90 - 91: 7(fvec4) FunctionCall 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;) 87(param) 89(param) - Store 86(@entryPointOutput) 91 + 83: 61(ptr) AccessChain 56(s) 78 + 84: 9(bool) Load 83 + 85: 64(ptr) AccessChain 53(s) 82 + Store 85 84 + 87: 61(ptr) AccessChain 56(s) 82 + 88: 9(bool) Load 87 + 89: 64(ptr) AccessChain 53(s) 86 + Store 89 88 + 90: 50(ptr) AccessChain 56(s) 86 + 91: 7(fvec4) Load 90 + 92: 8(ptr) AccessChain 53(s) 33 + Store 92 91 + 96: 7(fvec4) Load 49(input) + Store 95(param) 96 + 98: 11(IN_S) Load 53(s) + Store 97(param) 98 + 99: 7(fvec4) FunctionCall 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;) 95(param) 97(param) + Store 94(@entryPointOutput) 99 Return FunctionEnd 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;): 7(fvec4) Function None 13 @@ -397,6 +418,8 @@ gl_FragCoord origin is upper left 15(s): 12(ptr) FunctionParameter 17: Label 21(s3): 20(ptr) Variable Function + 40(e): 39(ptr) Variable Function + 43(ce): 42(ptr) Variable Function 22: 19(FS) Load 21(s3) 23: 19(FS) Load 21(s3) 24: 18(bvec3) CompositeExtract 22 0 @@ -407,6 +430,9 @@ gl_FragCoord origin is upper left 35: 7(fvec4) Load 34 37: 36(ptr) AccessChain 30(s2) 32 Store 37 35 - 38: 7(fvec4) Load 14(input) - ReturnValue 38 + 44: 39(ptr) AccessChain 43(ce) 32 + 45: 38(empty) Load 44 + Store 40(e) 45 + 46: 7(fvec4) Load 14(input) + ReturnValue 46 FunctionEnd diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag index 0017b7b77eb34aec06b4c3dc7e512a1d5a774695..33199e0674f5563cddcee50e23e4955977c92aaa 100644 --- a/Test/hlsl.struct.frag +++ b/Test/hlsl.struct.frag @@ -30,6 +30,12 @@ struct IN_S { float ff5 : packoffset(c101.y) : register(ps_5_0, s[5]); float ff6 : packoffset(c102.y) : register(s3[5]); +struct empty {}; + +struct containEmpty { + empty e; +}; + float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 { class FS { @@ -39,5 +45,9 @@ float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 s3 == s3; s2.i = s.ff4; + containEmpty ce; + empty e; + e = ce.e; + return input; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index e1978232ad910f00643aa61a15b5e45cc94e1537..56445856ef0e9de0730458a2dacba323ac1a0509 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1874" +#define GLSLANG_REVISION "Overload400-PrecQual.1875" #define GLSLANG_DATE "03-Mar-2017"