HLSL: Test for issue #699.

This commit is contained in:
John Kessenich 2017-03-03 18:18:23 -07:00
parent 322cb1922e
commit 789086a820
3 changed files with 319 additions and 283 deletions

View File

@ -6,104 +6,110 @@ WARNING: 0:30: 'register' : ignoring shader_profile
Shader version: 450 Shader version: 450
gl_FragCoord origin is upper left gl_FragCoord origin is upper left
0:? Sequence 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:40 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:40 Function Parameters:
0:34 'input' (in 4-component vector of float) 0:40 '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:? 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 '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:? Sequence 0:? Sequence
0:34 move second child to first child (temp 4-component vector of float) 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:40 move second child to first child (temp 4-component vector of float)
0:? 'input' (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:? 'input' (layout(location=0 ) in 4-component vector of float)
0:34 Sequence 0:40 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:34 a: direct index for structure (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:? '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:40 Constant:
0:34 0 (const int) 0:40 0 (const int)
0:34 a: direct index for structure (smooth temp 4-component vector of float) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 0 (const int) 0:40 0 (const int)
0:34 move second child to first child (temp bool) 0:40 move second child to first child (temp bool)
0:34 b: direct index for structure (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:? '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:40 Constant:
0:34 1 (const int) 0:40 1 (const int)
0:34 b: direct index for structure (flat temp bool) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 1 (const int) 0:40 1 (const int)
0:34 move second child to first child (temp 1-component vector of float) 0:40 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 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:? '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:40 Constant:
0:34 2 (const int) 0:40 2 (const int)
0:34 c: direct index for structure (centroid noperspective temp 1-component vector of float) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 2 (const int) 0:40 2 (const int)
0:34 move second child to first child (temp 2-component vector of float) 0:40 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 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:? '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:40 Constant:
0:34 3 (const int) 0:40 3 (const int)
0:34 d: direct index for structure (centroid sample temp 2-component vector of float) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 3 (const int) 0:40 3 (const int)
0:34 move second child to first child (temp bool) 0:40 move second child to first child (temp bool)
0:34 ff1: direct index for structure (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:? '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:40 Constant:
0:34 4 (const int) 0:40 4 (const int)
0:? 's_ff1' (in bool Face) 0:? 's_ff1' (in bool Face)
0:34 move second child to first child (temp bool) 0:40 move second child to first child (temp bool)
0:34 ff2: direct index for structure (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:? '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:40 Constant:
0:34 5 (const int) 0:40 5 (const int)
0:34 ff2: direct index for structure (temp bool) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 4 (const int) 0:40 4 (const int)
0:34 move second child to first child (temp bool) 0:40 move second child to first child (temp bool)
0:34 ff3: direct index for structure (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:? '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:40 Constant:
0:34 6 (const int) 0:40 6 (const int)
0:34 ff3: direct index for structure (temp bool) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 5 (const int) 0:40 5 (const int)
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:34 ff4: direct index for structure (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:? '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:40 Constant:
0:34 7 (const int) 0:40 7 (const int)
0:34 ff4: direct index for structure (temp 4-component vector of float) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 6 (const int) 0:40 6 (const int)
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:? '@entryPointOutput' (layout(location=0 ) out 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:? '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:? '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 0:? Linker Objects
@ -121,104 +127,110 @@ Linked fragment stage:
Shader version: 450 Shader version: 450
gl_FragCoord origin is upper left gl_FragCoord origin is upper left
0:? Sequence 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:40 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:40 Function Parameters:
0:34 'input' (in 4-component vector of float) 0:40 '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:? 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 '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:? Sequence 0:? Sequence
0:34 move second child to first child (temp 4-component vector of float) 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:40 move second child to first child (temp 4-component vector of float)
0:? 'input' (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:? 'input' (layout(location=0 ) in 4-component vector of float)
0:34 Sequence 0:40 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:34 a: direct index for structure (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:? '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:40 Constant:
0:34 0 (const int) 0:40 0 (const int)
0:34 a: direct index for structure (smooth temp 4-component vector of float) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 0 (const int) 0:40 0 (const int)
0:34 move second child to first child (temp bool) 0:40 move second child to first child (temp bool)
0:34 b: direct index for structure (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:? '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:40 Constant:
0:34 1 (const int) 0:40 1 (const int)
0:34 b: direct index for structure (flat temp bool) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 1 (const int) 0:40 1 (const int)
0:34 move second child to first child (temp 1-component vector of float) 0:40 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 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:? '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:40 Constant:
0:34 2 (const int) 0:40 2 (const int)
0:34 c: direct index for structure (centroid noperspective temp 1-component vector of float) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 2 (const int) 0:40 2 (const int)
0:34 move second child to first child (temp 2-component vector of float) 0:40 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 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:? '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:40 Constant:
0:34 3 (const int) 0:40 3 (const int)
0:34 d: direct index for structure (centroid sample temp 2-component vector of float) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 3 (const int) 0:40 3 (const int)
0:34 move second child to first child (temp bool) 0:40 move second child to first child (temp bool)
0:34 ff1: direct index for structure (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:? '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:40 Constant:
0:34 4 (const int) 0:40 4 (const int)
0:? 's_ff1' (in bool Face) 0:? 's_ff1' (in bool Face)
0:34 move second child to first child (temp bool) 0:40 move second child to first child (temp bool)
0:34 ff2: direct index for structure (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:? '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:40 Constant:
0:34 5 (const int) 0:40 5 (const int)
0:34 ff2: direct index for structure (temp bool) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 4 (const int) 0:40 4 (const int)
0:34 move second child to first child (temp bool) 0:40 move second child to first child (temp bool)
0:34 ff3: direct index for structure (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:? '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:40 Constant:
0:34 6 (const int) 0:40 6 (const int)
0:34 ff3: direct index for structure (temp bool) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 5 (const int) 0:40 5 (const int)
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:34 ff4: direct index for structure (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:? '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:40 Constant:
0:34 7 (const int) 0:40 7 (const int)
0:34 ff4: direct index for structure (temp 4-component vector of float) 0:40 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: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:34 Constant: 0:40 Constant:
0:34 6 (const int) 0:40 6 (const int)
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:? '@entryPointOutput' (layout(location=0 ) out 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:? '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:? '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 0:? Linker Objects
@ -231,12 +243,12 @@ gl_FragCoord origin is upper left
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 97 // Id's are bound by 105
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 43 48 71 86 EntryPoint Fragment 4 "PixelShaderFunction" 51 56 79 94
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction" Name 4 "PixelShaderFunction"
Name 11 "IN_S" Name 11 "IN_S"
@ -257,49 +269,54 @@ gl_FragCoord origin is upper left
Name 28 "" Name 28 ""
MemberName 28 0 "i" MemberName 28 0 "i"
Name 30 "s2" Name 30 "s2"
Name 41 "input" Name 38 "empty"
Name 43 "input" Name 40 "e"
Name 45 "s" Name 41 "containEmpty"
Name 46 "IN_S" MemberName 41(containEmpty) 0 "e"
MemberName 46(IN_S) 0 "a" Name 43 "ce"
MemberName 46(IN_S) 1 "b" Name 49 "input"
MemberName 46(IN_S) 2 "c" Name 51 "input"
MemberName 46(IN_S) 3 "d" Name 53 "s"
MemberName 46(IN_S) 4 "ff2" Name 54 "IN_S"
MemberName 46(IN_S) 5 "ff3" MemberName 54(IN_S) 0 "a"
MemberName 46(IN_S) 6 "ff4" MemberName 54(IN_S) 1 "b"
Name 48 "s" MemberName 54(IN_S) 2 "c"
Name 71 "s_ff1" MemberName 54(IN_S) 3 "d"
Name 86 "@entryPointOutput" MemberName 54(IN_S) 4 "ff2"
Name 87 "param" MemberName 54(IN_S) 5 "ff3"
Name 89 "param" MemberName 54(IN_S) 6 "ff4"
Name 93 "myS" Name 56 "s"
MemberName 93(myS) 0 "b" Name 79 "s_ff1"
MemberName 93(myS) 1 "c" Name 94 "@entryPointOutput"
MemberName 93(myS) 2 "a" Name 95 "param"
MemberName 93(myS) 3 "d" Name 97 "param"
Name 94 "$Global" Name 101 "myS"
MemberName 94($Global) 0 "s1" MemberName 101(myS) 0 "b"
MemberName 94($Global) 1 "ff5" MemberName 101(myS) 1 "c"
MemberName 94($Global) 2 "ff6" MemberName 101(myS) 2 "a"
Name 96 "" MemberName 101(myS) 3 "d"
Decorate 43(input) Location 0 Name 102 "$Global"
MemberDecorate 46(IN_S) 1 Flat MemberName 102($Global) 0 "s1"
MemberDecorate 46(IN_S) 2 NoPerspective MemberName 102($Global) 1 "ff5"
MemberDecorate 46(IN_S) 2 Centroid MemberName 102($Global) 2 "ff6"
MemberDecorate 46(IN_S) 3 Centroid Name 104 ""
Decorate 48(s) Location 1 Decorate 51(input) Location 0
Decorate 71(s_ff1) BuiltIn FrontFacing MemberDecorate 54(IN_S) 1 Flat
Decorate 86(@entryPointOutput) Location 0 MemberDecorate 54(IN_S) 2 NoPerspective
MemberDecorate 93(myS) 0 Offset 0 MemberDecorate 54(IN_S) 2 Centroid
MemberDecorate 93(myS) 1 Offset 4 MemberDecorate 54(IN_S) 3 Centroid
MemberDecorate 93(myS) 2 Offset 16 Decorate 56(s) Location 1
MemberDecorate 93(myS) 3 Offset 32 Decorate 79(s_ff1) BuiltIn FrontFacing
MemberDecorate 94($Global) 0 Offset 0 Decorate 94(@entryPointOutput) Location 0
MemberDecorate 94($Global) 1 Offset 1620 MemberDecorate 101(myS) 0 Offset 0
MemberDecorate 94($Global) 2 Offset 1636 MemberDecorate 101(myS) 1 Offset 4
Decorate 94($Global) Block MemberDecorate 101(myS) 2 Offset 16
Decorate 96 DescriptorSet 0 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 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -320,76 +337,80 @@ gl_FragCoord origin is upper left
32: 31(int) Constant 0 32: 31(int) Constant 0
33: 31(int) Constant 7 33: 31(int) Constant 7
36: TypePointer Private 7(fvec4) 36: TypePointer Private 7(fvec4)
42: TypePointer Input 7(fvec4) 38(empty): TypeStruct
43(input): 42(ptr) Variable Input 39: TypePointer Function 38(empty)
46(IN_S): TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 7(fvec4) 41(containEmpty): TypeStruct 38(empty)
47: TypePointer Input 46(IN_S) 42: TypePointer Function 41(containEmpty)
48(s): 47(ptr) Variable Input 50: TypePointer Input 7(fvec4)
52: 31(int) Constant 1 51(input): 50(ptr) Variable Input
53: TypePointer Input 9(bool) 54(IN_S): TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 7(fvec4)
56: TypePointer Function 9(bool) 55: TypePointer Input 54(IN_S)
58: 31(int) Constant 2 56(s): 55(ptr) Variable Input
59: TypePointer Input 6(float) 60: 31(int) Constant 1
62: TypePointer Function 6(float) 61: TypePointer Input 9(bool)
64: 31(int) Constant 3 64: TypePointer Function 9(bool)
65: TypePointer Input 10(fvec2) 66: 31(int) Constant 2
68: TypePointer Function 10(fvec2) 67: TypePointer Input 6(float)
70: 31(int) Constant 4 70: TypePointer Function 6(float)
71(s_ff1): 53(ptr) Variable Input 72: 31(int) Constant 3
74: 31(int) Constant 5 73: TypePointer Input 10(fvec2)
78: 31(int) Constant 6 76: TypePointer Function 10(fvec2)
85: TypePointer Output 7(fvec4) 78: 31(int) Constant 4
86(@entryPointOutput): 85(ptr) Variable Output 79(s_ff1): 61(ptr) Variable Input
92: TypeInt 32 0 82: 31(int) Constant 5
93(myS): TypeStruct 92(int) 92(int) 7(fvec4) 7(fvec4) 86: 31(int) Constant 6
94($Global): TypeStruct 93(myS) 6(float) 6(float) 93: TypePointer Output 7(fvec4)
95: TypePointer Uniform 94($Global) 94(@entryPointOutput): 93(ptr) Variable Output
96: 95(ptr) Variable Uniform 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 4(PixelShaderFunction): 2 Function None 3
5: Label 5: Label
41(input): 8(ptr) Variable Function 49(input): 8(ptr) Variable Function
45(s): 12(ptr) Variable Function 53(s): 12(ptr) Variable Function
87(param): 8(ptr) Variable Function 95(param): 8(ptr) Variable Function
89(param): 12(ptr) Variable Function 97(param): 12(ptr) Variable Function
44: 7(fvec4) Load 43(input) 52: 7(fvec4) Load 51(input)
Store 41(input) 44 Store 49(input) 52
49: 42(ptr) AccessChain 48(s) 32 57: 50(ptr) AccessChain 56(s) 32
50: 7(fvec4) Load 49 58: 7(fvec4) Load 57
51: 8(ptr) AccessChain 45(s) 32 59: 8(ptr) AccessChain 53(s) 32
Store 51 50 Store 59 58
54: 53(ptr) AccessChain 48(s) 52 62: 61(ptr) AccessChain 56(s) 60
55: 9(bool) Load 54 63: 9(bool) Load 62
57: 56(ptr) AccessChain 45(s) 52 65: 64(ptr) AccessChain 53(s) 60
Store 57 55 Store 65 63
60: 59(ptr) AccessChain 48(s) 58 68: 67(ptr) AccessChain 56(s) 66
61: 6(float) Load 60 69: 6(float) Load 68
63: 62(ptr) AccessChain 45(s) 58 71: 70(ptr) AccessChain 53(s) 66
Store 63 61 Store 71 69
66: 65(ptr) AccessChain 48(s) 64 74: 73(ptr) AccessChain 56(s) 72
67: 10(fvec2) Load 66 75: 10(fvec2) Load 74
69: 68(ptr) AccessChain 45(s) 64 77: 76(ptr) AccessChain 53(s) 72
Store 69 67 Store 77 75
72: 9(bool) Load 71(s_ff1) 80: 9(bool) Load 79(s_ff1)
73: 56(ptr) AccessChain 45(s) 70 81: 64(ptr) AccessChain 53(s) 78
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
Store 81 80 Store 81 80
82: 42(ptr) AccessChain 48(s) 78 83: 61(ptr) AccessChain 56(s) 78
83: 7(fvec4) Load 82 84: 9(bool) Load 83
84: 8(ptr) AccessChain 45(s) 33 85: 64(ptr) AccessChain 53(s) 82
Store 84 83 Store 85 84
88: 7(fvec4) Load 41(input) 87: 61(ptr) AccessChain 56(s) 82
Store 87(param) 88 88: 9(bool) Load 87
90: 11(IN_S) Load 45(s) 89: 64(ptr) AccessChain 53(s) 86
Store 89(param) 90 Store 89 88
91: 7(fvec4) FunctionCall 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;) 87(param) 89(param) 90: 50(ptr) AccessChain 56(s) 86
Store 86(@entryPointOutput) 91 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 Return
FunctionEnd FunctionEnd
16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;): 7(fvec4) Function None 13 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 15(s): 12(ptr) FunctionParameter
17: Label 17: Label
21(s3): 20(ptr) Variable Function 21(s3): 20(ptr) Variable Function
40(e): 39(ptr) Variable Function
43(ce): 42(ptr) Variable Function
22: 19(FS) Load 21(s3) 22: 19(FS) Load 21(s3)
23: 19(FS) Load 21(s3) 23: 19(FS) Load 21(s3)
24: 18(bvec3) CompositeExtract 22 0 24: 18(bvec3) CompositeExtract 22 0
@ -407,6 +430,9 @@ gl_FragCoord origin is upper left
35: 7(fvec4) Load 34 35: 7(fvec4) Load 34
37: 36(ptr) AccessChain 30(s2) 32 37: 36(ptr) AccessChain 30(s2) 32
Store 37 35 Store 37 35
38: 7(fvec4) Load 14(input) 44: 39(ptr) AccessChain 43(ce) 32
ReturnValue 38 45: 38(empty) Load 44
Store 40(e) 45
46: 7(fvec4) Load 14(input)
ReturnValue 46
FunctionEnd FunctionEnd

View File

@ -30,6 +30,12 @@ struct IN_S {
float ff5 : packoffset(c101.y) : register(ps_5_0, s[5]); float ff5 : packoffset(c101.y) : register(ps_5_0, s[5]);
float ff6 : packoffset(c102.y) : register(s3[5]); float ff6 : packoffset(c102.y) : register(s3[5]);
struct empty {};
struct containEmpty {
empty e;
};
float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0
{ {
class FS { class FS {
@ -39,5 +45,9 @@ float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0
s3 == s3; s3 == s3;
s2.i = s.ff4; s2.i = s.ff4;
containEmpty ce;
empty e;
e = ce.e;
return input; return input;
} }

View File

@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits. // 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). // 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" #define GLSLANG_DATE "03-Mar-2017"