HLSL: Fix issue #658: Don't adopt initializer constness from declaration.
This also makes it match how GLSL handles the same thing.
This commit is contained in:
parent
bf9a2f30c9
commit
085b833490
@ -29,29 +29,147 @@ gl_FragCoord origin is upper left
|
|||||||
0:20 8.000000
|
0:20 8.000000
|
||||||
0:20 9.000000
|
0:20 9.000000
|
||||||
0:20 10.000000
|
0:20 10.000000
|
||||||
0:26 Function Definition: main( (temp structure{temp 4-component vector of float color})
|
0:22 Constant:
|
||||||
0:26 Function Parameters:
|
0:22 10.000000
|
||||||
0:? Sequence
|
0:25 Sequence
|
||||||
0:27 Function Call: Test1( (temp void)
|
0:25 move second child to first child (temp float)
|
||||||
0:30 move second child to first child (temp 4-component vector of float)
|
0:25 'n' (temp float)
|
||||||
0:30 color: direct index for structure (temp 4-component vector of float)
|
0:25 Constant:
|
||||||
0:30 'ps_output' (temp structure{temp 4-component vector of float color})
|
0:25 0.000000
|
||||||
0:30 Constant:
|
0:26 Sequence
|
||||||
0:30 0 (const int)
|
0:26 move second child to first child (temp 8-element array of 3-component vector of float)
|
||||||
|
0:26 'a' (const (read only) 8-element array of 3-component vector of float)
|
||||||
|
0:26 Construct vec3 (temp 8-element array of 3-component vector of float)
|
||||||
|
0:27 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:27 add second child into first child (temp float)
|
||||||
|
0:27 'n' (temp float)
|
||||||
|
0:27 Constant:
|
||||||
|
0:27 1.000000
|
||||||
|
0:28 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:28 add second child into first child (temp float)
|
||||||
|
0:28 'n' (temp float)
|
||||||
|
0:28 Constant:
|
||||||
|
0:28 1.000000
|
||||||
|
0:29 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:29 add second child into first child (temp float)
|
||||||
|
0:29 'n' (temp float)
|
||||||
|
0:29 Constant:
|
||||||
|
0:29 1.000000
|
||||||
|
0:30 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:30 add second child into first child (temp float)
|
||||||
|
0:30 'n' (temp float)
|
||||||
0:30 Constant:
|
0:30 Constant:
|
||||||
0:30 1.000000
|
0:30 1.000000
|
||||||
0:30 1.000000
|
0:31 vector-scale (temp 3-component vector of float)
|
||||||
0:30 1.000000
|
0:? Constant:
|
||||||
0:30 1.000000
|
0:? -0.577350
|
||||||
0:31 Sequence
|
0:? 0.577350
|
||||||
0:31 Sequence
|
0:? 0.577350
|
||||||
0:31 move second child to first child (temp 4-component vector of float)
|
0:31 add second child into first child (temp float)
|
||||||
0:? 'color' (layout(location=0 ) out 4-component vector of float)
|
0:31 'n' (temp float)
|
||||||
0:31 color: direct index for structure (temp 4-component vector of float)
|
|
||||||
0:31 'ps_output' (temp structure{temp 4-component vector of float color})
|
|
||||||
0:31 Constant:
|
0:31 Constant:
|
||||||
0:31 0 (const int)
|
0:31 1.000000
|
||||||
0:31 Branch: Return
|
0:32 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:32 add second child into first child (temp float)
|
||||||
|
0:32 'n' (temp float)
|
||||||
|
0:32 Constant:
|
||||||
|
0:32 1.000000
|
||||||
|
0:33 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:33 add second child into first child (temp float)
|
||||||
|
0:33 'n' (temp float)
|
||||||
|
0:33 Constant:
|
||||||
|
0:33 1.000000
|
||||||
|
0:34 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:34 add second child into first child (temp float)
|
||||||
|
0:34 'n' (temp float)
|
||||||
|
0:34 Constant:
|
||||||
|
0:34 1.000000
|
||||||
|
0:36 Sequence
|
||||||
|
0:36 move second child to first child (temp structure{temp 3-component vector of float a})
|
||||||
|
0:36 'oneNonConst' (const (read only) structure{temp 3-component vector of float a})
|
||||||
|
0:36 Construct structure (temp structure{temp 3-component vector of float a})
|
||||||
|
0:36 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:36 add second child into first child (temp float)
|
||||||
|
0:36 'n' (temp float)
|
||||||
|
0:36 Constant:
|
||||||
|
0:36 1.000000
|
||||||
|
0:38 Sequence
|
||||||
|
0:38 move second child to first child (temp structure{temp 3-component vector of float a, temp 3-component vector of float b})
|
||||||
|
0:38 'twoNonConst' (const (read only) structure{temp 3-component vector of float a, temp 3-component vector of float b})
|
||||||
|
0:38 Construct structure (temp structure{temp 3-component vector of float a, temp 3-component vector of float b})
|
||||||
|
0:38 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:38 add second child into first child (temp float)
|
||||||
|
0:38 'n' (temp float)
|
||||||
|
0:38 Constant:
|
||||||
|
0:38 1.000000
|
||||||
|
0:39 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:39 add second child into first child (temp float)
|
||||||
|
0:39 'n' (temp float)
|
||||||
|
0:39 Constant:
|
||||||
|
0:39 1.000000
|
||||||
|
0:45 Function Definition: main( (temp structure{temp 4-component vector of float color})
|
||||||
|
0:45 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:46 Function Call: Test1( (temp void)
|
||||||
|
0:49 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:49 color: direct index for structure (temp 4-component vector of float)
|
||||||
|
0:49 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||||
|
0:49 Constant:
|
||||||
|
0:49 0 (const int)
|
||||||
|
0:49 Constant:
|
||||||
|
0:49 1.000000
|
||||||
|
0:49 1.000000
|
||||||
|
0:49 1.000000
|
||||||
|
0:49 1.000000
|
||||||
|
0:50 Sequence
|
||||||
|
0:50 Sequence
|
||||||
|
0:50 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:? 'color' (layout(location=0 ) out 4-component vector of float)
|
||||||
|
0:50 color: direct index for structure (temp 4-component vector of float)
|
||||||
|
0:50 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||||
|
0:50 Constant:
|
||||||
|
0:50 0 (const int)
|
||||||
|
0:50 Branch: Return
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'color' (layout(location=0 ) out 4-component vector of float)
|
0:? 'color' (layout(location=0 ) out 4-component vector of float)
|
||||||
|
|
||||||
@ -89,40 +207,158 @@ gl_FragCoord origin is upper left
|
|||||||
0:20 8.000000
|
0:20 8.000000
|
||||||
0:20 9.000000
|
0:20 9.000000
|
||||||
0:20 10.000000
|
0:20 10.000000
|
||||||
0:26 Function Definition: main( (temp structure{temp 4-component vector of float color})
|
0:22 Constant:
|
||||||
0:26 Function Parameters:
|
0:22 10.000000
|
||||||
0:? Sequence
|
0:25 Sequence
|
||||||
0:27 Function Call: Test1( (temp void)
|
0:25 move second child to first child (temp float)
|
||||||
0:30 move second child to first child (temp 4-component vector of float)
|
0:25 'n' (temp float)
|
||||||
0:30 color: direct index for structure (temp 4-component vector of float)
|
0:25 Constant:
|
||||||
0:30 'ps_output' (temp structure{temp 4-component vector of float color})
|
0:25 0.000000
|
||||||
0:30 Constant:
|
0:26 Sequence
|
||||||
0:30 0 (const int)
|
0:26 move second child to first child (temp 8-element array of 3-component vector of float)
|
||||||
|
0:26 'a' (const (read only) 8-element array of 3-component vector of float)
|
||||||
|
0:26 Construct vec3 (temp 8-element array of 3-component vector of float)
|
||||||
|
0:27 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:27 add second child into first child (temp float)
|
||||||
|
0:27 'n' (temp float)
|
||||||
|
0:27 Constant:
|
||||||
|
0:27 1.000000
|
||||||
|
0:28 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:28 add second child into first child (temp float)
|
||||||
|
0:28 'n' (temp float)
|
||||||
|
0:28 Constant:
|
||||||
|
0:28 1.000000
|
||||||
|
0:29 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:29 add second child into first child (temp float)
|
||||||
|
0:29 'n' (temp float)
|
||||||
|
0:29 Constant:
|
||||||
|
0:29 1.000000
|
||||||
|
0:30 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:30 add second child into first child (temp float)
|
||||||
|
0:30 'n' (temp float)
|
||||||
0:30 Constant:
|
0:30 Constant:
|
||||||
0:30 1.000000
|
0:30 1.000000
|
||||||
0:30 1.000000
|
0:31 vector-scale (temp 3-component vector of float)
|
||||||
0:30 1.000000
|
0:? Constant:
|
||||||
0:30 1.000000
|
0:? -0.577350
|
||||||
0:31 Sequence
|
0:? 0.577350
|
||||||
0:31 Sequence
|
0:? 0.577350
|
||||||
0:31 move second child to first child (temp 4-component vector of float)
|
0:31 add second child into first child (temp float)
|
||||||
0:? 'color' (layout(location=0 ) out 4-component vector of float)
|
0:31 'n' (temp float)
|
||||||
0:31 color: direct index for structure (temp 4-component vector of float)
|
|
||||||
0:31 'ps_output' (temp structure{temp 4-component vector of float color})
|
|
||||||
0:31 Constant:
|
0:31 Constant:
|
||||||
0:31 0 (const int)
|
0:31 1.000000
|
||||||
0:31 Branch: Return
|
0:32 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:32 add second child into first child (temp float)
|
||||||
|
0:32 'n' (temp float)
|
||||||
|
0:32 Constant:
|
||||||
|
0:32 1.000000
|
||||||
|
0:33 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:33 add second child into first child (temp float)
|
||||||
|
0:33 'n' (temp float)
|
||||||
|
0:33 Constant:
|
||||||
|
0:33 1.000000
|
||||||
|
0:34 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? -0.577350
|
||||||
|
0:34 add second child into first child (temp float)
|
||||||
|
0:34 'n' (temp float)
|
||||||
|
0:34 Constant:
|
||||||
|
0:34 1.000000
|
||||||
|
0:36 Sequence
|
||||||
|
0:36 move second child to first child (temp structure{temp 3-component vector of float a})
|
||||||
|
0:36 'oneNonConst' (const (read only) structure{temp 3-component vector of float a})
|
||||||
|
0:36 Construct structure (temp structure{temp 3-component vector of float a})
|
||||||
|
0:36 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:36 add second child into first child (temp float)
|
||||||
|
0:36 'n' (temp float)
|
||||||
|
0:36 Constant:
|
||||||
|
0:36 1.000000
|
||||||
|
0:38 Sequence
|
||||||
|
0:38 move second child to first child (temp structure{temp 3-component vector of float a, temp 3-component vector of float b})
|
||||||
|
0:38 'twoNonConst' (const (read only) structure{temp 3-component vector of float a, temp 3-component vector of float b})
|
||||||
|
0:38 Construct structure (temp structure{temp 3-component vector of float a, temp 3-component vector of float b})
|
||||||
|
0:38 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:38 add second child into first child (temp float)
|
||||||
|
0:38 'n' (temp float)
|
||||||
|
0:38 Constant:
|
||||||
|
0:38 1.000000
|
||||||
|
0:39 vector-scale (temp 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:? 0.577350
|
||||||
|
0:39 add second child into first child (temp float)
|
||||||
|
0:39 'n' (temp float)
|
||||||
|
0:39 Constant:
|
||||||
|
0:39 1.000000
|
||||||
|
0:45 Function Definition: main( (temp structure{temp 4-component vector of float color})
|
||||||
|
0:45 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:46 Function Call: Test1( (temp void)
|
||||||
|
0:49 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:49 color: direct index for structure (temp 4-component vector of float)
|
||||||
|
0:49 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||||
|
0:49 Constant:
|
||||||
|
0:49 0 (const int)
|
||||||
|
0:49 Constant:
|
||||||
|
0:49 1.000000
|
||||||
|
0:49 1.000000
|
||||||
|
0:49 1.000000
|
||||||
|
0:49 1.000000
|
||||||
|
0:50 Sequence
|
||||||
|
0:50 Sequence
|
||||||
|
0:50 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:? 'color' (layout(location=0 ) out 4-component vector of float)
|
||||||
|
0:50 color: direct index for structure (temp 4-component vector of float)
|
||||||
|
0:50 'ps_output' (temp structure{temp 4-component vector of float color})
|
||||||
|
0:50 Constant:
|
||||||
|
0:50 0 (const int)
|
||||||
|
0:50 Branch: Return
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'color' (layout(location=0 ) out 4-component vector of float)
|
0:? 'color' (layout(location=0 ) out 4-component vector of float)
|
||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 47
|
// Id's are bound by 107
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 43
|
EntryPoint Fragment 4 "main" 103
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 6 "Test1("
|
Name 6 "Test1("
|
||||||
@ -136,11 +372,20 @@ gl_FragCoord origin is upper left
|
|||||||
MemberName 25(mystruct2) 1 "b"
|
MemberName 25(mystruct2) 1 "b"
|
||||||
MemberName 25(mystruct2) 2 "c"
|
MemberName 25(mystruct2) 2 "c"
|
||||||
Name 27 "test5"
|
Name 27 "test5"
|
||||||
Name 34 "PS_OUTPUT"
|
Name 32 "n"
|
||||||
MemberName 34(PS_OUTPUT) 0 "color"
|
Name 39 "a"
|
||||||
Name 36 "ps_output"
|
Name 75 "one"
|
||||||
Name 43 "color"
|
MemberName 75(one) 0 "a"
|
||||||
Decorate 43(color) Location 0
|
Name 77 "oneNonConst"
|
||||||
|
Name 82 "two"
|
||||||
|
MemberName 82(two) 0 "a"
|
||||||
|
MemberName 82(two) 1 "b"
|
||||||
|
Name 84 "twoNonConst"
|
||||||
|
Name 94 "PS_OUTPUT"
|
||||||
|
MemberName 94(PS_OUTPUT) 0 "color"
|
||||||
|
Name 96 "ps_output"
|
||||||
|
Name 103 "color"
|
||||||
|
Decorate 103(color) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
@ -163,24 +408,44 @@ gl_FragCoord origin is upper left
|
|||||||
29: 8(float) Constant 1091567616
|
29: 8(float) Constant 1091567616
|
||||||
30: 8(float) Constant 1092616192
|
30: 8(float) Constant 1092616192
|
||||||
31:25(mystruct2) ConstantComposite 28 29 30
|
31:25(mystruct2) ConstantComposite 28 29 30
|
||||||
33: TypeVector 8(float) 4
|
33: 8(float) Constant 0
|
||||||
34(PS_OUTPUT): TypeStruct 33(fvec4)
|
34: TypeVector 8(float) 3
|
||||||
35: TypePointer Function 34(PS_OUTPUT)
|
35: TypeInt 32 0
|
||||||
37: TypeInt 32 1
|
36: 35(int) Constant 8
|
||||||
38: 37(int) Constant 0
|
37: TypeArray 34(fvec3) 36
|
||||||
39: 33(fvec4) ConstantComposite 13 13 13 13
|
38: TypePointer Function 37
|
||||||
40: TypePointer Function 33(fvec4)
|
40: 8(float) Constant 1058262330
|
||||||
42: TypePointer Output 33(fvec4)
|
41: 34(fvec3) ConstantComposite 40 40 40
|
||||||
43(color): 42(ptr) Variable Output
|
45: 8(float) Constant 3205745978
|
||||||
|
46: 34(fvec3) ConstantComposite 45 45 45
|
||||||
|
50: 34(fvec3) ConstantComposite 45 45 40
|
||||||
|
54: 34(fvec3) ConstantComposite 45 40 45
|
||||||
|
58: 34(fvec3) ConstantComposite 45 40 40
|
||||||
|
62: 34(fvec3) ConstantComposite 40 45 45
|
||||||
|
66: 34(fvec3) ConstantComposite 40 45 40
|
||||||
|
70: 34(fvec3) ConstantComposite 40 40 45
|
||||||
|
75(one): TypeStruct 34(fvec3)
|
||||||
|
76: TypePointer Function 75(one)
|
||||||
|
82(two): TypeStruct 34(fvec3) 34(fvec3)
|
||||||
|
83: TypePointer Function 82(two)
|
||||||
|
93: TypeVector 8(float) 4
|
||||||
|
94(PS_OUTPUT): TypeStruct 93(fvec4)
|
||||||
|
95: TypePointer Function 94(PS_OUTPUT)
|
||||||
|
97: TypeInt 32 1
|
||||||
|
98: 97(int) Constant 0
|
||||||
|
99: 93(fvec4) ConstantComposite 13 13 13 13
|
||||||
|
100: TypePointer Function 93(fvec4)
|
||||||
|
102: TypePointer Output 93(fvec4)
|
||||||
|
103(color): 102(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
36(ps_output): 35(ptr) Variable Function
|
96(ps_output): 95(ptr) Variable Function
|
||||||
32: 2 FunctionCall 6(Test1()
|
92: 2 FunctionCall 6(Test1()
|
||||||
41: 40(ptr) AccessChain 36(ps_output) 38
|
101: 100(ptr) AccessChain 96(ps_output) 98
|
||||||
Store 41 39
|
Store 101 99
|
||||||
44: 40(ptr) AccessChain 36(ps_output) 38
|
104: 100(ptr) AccessChain 96(ps_output) 98
|
||||||
45: 33(fvec4) Load 44
|
105: 93(fvec4) Load 104
|
||||||
Store 43(color) 45
|
Store 103(color) 105
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
6(Test1(): 2 Function None 3
|
6(Test1(): 2 Function None 3
|
||||||
@ -189,9 +454,64 @@ gl_FragCoord origin is upper left
|
|||||||
17(test2): 11(ptr) Variable Function
|
17(test2): 11(ptr) Variable Function
|
||||||
23(test4): 22(ptr) Variable Function
|
23(test4): 22(ptr) Variable Function
|
||||||
27(test5): 26(ptr) Variable Function
|
27(test5): 26(ptr) Variable Function
|
||||||
|
32(n): 22(ptr) Variable Function
|
||||||
|
39(a): 38(ptr) Variable Function
|
||||||
|
77(oneNonConst): 76(ptr) Variable Function
|
||||||
|
84(twoNonConst): 83(ptr) Variable Function
|
||||||
Store 12(test1) 16
|
Store 12(test1) 16
|
||||||
Store 17(test2) 21
|
Store 17(test2) 21
|
||||||
Store 23(test4) 24
|
Store 23(test4) 24
|
||||||
Store 27(test5) 31
|
Store 27(test5) 31
|
||||||
|
Store 32(n) 33
|
||||||
|
42: 8(float) Load 32(n)
|
||||||
|
43: 8(float) FAdd 42 13
|
||||||
|
Store 32(n) 43
|
||||||
|
44: 34(fvec3) VectorTimesScalar 41 43
|
||||||
|
47: 8(float) Load 32(n)
|
||||||
|
48: 8(float) FAdd 47 13
|
||||||
|
Store 32(n) 48
|
||||||
|
49: 34(fvec3) VectorTimesScalar 46 48
|
||||||
|
51: 8(float) Load 32(n)
|
||||||
|
52: 8(float) FAdd 51 13
|
||||||
|
Store 32(n) 52
|
||||||
|
53: 34(fvec3) VectorTimesScalar 50 52
|
||||||
|
55: 8(float) Load 32(n)
|
||||||
|
56: 8(float) FAdd 55 13
|
||||||
|
Store 32(n) 56
|
||||||
|
57: 34(fvec3) VectorTimesScalar 54 56
|
||||||
|
59: 8(float) Load 32(n)
|
||||||
|
60: 8(float) FAdd 59 13
|
||||||
|
Store 32(n) 60
|
||||||
|
61: 34(fvec3) VectorTimesScalar 58 60
|
||||||
|
63: 8(float) Load 32(n)
|
||||||
|
64: 8(float) FAdd 63 13
|
||||||
|
Store 32(n) 64
|
||||||
|
65: 34(fvec3) VectorTimesScalar 62 64
|
||||||
|
67: 8(float) Load 32(n)
|
||||||
|
68: 8(float) FAdd 67 13
|
||||||
|
Store 32(n) 68
|
||||||
|
69: 34(fvec3) VectorTimesScalar 66 68
|
||||||
|
71: 8(float) Load 32(n)
|
||||||
|
72: 8(float) FAdd 71 13
|
||||||
|
Store 32(n) 72
|
||||||
|
73: 34(fvec3) VectorTimesScalar 70 72
|
||||||
|
74: 37 CompositeConstruct 44 49 53 57 61 65 69 73
|
||||||
|
Store 39(a) 74
|
||||||
|
78: 8(float) Load 32(n)
|
||||||
|
79: 8(float) FAdd 78 13
|
||||||
|
Store 32(n) 79
|
||||||
|
80: 34(fvec3) VectorTimesScalar 58 79
|
||||||
|
81: 75(one) CompositeConstruct 80
|
||||||
|
Store 77(oneNonConst) 81
|
||||||
|
85: 8(float) Load 32(n)
|
||||||
|
86: 8(float) FAdd 85 13
|
||||||
|
Store 32(n) 86
|
||||||
|
87: 34(fvec3) VectorTimesScalar 58 86
|
||||||
|
88: 8(float) Load 32(n)
|
||||||
|
89: 8(float) FAdd 88 13
|
||||||
|
Store 32(n) 89
|
||||||
|
90: 34(fvec3) VectorTimesScalar 58 89
|
||||||
|
91: 82(two) CompositeConstruct 87 90
|
||||||
|
Store 84(twoNonConst) 91
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -18,6 +18,25 @@ void Test1()
|
|||||||
|
|
||||||
struct mystruct2 { float a; float b; float c; };
|
struct mystruct2 { float a; float b; float c; };
|
||||||
mystruct2 test5 = { {8,}, {9,}, {10}, };
|
mystruct2 test5 = { {8,}, {9,}, {10}, };
|
||||||
|
const mystruct2 constTest5 = { {8,}, {9,}, {10}, };
|
||||||
|
constTest5.c;
|
||||||
|
|
||||||
|
const float step = 1.f;
|
||||||
|
float n = 0;
|
||||||
|
const float3 a[8] = {
|
||||||
|
normalize(float3(1, 1, 1)) * (n += step),
|
||||||
|
normalize(float3(-1, -1, -1)) * (n += step),
|
||||||
|
normalize(float3(-1, -1, 1)) * (n += step),
|
||||||
|
normalize(float3(-1, 1, -1)) * (n += step),
|
||||||
|
normalize(float3(-1, 1, 1)) * (n += step),
|
||||||
|
normalize(float3(1, -1, -1)) * (n += step),
|
||||||
|
normalize(float3(1, -1, 1)) * (n += step),
|
||||||
|
normalize(float3(1, 1, -1)) * (n += step) };
|
||||||
|
|
||||||
|
const struct one { float3 a; } oneNonConst = { normalize(float3(-1, 1, 1)) * (n += step) };
|
||||||
|
const struct two { float3 a;
|
||||||
|
float3 b; } twoNonConst = { normalize(float3(-1, 1, 1)) * (n += step),
|
||||||
|
normalize(float3(-1, 1, 1)) * (n += step) };
|
||||||
}
|
}
|
||||||
|
|
||||||
struct PS_OUTPUT { float4 color : SV_Target0; };
|
struct PS_OUTPUT { float4 color : SV_Target0; };
|
||||||
|
|||||||
@ -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.1730"
|
#define GLSLANG_REVISION "Overload400-PrecQual.1739"
|
||||||
#define GLSLANG_DATE "03-Jan-2017"
|
#define GLSLANG_DATE "05-Jan-2017"
|
||||||
|
|||||||
@ -5256,8 +5256,16 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm
|
|||||||
// constructor-style subtree, allowing the rest of the code to operate
|
// constructor-style subtree, allowing the rest of the code to operate
|
||||||
// identically for both kinds of initializers.
|
// identically for both kinds of initializers.
|
||||||
//
|
//
|
||||||
|
//
|
||||||
|
// Type can't be deduced from the initializer list, so a skeletal type to
|
||||||
|
// follow has to be passed in. Constness and specialization-constness
|
||||||
|
// should be deduced bottom up, not dictated by the skeletal type.
|
||||||
|
//
|
||||||
|
TType skeletalType;
|
||||||
|
skeletalType.shallowCopy(variable->getType());
|
||||||
|
skeletalType.getQualifier().makeTemporary();
|
||||||
if (initializer->getAsAggregate() && initializer->getAsAggregate()->getOp() == EOpNull)
|
if (initializer->getAsAggregate() && initializer->getAsAggregate()->getOp() == EOpNull)
|
||||||
initializer = convertInitializerList(loc, variable->getType(), initializer);
|
initializer = convertInitializerList(loc, skeletalType, initializer);
|
||||||
if (! initializer) {
|
if (! initializer) {
|
||||||
// error recovery; don't leave const without constant values
|
// error recovery; don't leave const without constant values
|
||||||
if (qualifier == EvqConst)
|
if (qualifier == EvqConst)
|
||||||
@ -5458,8 +5466,9 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co
|
|||||||
emulatedConstructorArguments = initList->getSequence()[0];
|
emulatedConstructorArguments = initList->getSequence()[0];
|
||||||
else
|
else
|
||||||
emulatedConstructorArguments = initList;
|
emulatedConstructorArguments = initList;
|
||||||
|
TIntermTyped* constructor = addConstructor(loc, emulatedConstructorArguments, type);
|
||||||
|
|
||||||
return addConstructor(loc, emulatedConstructorArguments, type);
|
return constructor;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lengthen list to be long enough to cover any gap from the current list size
|
// Lengthen list to be long enough to cover any gap from the current list size
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user