Commit abd8dca8 by John Kessenich

HLSL: Make the entry-point shadow function have non-IO params and return.

This also removes an no longer needed makeTemporary() and rationalizes makeTypeNonIo()'s interface.
parent 5d3023af
...@@ -4,12 +4,12 @@ local_size = (1, 1, 1) ...@@ -4,12 +4,12 @@ local_size = (1, 1, 1)
0:? Sequence 0:? Sequence
0:4 Function Definition: @main(i1;i1; (temp void) 0:4 Function Definition: @main(i1;i1; (temp void)
0:4 Function Parameters: 0:4 Function Parameters:
0:4 'dti' (in int GlobalInvocationID) 0:4 'dti' (in int)
0:4 'gti' (in int LocalInvocationID) 0:4 'gti' (in int)
0:? Sequence 0:? Sequence
0:5 subtract (temp int) 0:5 subtract (temp int)
0:5 'dti' (in int GlobalInvocationID) 0:5 'dti' (in int)
0:5 'gti' (in int LocalInvocationID) 0:5 'gti' (in int)
0:4 Function Definition: main( (temp void) 0:4 Function Definition: main( (temp void)
0:4 Function Parameters: 0:4 Function Parameters:
0:? Sequence 0:? Sequence
...@@ -36,12 +36,12 @@ local_size = (1, 1, 1) ...@@ -36,12 +36,12 @@ local_size = (1, 1, 1)
0:? Sequence 0:? Sequence
0:4 Function Definition: @main(i1;i1; (temp void) 0:4 Function Definition: @main(i1;i1; (temp void)
0:4 Function Parameters: 0:4 Function Parameters:
0:4 'dti' (in int GlobalInvocationID) 0:4 'dti' (in int)
0:4 'gti' (in int LocalInvocationID) 0:4 'gti' (in int)
0:? Sequence 0:? Sequence
0:5 subtract (temp int) 0:5 subtract (temp int)
0:5 'dti' (in int GlobalInvocationID) 0:5 'dti' (in int)
0:5 'gti' (in int LocalInvocationID) 0:5 'gti' (in int)
0:4 Function Definition: main( (temp void) 0:4 Function Definition: main( (temp void)
0:4 Function Parameters: 0:4 Function Parameters:
0:? Sequence 0:? Sequence
......
...@@ -5,10 +5,10 @@ using depth_greater ...@@ -5,10 +5,10 @@ using depth_greater
0:? Sequence 0:? Sequence
0:2 Function Definition: @PixelShaderFunction(f1; (temp void) 0:2 Function Definition: @PixelShaderFunction(f1; (temp void)
0:2 Function Parameters: 0:2 Function Parameters:
0:2 'depth' (out float unknown built-in variable) 0:2 'depth' (out float)
0:? Sequence 0:? Sequence
0:3 move second child to first child (temp float) 0:3 move second child to first child (temp float)
0:3 'depth' (out float unknown built-in variable) 0:3 'depth' (out float)
0:3 Constant: 0:3 Constant:
0:3 0.200000 0:3 0.200000
0:2 Function Definition: PixelShaderFunction( (temp void) 0:2 Function Definition: PixelShaderFunction( (temp void)
...@@ -32,10 +32,10 @@ using depth_greater ...@@ -32,10 +32,10 @@ using depth_greater
0:? Sequence 0:? Sequence
0:2 Function Definition: @PixelShaderFunction(f1; (temp void) 0:2 Function Definition: @PixelShaderFunction(f1; (temp void)
0:2 Function Parameters: 0:2 Function Parameters:
0:2 'depth' (out float unknown built-in variable) 0:2 'depth' (out float)
0:? Sequence 0:? Sequence
0:3 move second child to first child (temp float) 0:3 move second child to first child (temp float)
0:3 'depth' (out float unknown built-in variable) 0:3 'depth' (out float)
0:3 Constant: 0:3 Constant:
0:3 0.200000 0:3 0.200000
0:2 Function Definition: PixelShaderFunction( (temp void) 0:2 Function Definition: PixelShaderFunction( (temp void)
......
...@@ -3,7 +3,7 @@ Shader version: 450 ...@@ -3,7 +3,7 @@ Shader version: 450
gl_FragCoord origin is upper left gl_FragCoord origin is upper left
using depth_less using depth_less
0:? Sequence 0:? Sequence
0:2 Function Definition: @PixelShaderFunction( (temp float unknown built-in variable) 0:2 Function Definition: @PixelShaderFunction( (temp float)
0:2 Function Parameters: 0:2 Function Parameters:
0:? Sequence 0:? Sequence
0:3 Branch: Return with expression 0:3 Branch: Return with expression
...@@ -14,7 +14,7 @@ using depth_less ...@@ -14,7 +14,7 @@ using depth_less
0:? Sequence 0:? Sequence
0:2 move second child to first child (temp float) 0:2 move second child to first child (temp float)
0:? '@entryPointOutput' (out float FragDepth) 0:? '@entryPointOutput' (out float FragDepth)
0:2 Function Call: @PixelShaderFunction( (temp float unknown built-in variable) 0:2 Function Call: @PixelShaderFunction( (temp float)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput' (out float FragDepth) 0:? '@entryPointOutput' (out float FragDepth)
...@@ -26,7 +26,7 @@ Shader version: 450 ...@@ -26,7 +26,7 @@ Shader version: 450
gl_FragCoord origin is upper left gl_FragCoord origin is upper left
using depth_less using depth_less
0:? Sequence 0:? Sequence
0:2 Function Definition: @PixelShaderFunction( (temp float unknown built-in variable) 0:2 Function Definition: @PixelShaderFunction( (temp float)
0:2 Function Parameters: 0:2 Function Parameters:
0:? Sequence 0:? Sequence
0:3 Branch: Return with expression 0:3 Branch: Return with expression
...@@ -37,7 +37,7 @@ using depth_less ...@@ -37,7 +37,7 @@ using depth_less
0:? Sequence 0:? Sequence
0:2 move second child to first child (temp float) 0:2 move second child to first child (temp float)
0:? '@entryPointOutput' (out float FragDepth) 0:? '@entryPointOutput' (out float FragDepth)
0:2 Function Call: @PixelShaderFunction( (temp float unknown built-in variable) 0:2 Function Call: @PixelShaderFunction( (temp float)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput' (out float FragDepth) 0:? '@entryPointOutput' (out float FragDepth)
......
hlsl.getdimensions.dx10.vert hlsl.getdimensions.dx10.vert
Shader version: 450 Shader version: 450
0:? Sequence 0:? Sequence
0:11 Function Definition: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:11 Function Definition: @main( (temp structure{temp 4-component vector of float Pos})
0:11 Function Parameters: 0:11 Function Parameters:
0:? Sequence 0:? Sequence
0:21 Sequence 0:21 Sequence
...@@ -44,8 +44,8 @@ Shader version: 450 ...@@ -44,8 +44,8 @@ Shader version: 450
0:11 Sequence 0:11 Sequence
0:11 move second child to first child (temp 4-component vector of float) 0:11 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput_Pos' (out 4-component vector of float Position) 0:? '@entryPointOutput_Pos' (out 4-component vector of float Position)
0:11 Pos: direct index for structure (temp 4-component vector of float Position) 0:11 Pos: direct index for structure (temp 4-component vector of float)
0:11 Function Call: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:11 Function Call: @main( (temp structure{temp 4-component vector of float Pos})
0:11 Constant: 0:11 Constant:
0:11 0 (const int) 0:11 0 (const int)
0:? Linker Objects 0:? Linker Objects
...@@ -59,7 +59,7 @@ Linked vertex stage: ...@@ -59,7 +59,7 @@ Linked vertex stage:
Shader version: 450 Shader version: 450
0:? Sequence 0:? Sequence
0:11 Function Definition: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:11 Function Definition: @main( (temp structure{temp 4-component vector of float Pos})
0:11 Function Parameters: 0:11 Function Parameters:
0:? Sequence 0:? Sequence
0:21 Sequence 0:21 Sequence
...@@ -102,8 +102,8 @@ Shader version: 450 ...@@ -102,8 +102,8 @@ Shader version: 450
0:11 Sequence 0:11 Sequence
0:11 move second child to first child (temp 4-component vector of float) 0:11 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput_Pos' (out 4-component vector of float Position) 0:? '@entryPointOutput_Pos' (out 4-component vector of float Position)
0:11 Pos: direct index for structure (temp 4-component vector of float Position) 0:11 Pos: direct index for structure (temp 4-component vector of float)
0:11 Function Call: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:11 Function Call: @main( (temp structure{temp 4-component vector of float Pos})
0:11 Constant: 0:11 Constant:
0:11 0 (const int) 0:11 0 (const int)
0:? Linker Objects 0:? Linker Objects
...@@ -113,14 +113,14 @@ Shader version: 450 ...@@ -113,14 +113,14 @@ Shader version: 450
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 57 // Id's are bound by 51
Capability Shader Capability Shader
Capability Sampled1D Capability Sampled1D
Capability ImageQuery Capability ImageQuery
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 48 56 EntryPoint Vertex 4 "main" 42 50
Name 4 "main" Name 4 "main"
Name 8 "VS_OUTPUT" Name 8 "VS_OUTPUT"
MemberName 8(VS_OUTPUT) 0 "Pos" MemberName 8(VS_OUTPUT) 0 "Pos"
...@@ -130,22 +130,19 @@ Shader version: 450 ...@@ -130,22 +130,19 @@ Shader version: 450
Name 21 "WidthU" Name 21 "WidthU"
Name 23 "sizeQueryTemp" Name 23 "sizeQueryTemp"
Name 28 "NumberOfLevelsU" Name 28 "NumberOfLevelsU"
Name 31 "VS_OUTPUT" Name 32 "vsout"
MemberName 31(VS_OUTPUT) 0 "Pos" Name 42 "@entryPointOutput_Pos"
Name 33 "vsout" Name 47 "g_sSamp"
Name 48 "@entryPointOutput_Pos" Name 48 "PerVertex_out"
Name 53 "g_sSamp" MemberName 48(PerVertex_out) 0 "@entryPointOutput_Pos"
Name 54 "PerVertex_out" Name 50 "PerVertex_out"
MemberName 54(PerVertex_out) 0 "@entryPointOutput_Pos"
Name 56 "PerVertex_out"
MemberDecorate 8(VS_OUTPUT) 0 BuiltIn Position
Decorate 17(g_tTex1df4) DescriptorSet 0 Decorate 17(g_tTex1df4) DescriptorSet 0
Decorate 17(g_tTex1df4) Binding 0 Decorate 17(g_tTex1df4) Binding 0
Decorate 48(@entryPointOutput_Pos) BuiltIn Position Decorate 42(@entryPointOutput_Pos) BuiltIn Position
Decorate 53(g_sSamp) DescriptorSet 0 Decorate 47(g_sSamp) DescriptorSet 0
Decorate 53(g_sSamp) Binding 0 Decorate 47(g_sSamp) Binding 0
MemberDecorate 54(PerVertex_out) 0 BuiltIn Position MemberDecorate 48(PerVertex_out) 0 BuiltIn Position
Decorate 54(PerVertex_out) Block Decorate 48(PerVertex_out) Block
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
...@@ -159,26 +156,24 @@ Shader version: 450 ...@@ -159,26 +156,24 @@ Shader version: 450
17(g_tTex1df4): 16(ptr) Variable UniformConstant 17(g_tTex1df4): 16(ptr) Variable UniformConstant
19: TypeInt 32 1 19: TypeInt 32 1
25: 12(int) Constant 6 25: 12(int) Constant 6
31(VS_OUTPUT): TypeStruct 7(fvec4) 31: TypePointer Function 8(VS_OUTPUT)
32: TypePointer Function 31(VS_OUTPUT) 33: 19(int) Constant 0
34: 19(int) Constant 0 34: 6(float) Constant 0
35: 6(float) Constant 0 35: 7(fvec4) ConstantComposite 34 34 34 34
36: 7(fvec4) ConstantComposite 35 35 35 35 36: TypePointer Function 7(fvec4)
37: TypePointer Function 7(fvec4) 41: TypePointer Output 7(fvec4)
40: TypePointer Function 8(VS_OUTPUT) 42(@entryPointOutput_Pos): 41(ptr) Variable Output
47: TypePointer Output 7(fvec4) 45: TypeSampler
48(@entryPointOutput_Pos): 47(ptr) Variable Output 46: TypePointer UniformConstant 45
51: TypeSampler 47(g_sSamp): 46(ptr) Variable UniformConstant
52: TypePointer UniformConstant 51 48(PerVertex_out): TypeStruct 7(fvec4)
53(g_sSamp): 52(ptr) Variable UniformConstant 49: TypePointer Output 48(PerVertex_out)
54(PerVertex_out): TypeStruct 7(fvec4) 50(PerVertex_out): 49(ptr) Variable Output
55: TypePointer Output 54(PerVertex_out)
56(PerVertex_out): 55(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
49:8(VS_OUTPUT) FunctionCall 10(@main() 43:8(VS_OUTPUT) FunctionCall 10(@main()
50: 7(fvec4) CompositeExtract 49 0 44: 7(fvec4) CompositeExtract 43 0
Store 48(@entryPointOutput_Pos) 50 Store 42(@entryPointOutput_Pos) 44
Return Return
FunctionEnd FunctionEnd
10(@main():8(VS_OUTPUT) Function None 9 10(@main():8(VS_OUTPUT) Function None 9
...@@ -187,8 +182,7 @@ Shader version: 450 ...@@ -187,8 +182,7 @@ Shader version: 450
21(WidthU): 13(ptr) Variable Function 21(WidthU): 13(ptr) Variable Function
23(sizeQueryTemp): 13(ptr) Variable Function 23(sizeQueryTemp): 13(ptr) Variable Function
28(NumberOfLevelsU): 13(ptr) Variable Function 28(NumberOfLevelsU): 13(ptr) Variable Function
33(vsout): 32(ptr) Variable Function 32(vsout): 31(ptr) Variable Function
41: 40(ptr) Variable Function
18: 15 Load 17(g_tTex1df4) 18: 15 Load 17(g_tTex1df4)
20: 19(int) ImageQuerySize 18 20: 19(int) ImageQuerySize 18
Store 14(sizeQueryTemp) 20 Store 14(sizeQueryTemp) 20
...@@ -202,12 +196,8 @@ Shader version: 450 ...@@ -202,12 +196,8 @@ Shader version: 450
29: 15 Load 17(g_tTex1df4) 29: 15 Load 17(g_tTex1df4)
30: 19(int) ImageQueryLevels 29 30: 19(int) ImageQueryLevels 29
Store 28(NumberOfLevelsU) 30 Store 28(NumberOfLevelsU) 30
38: 37(ptr) AccessChain 33(vsout) 34 37: 36(ptr) AccessChain 32(vsout) 33
Store 38 36 Store 37 35
39:31(VS_OUTPUT) Load 33(vsout) 38:8(VS_OUTPUT) Load 32(vsout)
42: 7(fvec4) CompositeExtract 39 0 ReturnValue 38
43: 37(ptr) AccessChain 41 34
Store 43 42
44:8(VS_OUTPUT) Load 41
ReturnValue 44
FunctionEnd FunctionEnd
...@@ -20,8 +20,8 @@ gl_FragCoord origin is upper left ...@@ -20,8 +20,8 @@ gl_FragCoord origin is upper left
0:11 -1.000000 0:11 -1.000000
0:15 Function Definition: @main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:15 Function Definition: @main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth})
0:15 Function Parameters: 0:15 Function Parameters:
0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:15 'inpos' (in 4-component vector of float)
0:15 'sampleMask' (out int SampleMaskIn) 0:15 'sampleMask' (out int)
0:? Sequence 0:? Sequence
0:18 Sequence 0:18 Sequence
0:18 move second child to first child (temp float) 0:18 move second child to first child (temp float)
...@@ -53,7 +53,7 @@ gl_FragCoord origin is upper left ...@@ -53,7 +53,7 @@ gl_FragCoord origin is upper left
0:22 Constant: 0:22 Constant:
0:22 1 (const int) 0:22 1 (const int)
0:22 direct index (temp float) 0:22 direct index (temp float)
0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 'inpos' (in 4-component vector of float)
0:22 Constant: 0:22 Constant:
0:22 3 (const int) 0:22 3 (const int)
0:24 Branch: Return with expression 0:24 Branch: Return with expression
...@@ -116,8 +116,8 @@ gl_FragCoord origin is upper left ...@@ -116,8 +116,8 @@ gl_FragCoord origin is upper left
0:11 -1.000000 0:11 -1.000000
0:15 Function Definition: @main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:15 Function Definition: @main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth})
0:15 Function Parameters: 0:15 Function Parameters:
0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:15 'inpos' (in 4-component vector of float)
0:15 'sampleMask' (out int SampleMaskIn) 0:15 'sampleMask' (out int)
0:? Sequence 0:? Sequence
0:18 Sequence 0:18 Sequence
0:18 move second child to first child (temp float) 0:18 move second child to first child (temp float)
...@@ -149,7 +149,7 @@ gl_FragCoord origin is upper left ...@@ -149,7 +149,7 @@ gl_FragCoord origin is upper left
0:22 Constant: 0:22 Constant:
0:22 1 (const int) 0:22 1 (const int)
0:22 direct index (temp float) 0:22 direct index (temp float)
0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 'inpos' (in 4-component vector of float)
0:22 Constant: 0:22 Constant:
0:22 3 (const int) 0:22 3 (const int)
0:24 Branch: Return with expression 0:24 Branch: Return with expression
......
...@@ -10,13 +10,13 @@ Shader version: 450 ...@@ -10,13 +10,13 @@ Shader version: 450
0:5 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:5 'Position' (layout(rgba32f ) uniform samplerBuffer)
0:5 Convert uint to int (temp int) 0:5 Convert uint to int (temp int)
0:5 'Index' (in uint) 0:5 'Index' (in uint)
0:9 Function Definition: @RealEntrypoint(u1; (temp 4-component vector of float Position) 0:9 Function Definition: @RealEntrypoint(u1; (temp 4-component vector of float)
0:9 Function Parameters: 0:9 Function Parameters:
0:9 'Index' (in uint VertexIndex) 0:9 'Index' (in uint)
0:? Sequence 0:? Sequence
0:10 Branch: Return with expression 0:10 Branch: Return with expression
0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float) 0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float)
0:10 'Index' (in uint VertexIndex) 0:10 'Index' (in uint)
0:9 Function Definition: RealEntrypoint( (temp void) 0:9 Function Definition: RealEntrypoint( (temp void)
0:9 Function Parameters: 0:9 Function Parameters:
0:? Sequence 0:? Sequence
...@@ -25,7 +25,7 @@ Shader version: 450 ...@@ -25,7 +25,7 @@ Shader version: 450
0:? 'Index' (in uint VertexIndex) 0:? 'Index' (in uint VertexIndex)
0:9 move second child to first child (temp 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (out 4-component vector of float Position) 0:? '@entryPointOutput' (out 4-component vector of float Position)
0:9 Function Call: @RealEntrypoint(u1; (temp 4-component vector of float Position) 0:9 Function Call: @RealEntrypoint(u1; (temp 4-component vector of float)
0:? 'Index' (temp uint) 0:? 'Index' (temp uint)
0:? Linker Objects 0:? Linker Objects
0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:? 'Position' (layout(rgba32f ) uniform samplerBuffer)
...@@ -47,13 +47,13 @@ Shader version: 450 ...@@ -47,13 +47,13 @@ Shader version: 450
0:5 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:5 'Position' (layout(rgba32f ) uniform samplerBuffer)
0:5 Convert uint to int (temp int) 0:5 Convert uint to int (temp int)
0:5 'Index' (in uint) 0:5 'Index' (in uint)
0:9 Function Definition: @RealEntrypoint(u1; (temp 4-component vector of float Position) 0:9 Function Definition: @RealEntrypoint(u1; (temp 4-component vector of float)
0:9 Function Parameters: 0:9 Function Parameters:
0:9 'Index' (in uint VertexIndex) 0:9 'Index' (in uint)
0:? Sequence 0:? Sequence
0:10 Branch: Return with expression 0:10 Branch: Return with expression
0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float) 0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float)
0:10 'Index' (in uint VertexIndex) 0:10 'Index' (in uint)
0:9 Function Definition: RealEntrypoint( (temp void) 0:9 Function Definition: RealEntrypoint( (temp void)
0:9 Function Parameters: 0:9 Function Parameters:
0:? Sequence 0:? Sequence
...@@ -62,7 +62,7 @@ Shader version: 450 ...@@ -62,7 +62,7 @@ Shader version: 450
0:? 'Index' (in uint VertexIndex) 0:? 'Index' (in uint VertexIndex)
0:9 move second child to first child (temp 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (out 4-component vector of float Position) 0:? '@entryPointOutput' (out 4-component vector of float Position)
0:9 Function Call: @RealEntrypoint(u1; (temp 4-component vector of float Position) 0:9 Function Call: @RealEntrypoint(u1; (temp 4-component vector of float)
0:? 'Index' (temp uint) 0:? 'Index' (temp uint)
0:? Linker Objects 0:? Linker Objects
0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:? 'Position' (layout(rgba32f ) uniform samplerBuffer)
......
...@@ -7,7 +7,7 @@ local_size = (4, 4, 2) ...@@ -7,7 +7,7 @@ local_size = (4, 4, 2)
0:4 'tid' (in 3-component vector of uint) 0:4 'tid' (in 3-component vector of uint)
0:9 Function Definition: @main_aux1(vu3; (temp void) 0:9 Function Definition: @main_aux1(vu3; (temp void)
0:9 Function Parameters: 0:9 Function Parameters:
0:9 'tid' (in 3-component vector of uint GlobalInvocationID) 0:9 'tid' (in 3-component vector of uint)
0:9 Function Definition: main_aux1( (temp void) 0:9 Function Definition: main_aux1( (temp void)
0:9 Function Parameters: 0:9 Function Parameters:
0:? Sequence 0:? Sequence
...@@ -31,7 +31,7 @@ local_size = (4, 4, 2) ...@@ -31,7 +31,7 @@ local_size = (4, 4, 2)
0:4 'tid' (in 3-component vector of uint) 0:4 'tid' (in 3-component vector of uint)
0:9 Function Definition: @main_aux1(vu3; (temp void) 0:9 Function Definition: @main_aux1(vu3; (temp void)
0:9 Function Parameters: 0:9 Function Parameters:
0:9 'tid' (in 3-component vector of uint GlobalInvocationID) 0:9 'tid' (in 3-component vector of uint)
0:9 Function Definition: main_aux1( (temp void) 0:9 Function Definition: main_aux1( (temp void)
0:9 Function Parameters: 0:9 Function Parameters:
0:? Sequence 0:? Sequence
......
hlsl.samplegrad.basic.dx10.vert hlsl.samplegrad.basic.dx10.vert
Shader version: 450 Shader version: 450
0:? Sequence 0:? Sequence
0:27 Function Definition: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:27 Function Definition: @main( (temp structure{temp 4-component vector of float Pos})
0:27 Function Parameters: 0:27 Function Parameters:
0:? Sequence 0:? Sequence
0:30 Sequence 0:30 Sequence
...@@ -223,8 +223,8 @@ Shader version: 450 ...@@ -223,8 +223,8 @@ Shader version: 450
0:27 Sequence 0:27 Sequence
0:27 move second child to first child (temp 4-component vector of float) 0:27 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput_Pos' (out 4-component vector of float Position) 0:? '@entryPointOutput_Pos' (out 4-component vector of float Position)
0:27 Pos: direct index for structure (temp 4-component vector of float Position) 0:27 Pos: direct index for structure (temp 4-component vector of float)
0:27 Function Call: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:27 Function Call: @main( (temp structure{temp 4-component vector of float Pos})
0:27 Constant: 0:27 Constant:
0:27 0 (const int) 0:27 0 (const int)
0:? Linker Objects 0:? Linker Objects
...@@ -250,7 +250,7 @@ Linked vertex stage: ...@@ -250,7 +250,7 @@ Linked vertex stage:
Shader version: 450 Shader version: 450
0:? Sequence 0:? Sequence
0:27 Function Definition: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:27 Function Definition: @main( (temp structure{temp 4-component vector of float Pos})
0:27 Function Parameters: 0:27 Function Parameters:
0:? Sequence 0:? Sequence
0:30 Sequence 0:30 Sequence
...@@ -472,8 +472,8 @@ Shader version: 450 ...@@ -472,8 +472,8 @@ Shader version: 450
0:27 Sequence 0:27 Sequence
0:27 move second child to first child (temp 4-component vector of float) 0:27 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput_Pos' (out 4-component vector of float Position) 0:? '@entryPointOutput_Pos' (out 4-component vector of float Position)
0:27 Pos: direct index for structure (temp 4-component vector of float Position) 0:27 Pos: direct index for structure (temp 4-component vector of float)
0:27 Function Call: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:27 Function Call: @main( (temp structure{temp 4-component vector of float Pos})
0:27 Constant: 0:27 Constant:
0:27 0 (const int) 0:27 0 (const int)
0:? Linker Objects 0:? Linker Objects
...@@ -495,13 +495,13 @@ Shader version: 450 ...@@ -495,13 +495,13 @@ Shader version: 450
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 175 // Id's are bound by 169
Capability Shader Capability Shader
Capability Sampled1D Capability Sampled1D
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 168 174 EntryPoint Vertex 4 "main" 162 168
Name 4 "main" Name 4 "main"
Name 8 "VS_OUTPUT" Name 8 "VS_OUTPUT"
MemberName 8(VS_OUTPUT) 0 "Pos" MemberName 8(VS_OUTPUT) 0 "Pos"
...@@ -531,15 +531,12 @@ Shader version: 450 ...@@ -531,15 +531,12 @@ Shader version: 450
Name 137 "g_tTexcdi4" Name 137 "g_tTexcdi4"
Name 143 "txval42" Name 143 "txval42"
Name 146 "g_tTexcdu4" Name 146 "g_tTexcdu4"
Name 152 "VS_OUTPUT" Name 153 "vsout"
MemberName 152(VS_OUTPUT) 0 "Pos" Name 162 "@entryPointOutput_Pos"
Name 154 "vsout" Name 165 "g_tTex1df4a"
Name 168 "@entryPointOutput_Pos" Name 166 "PerVertex_out"
Name 171 "g_tTex1df4a" MemberName 166(PerVertex_out) 0 "@entryPointOutput_Pos"
Name 172 "PerVertex_out" Name 168 "PerVertex_out"
MemberName 172(PerVertex_out) 0 "@entryPointOutput_Pos"
Name 174 "PerVertex_out"
MemberDecorate 8(VS_OUTPUT) 0 BuiltIn Position
Decorate 16(g_tTex1df4) DescriptorSet 0 Decorate 16(g_tTex1df4) DescriptorSet 0
Decorate 16(g_tTex1df4) Binding 0 Decorate 16(g_tTex1df4) Binding 0
Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) DescriptorSet 0
...@@ -555,11 +552,11 @@ Shader version: 450 ...@@ -555,11 +552,11 @@ Shader version: 450
Decorate 128(g_tTexcdf4) DescriptorSet 0 Decorate 128(g_tTexcdf4) DescriptorSet 0
Decorate 137(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdi4) DescriptorSet 0
Decorate 146(g_tTexcdu4) DescriptorSet 0 Decorate 146(g_tTexcdu4) DescriptorSet 0
Decorate 168(@entryPointOutput_Pos) BuiltIn Position Decorate 162(@entryPointOutput_Pos) BuiltIn Position
Decorate 171(g_tTex1df4a) DescriptorSet 0 Decorate 165(g_tTex1df4a) DescriptorSet 0
Decorate 171(g_tTex1df4a) Binding 1 Decorate 165(g_tTex1df4a) Binding 1
MemberDecorate 172(PerVertex_out) 0 BuiltIn Position MemberDecorate 166(PerVertex_out) 0 BuiltIn Position
Decorate 172(PerVertex_out) Block Decorate 166(PerVertex_out) Block
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
...@@ -646,23 +643,21 @@ Shader version: 450 ...@@ -646,23 +643,21 @@ Shader version: 450
145: TypePointer UniformConstant 144 145: TypePointer UniformConstant 144
146(g_tTexcdu4): 145(ptr) Variable UniformConstant 146(g_tTexcdu4): 145(ptr) Variable UniformConstant
149: TypeSampledImage 144 149: TypeSampledImage 144
152(VS_OUTPUT): TypeStruct 7(fvec4) 152: TypePointer Function 8(VS_OUTPUT)
153: TypePointer Function 152(VS_OUTPUT) 154: 28(int) Constant 0
155: 28(int) Constant 0 155: 6(float) Constant 0
156: 6(float) Constant 0 156: 7(fvec4) ConstantComposite 155 155 155 155
157: 7(fvec4) ConstantComposite 156 156 156 156 161: TypePointer Output 7(fvec4)
160: TypePointer Function 8(VS_OUTPUT) 162(@entryPointOutput_Pos): 161(ptr) Variable Output
167: TypePointer Output 7(fvec4) 165(g_tTex1df4a): 15(ptr) Variable UniformConstant
168(@entryPointOutput_Pos): 167(ptr) Variable Output 166(PerVertex_out): TypeStruct 7(fvec4)
171(g_tTex1df4a): 15(ptr) Variable UniformConstant 167: TypePointer Output 166(PerVertex_out)
172(PerVertex_out): TypeStruct 7(fvec4) 168(PerVertex_out): 167(ptr) Variable Output
173: TypePointer Output 172(PerVertex_out)
174(PerVertex_out): 173(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
169:8(VS_OUTPUT) FunctionCall 10(@main() 163:8(VS_OUTPUT) FunctionCall 10(@main()
170: 7(fvec4) CompositeExtract 169 0 164: 7(fvec4) CompositeExtract 163 0
Store 168(@entryPointOutput_Pos) 170 Store 162(@entryPointOutput_Pos) 164
Return Return
FunctionEnd FunctionEnd
10(@main():8(VS_OUTPUT) Function None 9 10(@main():8(VS_OUTPUT) Function None 9
...@@ -679,8 +674,7 @@ Shader version: 450 ...@@ -679,8 +674,7 @@ Shader version: 450
125(txval40): 12(ptr) Variable Function 125(txval40): 12(ptr) Variable Function
134(txval41): 30(ptr) Variable Function 134(txval41): 30(ptr) Variable Function
143(txval42): 43(ptr) Variable Function 143(txval42): 43(ptr) Variable Function
154(vsout): 153(ptr) Variable Function 153(vsout): 152(ptr) Variable Function
161: 160(ptr) Variable Function
17: 14 Load 16(g_tTex1df4) 17: 14 Load 16(g_tTex1df4)
21: 18 Load 20(g_sSamp) 21: 18 Load 20(g_sSamp)
23: 22 SampledImage 17 21 23: 22 SampledImage 17 21
...@@ -741,12 +735,8 @@ Shader version: 450 ...@@ -741,12 +735,8 @@ Shader version: 450
150: 149 SampledImage 147 148 150: 149 SampledImage 147 148
151: 42(ivec4) ImageSampleExplicitLod 150 123 Grad 100 100 151: 42(ivec4) ImageSampleExplicitLod 150 123 Grad 100 100
Store 143(txval42) 151 Store 143(txval42) 151
158: 12(ptr) AccessChain 154(vsout) 155 157: 12(ptr) AccessChain 153(vsout) 154
Store 158 157 Store 157 156
159:152(VS_OUTPUT) Load 154(vsout) 158:8(VS_OUTPUT) Load 153(vsout)
162: 7(fvec4) CompositeExtract 159 0 ReturnValue 158
163: 12(ptr) AccessChain 161 155
Store 163 162
164:8(VS_OUTPUT) Load 161
ReturnValue 164
FunctionEnd FunctionEnd
hlsl.samplelevel.basic.dx10.vert hlsl.samplelevel.basic.dx10.vert
Shader version: 450 Shader version: 450
0:? Sequence 0:? Sequence
0:27 Function Definition: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:27 Function Definition: @main( (temp structure{temp 4-component vector of float Pos})
0:27 Function Parameters: 0:27 Function Parameters:
0:? Sequence 0:? Sequence
0:30 Sequence 0:30 Sequence
...@@ -169,8 +169,8 @@ Shader version: 450 ...@@ -169,8 +169,8 @@ Shader version: 450
0:27 Sequence 0:27 Sequence
0:27 move second child to first child (temp 4-component vector of float) 0:27 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput_Pos' (out 4-component vector of float Position) 0:? '@entryPointOutput_Pos' (out 4-component vector of float Position)
0:27 Pos: direct index for structure (temp 4-component vector of float Position) 0:27 Pos: direct index for structure (temp 4-component vector of float)
0:27 Function Call: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:27 Function Call: @main( (temp structure{temp 4-component vector of float Pos})
0:27 Constant: 0:27 Constant:
0:27 0 (const int) 0:27 0 (const int)
0:? Linker Objects 0:? Linker Objects
...@@ -196,7 +196,7 @@ Linked vertex stage: ...@@ -196,7 +196,7 @@ Linked vertex stage:
Shader version: 450 Shader version: 450
0:? Sequence 0:? Sequence
0:27 Function Definition: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:27 Function Definition: @main( (temp structure{temp 4-component vector of float Pos})
0:27 Function Parameters: 0:27 Function Parameters:
0:? Sequence 0:? Sequence
0:30 Sequence 0:30 Sequence
...@@ -364,8 +364,8 @@ Shader version: 450 ...@@ -364,8 +364,8 @@ Shader version: 450
0:27 Sequence 0:27 Sequence
0:27 move second child to first child (temp 4-component vector of float) 0:27 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput_Pos' (out 4-component vector of float Position) 0:? '@entryPointOutput_Pos' (out 4-component vector of float Position)
0:27 Pos: direct index for structure (temp 4-component vector of float Position) 0:27 Pos: direct index for structure (temp 4-component vector of float)
0:27 Function Call: @main( (temp structure{temp 4-component vector of float Position Pos}) 0:27 Function Call: @main( (temp structure{temp 4-component vector of float Pos})
0:27 Constant: 0:27 Constant:
0:27 0 (const int) 0:27 0 (const int)
0:? Linker Objects 0:? Linker Objects
...@@ -387,13 +387,13 @@ Shader version: 450 ...@@ -387,13 +387,13 @@ Shader version: 450
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 171 // Id's are bound by 165
Capability Shader Capability Shader
Capability Sampled1D Capability Sampled1D
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 164 170 EntryPoint Vertex 4 "main" 158 164
Name 4 "main" Name 4 "main"
Name 8 "VS_OUTPUT" Name 8 "VS_OUTPUT"
MemberName 8(VS_OUTPUT) 0 "Pos" MemberName 8(VS_OUTPUT) 0 "Pos"
...@@ -423,15 +423,12 @@ Shader version: 450 ...@@ -423,15 +423,12 @@ Shader version: 450
Name 133 "g_tTexcdi4" Name 133 "g_tTexcdi4"
Name 139 "txval42" Name 139 "txval42"
Name 142 "g_tTexcdu4" Name 142 "g_tTexcdu4"
Name 148 "VS_OUTPUT" Name 149 "vsout"
MemberName 148(VS_OUTPUT) 0 "Pos" Name 158 "@entryPointOutput_Pos"
Name 150 "vsout" Name 161 "g_tTex1df4a"
Name 164 "@entryPointOutput_Pos" Name 162 "PerVertex_out"
Name 167 "g_tTex1df4a" MemberName 162(PerVertex_out) 0 "@entryPointOutput_Pos"
Name 168 "PerVertex_out" Name 164 "PerVertex_out"
MemberName 168(PerVertex_out) 0 "@entryPointOutput_Pos"
Name 170 "PerVertex_out"
MemberDecorate 8(VS_OUTPUT) 0 BuiltIn Position
Decorate 16(g_tTex1df4) DescriptorSet 0 Decorate 16(g_tTex1df4) DescriptorSet 0
Decorate 16(g_tTex1df4) Binding 0 Decorate 16(g_tTex1df4) Binding 0
Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) DescriptorSet 0
...@@ -447,11 +444,11 @@ Shader version: 450 ...@@ -447,11 +444,11 @@ Shader version: 450
Decorate 124(g_tTexcdf4) DescriptorSet 0 Decorate 124(g_tTexcdf4) DescriptorSet 0
Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 133(g_tTexcdi4) DescriptorSet 0
Decorate 142(g_tTexcdu4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0
Decorate 164(@entryPointOutput_Pos) BuiltIn Position Decorate 158(@entryPointOutput_Pos) BuiltIn Position
Decorate 167(g_tTex1df4a) DescriptorSet 0 Decorate 161(g_tTex1df4a) DescriptorSet 0
Decorate 167(g_tTex1df4a) Binding 1 Decorate 161(g_tTex1df4a) Binding 1
MemberDecorate 168(PerVertex_out) 0 BuiltIn Position MemberDecorate 162(PerVertex_out) 0 BuiltIn Position
Decorate 168(PerVertex_out) Block Decorate 162(PerVertex_out) Block
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
...@@ -534,23 +531,21 @@ Shader version: 450 ...@@ -534,23 +531,21 @@ Shader version: 450
141: TypePointer UniformConstant 140 141: TypePointer UniformConstant 140
142(g_tTexcdu4): 141(ptr) Variable UniformConstant 142(g_tTexcdu4): 141(ptr) Variable UniformConstant
145: TypeSampledImage 140 145: TypeSampledImage 140
148(VS_OUTPUT): TypeStruct 7(fvec4) 148: TypePointer Function 8(VS_OUTPUT)
149: TypePointer Function 148(VS_OUTPUT) 150: 27(int) Constant 0
151: 27(int) Constant 0 151: 6(float) Constant 0
152: 6(float) Constant 0 152: 7(fvec4) ConstantComposite 151 151 151 151
153: 7(fvec4) ConstantComposite 152 152 152 152 157: TypePointer Output 7(fvec4)
156: TypePointer Function 8(VS_OUTPUT) 158(@entryPointOutput_Pos): 157(ptr) Variable Output
163: TypePointer Output 7(fvec4) 161(g_tTex1df4a): 15(ptr) Variable UniformConstant
164(@entryPointOutput_Pos): 163(ptr) Variable Output 162(PerVertex_out): TypeStruct 7(fvec4)
167(g_tTex1df4a): 15(ptr) Variable UniformConstant 163: TypePointer Output 162(PerVertex_out)
168(PerVertex_out): TypeStruct 7(fvec4) 164(PerVertex_out): 163(ptr) Variable Output
169: TypePointer Output 168(PerVertex_out)
170(PerVertex_out): 169(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
165:8(VS_OUTPUT) FunctionCall 10(@main() 159:8(VS_OUTPUT) FunctionCall 10(@main()
166: 7(fvec4) CompositeExtract 165 0 160: 7(fvec4) CompositeExtract 159 0
Store 164(@entryPointOutput_Pos) 166 Store 158(@entryPointOutput_Pos) 160
Return Return
FunctionEnd FunctionEnd
10(@main():8(VS_OUTPUT) Function None 9 10(@main():8(VS_OUTPUT) Function None 9
...@@ -567,8 +562,7 @@ Shader version: 450 ...@@ -567,8 +562,7 @@ Shader version: 450
121(txval40): 12(ptr) Variable Function 121(txval40): 12(ptr) Variable Function
130(txval41): 29(ptr) Variable Function 130(txval41): 29(ptr) Variable Function
139(txval42): 42(ptr) Variable Function 139(txval42): 42(ptr) Variable Function
150(vsout): 149(ptr) Variable Function 149(vsout): 148(ptr) Variable Function
157: 156(ptr) Variable Function
17: 14 Load 16(g_tTex1df4) 17: 14 Load 16(g_tTex1df4)
21: 18 Load 20(g_sSamp) 21: 18 Load 20(g_sSamp)
23: 22 SampledImage 17 21 23: 22 SampledImage 17 21
...@@ -629,12 +623,8 @@ Shader version: 450 ...@@ -629,12 +623,8 @@ Shader version: 450
146: 145 SampledImage 143 144 146: 145 SampledImage 143 144
147: 41(ivec4) ImageSampleExplicitLod 146 119 Lod 25 147: 41(ivec4) ImageSampleExplicitLod 146 119 Lod 25
Store 139(txval42) 147 Store 139(txval42) 147
154: 12(ptr) AccessChain 150(vsout) 151 153: 12(ptr) AccessChain 149(vsout) 150
Store 154 153 Store 153 152
155:148(VS_OUTPUT) Load 150(vsout) 154:8(VS_OUTPUT) Load 149(vsout)
158: 7(fvec4) CompositeExtract 155 0 ReturnValue 154
159: 12(ptr) AccessChain 157 151
Store 159 158
160:8(VS_OUTPUT) Load 157
ReturnValue 160
FunctionEnd FunctionEnd
hlsl.structin.vert hlsl.structin.vert
Shader version: 450 Shader version: 450
0:? Sequence 0:? Sequence
0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 Function Parameters: 0:8 Function Parameters:
0:8 'd' (in 4-component vector of float) 0:8 'd' (in 4-component vector of float)
0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
...@@ -86,7 +86,7 @@ Shader version: 450 ...@@ -86,7 +86,7 @@ Shader version: 450
0:8 Sequence 0:8 Sequence
0:8 move second child to first child (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 move second child to first child (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 'flattenTemp' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 'flattenTemp' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'd' (temp 4-component vector of float) 0:? 'd' (temp 4-component vector of float)
0:? 'vi' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:? 'vi' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'e' (temp 4-component vector of float) 0:? 'e' (temp 4-component vector of float)
...@@ -134,7 +134,7 @@ Linked vertex stage: ...@@ -134,7 +134,7 @@ Linked vertex stage:
Shader version: 450 Shader version: 450
0:? Sequence 0:? Sequence
0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 Function Parameters: 0:8 Function Parameters:
0:8 'd' (in 4-component vector of float) 0:8 'd' (in 4-component vector of float)
0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
...@@ -219,7 +219,7 @@ Shader version: 450 ...@@ -219,7 +219,7 @@ Shader version: 450
0:8 Sequence 0:8 Sequence
0:8 move second child to first child (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 move second child to first child (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 'flattenTemp' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 'flattenTemp' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'd' (temp 4-component vector of float) 0:? 'd' (temp 4-component vector of float)
0:? 'vi' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:? 'vi' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'e' (temp 4-component vector of float) 0:? 'e' (temp 4-component vector of float)
......
...@@ -2,5 +2,5 @@ ...@@ -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.1780" #define GLSLANG_REVISION "Overload400-PrecQual.1783"
#define GLSLANG_DATE "01-Feb-2017" #define GLSLANG_DATE "01-Feb-2017"
...@@ -1094,8 +1094,8 @@ int HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable, ...@@ -1094,8 +1094,8 @@ int HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable,
// Add a single flattened member to the flattened data being tracked for the composite // Add a single flattened member to the flattened data being tracked for the composite
// Returns true for the final flattening level. // Returns true for the final flattening level.
int HlslParseContext::addFlattenedMember(const TSourceLoc& loc, int HlslParseContext::addFlattenedMember(const TSourceLoc& loc,
const TVariable& variable, const TType& type, TFlattenData& flattenData, const TVariable& variable, const TType& type, TFlattenData& flattenData,
const TString& memberName, bool track) const TString& memberName, bool track)
{ {
if (isFinalFlattening(type)) { if (isFinalFlattening(type)) {
// This is as far as we flatten. Insert the variable. // This is as far as we flatten. Insert the variable.
...@@ -1121,12 +1121,9 @@ int HlslParseContext::addFlattenedMember(const TSourceLoc& loc, ...@@ -1121,12 +1121,9 @@ int HlslParseContext::addFlattenedMember(const TSourceLoc& loc,
// Figure out the mapping between an aggregate's top members and an // Figure out the mapping between an aggregate's top members and an
// equivalent set of individual variables. // equivalent set of individual variables.
// //
// N.B. Erases memory of I/O-related annotations in the original type's member,
// effecting a transfer of this information to the flattened variable form.
//
// Assumes shouldFlatten() or equivalent was called first. // Assumes shouldFlatten() or equivalent was called first.
int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType& type, int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType& type,
TFlattenData& flattenData, TString name) TFlattenData& flattenData, TString name)
{ {
assert(type.isStruct()); assert(type.isStruct());
...@@ -1143,9 +1140,6 @@ int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& vari ...@@ -1143,9 +1140,6 @@ int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& vari
const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, memberName, false); const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, memberName, false);
flattenData.offsets[pos++] = mpos; flattenData.offsets[pos++] = mpos;
// N.B. Erase I/O-related annotations from the source-type member.
dereferencedType.getQualifier().makeTemporary();
} }
return start; return start;
...@@ -1643,6 +1637,8 @@ TIntermNode* HlslParseContext::transformEntryPoint(const TSourceLoc& loc, TFunct ...@@ -1643,6 +1637,8 @@ TIntermNode* HlslParseContext::transformEntryPoint(const TSourceLoc& loc, TFunct
TVector<TVariable*> inputs; TVector<TVariable*> inputs;
TVector<TVariable*> outputs; TVector<TVariable*> outputs;
remapEntryPointIO(userFunction, entryPointOutput, inputs, outputs); remapEntryPointIO(userFunction, entryPointOutput, inputs, outputs);
// Once the parameters are moved to shader I/O, they should be non-I/O
remapNonEntryPointIO(userFunction);
// Further this return/in/out transform by flattening, splitting, and assigning locations // Further this return/in/out transform by flattening, splitting, and assigning locations
const auto makeVariableInOut = [&](TVariable& variable) { const auto makeVariableInOut = [&](TVariable& variable) {
...@@ -1805,11 +1801,11 @@ void HlslParseContext::remapNonEntryPointIO(TFunction& function) ...@@ -1805,11 +1801,11 @@ void HlslParseContext::remapNonEntryPointIO(TFunction& function)
{ {
// return value // return value
if (function.getType().getBasicType() != EbtVoid) if (function.getType().getBasicType() != EbtVoid)
makeNonIoType(&function.getWritableType()); makeTypeNonIo(&function.getWritableType());
// parameters // parameters
for (int i = 0; i < function.getParamCount(); i++) for (int i = 0; i < function.getParamCount(); i++)
makeNonIoType(function[i].type); makeTypeNonIo(function[i].type);
} }
// Handle function returns, including type conversions to the function return type // Handle function returns, including type conversions to the function return type
...@@ -5391,20 +5387,20 @@ void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier ...@@ -5391,20 +5387,20 @@ void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier
error(loc, "name already defined", "typedef", identifier.c_str()); error(loc, "name already defined", "typedef", identifier.c_str());
} }
// Create a non-IO type from an IO type. If there is no IO data, this // Create a non-IO type from an IO type. If there is no IO data,
// returns the input type unmodified. Otherwise, it modifies the type // the input type is unmodified. Otherwise, it modifies the type
// in place, and returns a pointer to it. // in place.
TType* HlslParseContext::makeNonIoType(TType* type) void HlslParseContext::makeTypeNonIo(TType* type)
{ {
// early out if there's nothing to do: prevents introduction of unneeded types. // early out if there's nothing to do: prevents introduction of unneeded types.
if (!type->hasIoData()) if (!type->hasIoData())
return type; return;
type->getQualifier().makeNonIo(); // Sanitize the qualifier. type->getQualifier().makeNonIo(); // Sanitize the qualifier.
// Nothing more to do if there is no deep structure. // Nothing more to do if there is no deep structure.
if (!type->isStruct()) if (!type->isStruct())
return type; return;
const auto typeIter = nonIoTypeMap.find(type->getStruct()); const auto typeIter = nonIoTypeMap.find(type->getStruct());
...@@ -5426,8 +5422,6 @@ TType* HlslParseContext::makeNonIoType(TType* type) ...@@ -5426,8 +5422,6 @@ TType* HlslParseContext::makeNonIoType(TType* type)
nonIoTypeMap[type->getStruct()] = nonIoType.getWritableStruct(); nonIoTypeMap[type->getStruct()] = nonIoType.getWritableStruct();
type->shallowCopy(nonIoType); // we modify the input type in place type->shallowCopy(nonIoType); // we modify the input type in place
} }
return type;
} }
// //
...@@ -5460,7 +5454,7 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i ...@@ -5460,7 +5454,7 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i
switch (type.getQualifier().storage) { switch (type.getQualifier().storage) {
case EvqGlobal: case EvqGlobal:
case EvqTemporary: case EvqTemporary:
makeNonIoType(&type); makeTypeNonIo(&type);
default: default:
break; break;
} }
......
...@@ -230,7 +230,7 @@ protected: ...@@ -230,7 +230,7 @@ protected:
// Create a non-IO type from an IO type. If there is no IO data, this returns the input type unmodified. // Create a non-IO type from an IO type. If there is no IO data, this returns the input type unmodified.
// Otherwise, it modifies the type in place, and returns a pointer to it. // Otherwise, it modifies the type in place, and returns a pointer to it.
TType* makeNonIoType(TType*); void makeTypeNonIo(TType*);
void finish() override; // post-processing void finish() override; // post-processing
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment