forked from KhronosGroup/glslang
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request KhronosGroup#2647 from greg-lunarg/arg2
Do true SPV type check for function array arg linkage
- Loading branch information
Showing
8 changed files
with
308 additions
and
100 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
spv.1.4.funcall.array.frag | ||
// Module Version 10400 | ||
// Generated by (magic number): 8000a | ||
// Id's are bound by 42 | ||
|
||
Capability Shader | ||
1: ExtInstImport "GLSL.std.450" | ||
MemoryModel Logical GLSL450 | ||
EntryPoint Fragment 4 "main" 27 31 | ||
ExecutionMode 4 OriginUpperLeft | ||
Source GLSL 450 | ||
Name 4 "main" | ||
Name 16 "f(vf4[9];i1;" | ||
Name 14 "a" | ||
Name 15 "ix" | ||
Name 20 "indexable" | ||
Name 27 "color" | ||
Name 29 "ub" | ||
MemberName 29(ub) 0 "u" | ||
Name 31 "" | ||
Name 37 "arg" | ||
Name 40 "param" | ||
Decorate 27(color) Location 0 | ||
Decorate 28 ArrayStride 16 | ||
MemberDecorate 29(ub) 0 Offset 0 | ||
Decorate 29(ub) Block | ||
Decorate 31 DescriptorSet 0 | ||
Decorate 31 Binding 0 | ||
2: TypeVoid | ||
3: TypeFunction 2 | ||
6: TypeFloat 32 | ||
7: TypeVector 6(float) 4 | ||
8: TypeInt 32 0 | ||
9: 8(int) Constant 9 | ||
10: TypeArray 7(fvec4) 9 | ||
11: TypeInt 32 1 | ||
12: TypePointer Function 11(int) | ||
13: TypeFunction 7(fvec4) 10 12(ptr) | ||
19: TypePointer Function 10 | ||
21: TypePointer Function 7(fvec4) | ||
26: TypePointer Output 7(fvec4) | ||
27(color): 26(ptr) Variable Output | ||
28: TypeArray 7(fvec4) 9 | ||
29(ub): TypeStruct 28 | ||
30: TypePointer Uniform 29(ub) | ||
31: 30(ptr) Variable Uniform | ||
32: 11(int) Constant 0 | ||
33: TypePointer Uniform 28 | ||
36: 11(int) Constant 2 | ||
4(main): 2 Function None 3 | ||
5: Label | ||
37(arg): 19(ptr) Variable Function | ||
40(param): 12(ptr) Variable Function | ||
34: 33(ptr) AccessChain 31 32 | ||
35: 28 Load 34 | ||
38: 10 CopyLogical 35 | ||
Store 37(arg) 38 | ||
39: 10 Load 37(arg) | ||
Store 40(param) 36 | ||
41: 7(fvec4) FunctionCall 16(f(vf4[9];i1;) 39 40(param) | ||
Store 27(color) 41 | ||
Return | ||
FunctionEnd | ||
16(f(vf4[9];i1;): 7(fvec4) Function None 13 | ||
14(a): 10 FunctionParameter | ||
15(ix): 12(ptr) FunctionParameter | ||
17: Label | ||
20(indexable): 19(ptr) Variable Function | ||
18: 11(int) Load 15(ix) | ||
Store 20(indexable) 14(a) | ||
22: 21(ptr) AccessChain 20(indexable) 18 | ||
23: 7(fvec4) Load 22 | ||
ReturnValue 23 | ||
FunctionEnd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
spv.funcall.array.frag | ||
// Module Version 10000 | ||
// Generated by (magic number): 8000a | ||
// Id's are bound by 66 | ||
|
||
Capability Shader | ||
1: ExtInstImport "GLSL.std.450" | ||
MemoryModel Logical GLSL450 | ||
EntryPoint Fragment 4 "main" 27 | ||
ExecutionMode 4 OriginUpperLeft | ||
Source GLSL 450 | ||
Name 4 "main" | ||
Name 16 "f(vf4[9];i1;" | ||
Name 14 "a" | ||
Name 15 "ix" | ||
Name 20 "indexable" | ||
Name 27 "color" | ||
Name 29 "ub" | ||
MemberName 29(ub) 0 "u" | ||
Name 31 "" | ||
Name 37 "arg" | ||
Name 64 "param" | ||
Decorate 27(color) Location 0 | ||
Decorate 28 ArrayStride 16 | ||
MemberDecorate 29(ub) 0 Offset 0 | ||
Decorate 29(ub) Block | ||
Decorate 31 DescriptorSet 0 | ||
Decorate 31 Binding 0 | ||
2: TypeVoid | ||
3: TypeFunction 2 | ||
6: TypeFloat 32 | ||
7: TypeVector 6(float) 4 | ||
8: TypeInt 32 0 | ||
9: 8(int) Constant 9 | ||
10: TypeArray 7(fvec4) 9 | ||
11: TypeInt 32 1 | ||
12: TypePointer Function 11(int) | ||
13: TypeFunction 7(fvec4) 10 12(ptr) | ||
19: TypePointer Function 10 | ||
21: TypePointer Function 7(fvec4) | ||
26: TypePointer Output 7(fvec4) | ||
27(color): 26(ptr) Variable Output | ||
28: TypeArray 7(fvec4) 9 | ||
29(ub): TypeStruct 28 | ||
30: TypePointer Uniform 29(ub) | ||
31: 30(ptr) Variable Uniform | ||
32: 11(int) Constant 0 | ||
33: TypePointer Uniform 28 | ||
36: 11(int) Constant 2 | ||
41: 11(int) Constant 1 | ||
46: 11(int) Constant 3 | ||
49: 11(int) Constant 4 | ||
52: 11(int) Constant 5 | ||
55: 11(int) Constant 6 | ||
58: 11(int) Constant 7 | ||
61: 11(int) Constant 8 | ||
4(main): 2 Function None 3 | ||
5: Label | ||
37(arg): 19(ptr) Variable Function | ||
64(param): 12(ptr) Variable Function | ||
34: 33(ptr) AccessChain 31 32 | ||
35: 28 Load 34 | ||
38: 7(fvec4) CompositeExtract 35 0 | ||
39: 21(ptr) AccessChain 37(arg) 32 | ||
Store 39 38 | ||
40: 7(fvec4) CompositeExtract 35 1 | ||
42: 21(ptr) AccessChain 37(arg) 41 | ||
Store 42 40 | ||
43: 7(fvec4) CompositeExtract 35 2 | ||
44: 21(ptr) AccessChain 37(arg) 36 | ||
Store 44 43 | ||
45: 7(fvec4) CompositeExtract 35 3 | ||
47: 21(ptr) AccessChain 37(arg) 46 | ||
Store 47 45 | ||
48: 7(fvec4) CompositeExtract 35 4 | ||
50: 21(ptr) AccessChain 37(arg) 49 | ||
Store 50 48 | ||
51: 7(fvec4) CompositeExtract 35 5 | ||
53: 21(ptr) AccessChain 37(arg) 52 | ||
Store 53 51 | ||
54: 7(fvec4) CompositeExtract 35 6 | ||
56: 21(ptr) AccessChain 37(arg) 55 | ||
Store 56 54 | ||
57: 7(fvec4) CompositeExtract 35 7 | ||
59: 21(ptr) AccessChain 37(arg) 58 | ||
Store 59 57 | ||
60: 7(fvec4) CompositeExtract 35 8 | ||
62: 21(ptr) AccessChain 37(arg) 61 | ||
Store 62 60 | ||
63: 10 Load 37(arg) | ||
Store 64(param) 36 | ||
65: 7(fvec4) FunctionCall 16(f(vf4[9];i1;) 63 64(param) | ||
Store 27(color) 65 | ||
Return | ||
FunctionEnd | ||
16(f(vf4[9];i1;): 7(fvec4) Function None 13 | ||
14(a): 10 FunctionParameter | ||
15(ix): 12(ptr) FunctionParameter | ||
17: Label | ||
20(indexable): 19(ptr) Variable Function | ||
18: 11(int) Load 15(ix) | ||
Store 20(indexable) 14(a) | ||
22: 21(ptr) AccessChain 20(indexable) 18 | ||
23: 7(fvec4) Load 22 | ||
ReturnValue 23 | ||
FunctionEnd |
Oops, something went wrong.