* Code refine and adding missing features 1. Add new level for built in symbols. 2. Fix issues for structure members' qualifiers. 3. Global qualifier fix. 4. IO Mapper refine. Add support for checking with mangle names. * Additional missing features * Invariant member. (Only check non-interface). * Split block nesting level and struct nesting level. To fix issues of checking 'invariant' qualifier. Current grammar would check block/struct member without its parent class's information. So we split nesting level, and 'invariant' would only be checked within a struct. * Format anonymous block names. Refine codes for symbols from all kinds of resouces. * Fix writeonly check. * Use LValueBase to find operator. * Fix random null ptr issue. * invariant check, stage in io mapping, reference parameter should be used and remove wrong codes introduced with ordering vector. * Remained: to be fixed with double check link.vk.multiblocksValid * Fix version error. invariant * Revert loc modification.
147 lines
7.1 KiB
Plaintext
147 lines
7.1 KiB
Plaintext
spv.specConstant.vert
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000a
|
|
// Id's are bound by 81
|
|
|
|
Capability Shader
|
|
Capability Float64
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Vertex 4 "main" 20 22 28 53
|
|
Source GLSL 400
|
|
Name 4 "main"
|
|
Name 9 "arraySize"
|
|
Name 14 "foo(vf4[s805310914];"
|
|
Name 13 "p"
|
|
Name 17 "builtin_spec_constant("
|
|
Name 20 "color"
|
|
Name 22 "ucol"
|
|
Name 28 "size"
|
|
Name 30 "spBool"
|
|
Name 34 "scale"
|
|
Name 39 "spDouble"
|
|
Name 40 "spFloat"
|
|
Name 47 "param"
|
|
Name 50 "dupArraySize"
|
|
Name 53 "dupUcol"
|
|
Name 60 "spDupBool"
|
|
Name 63 "dupScale"
|
|
Name 67 "spDupDouble"
|
|
Name 68 "spDupFloat"
|
|
Name 76 "result"
|
|
Name 77 "gl_MaxImageUnits"
|
|
Decorate 9(arraySize) SpecId 16
|
|
Decorate 20(color) Location 0
|
|
Decorate 22(ucol) Location 0
|
|
Decorate 28(size) Location 1
|
|
Decorate 30(spBool) SpecId 17
|
|
Decorate 34(scale) SpecId 22
|
|
Decorate 39(spDouble) SpecId 19
|
|
Decorate 40(spFloat) SpecId 18
|
|
Decorate 50(dupArraySize) SpecId 116
|
|
Decorate 53(dupUcol) Location 5
|
|
Decorate 60(spDupBool) SpecId 117
|
|
Decorate 63(dupScale) SpecId 122
|
|
Decorate 67(spDupDouble) SpecId 119
|
|
Decorate 68(spDupFloat) SpecId 118
|
|
Decorate 77(gl_MaxImageUnits) SpecId 24
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypeInt 32 1
|
|
9(arraySize): 8(int) SpecConstant 5
|
|
10: TypeArray 7(fvec4) 9(arraySize)
|
|
11: TypePointer Function 10
|
|
12: TypeFunction 2 11(ptr)
|
|
16: TypeFunction 8(int)
|
|
19: TypePointer Output 7(fvec4)
|
|
20(color): 19(ptr) Variable Output
|
|
21: TypePointer Input 10
|
|
22(ucol): 21(ptr) Variable Input
|
|
23: 8(int) Constant 2
|
|
24: TypePointer Input 7(fvec4)
|
|
27: TypePointer Output 8(int)
|
|
28(size): 27(ptr) Variable Output
|
|
29: TypeBool
|
|
30(spBool): 29(bool) SpecConstantTrue
|
|
33: TypeInt 32 0
|
|
34(scale): 33(int) SpecConstant 2
|
|
38: TypeFloat 64
|
|
39(spDouble):38(float64_t) SpecConstant 1413754136 1074340347
|
|
40(spFloat): 6(float) SpecConstant 1078523331
|
|
41:38(float64_t) SpecConstantOp 115 40(spFloat)
|
|
50(dupArraySize): 8(int) SpecConstant 12
|
|
51: TypeArray 7(fvec4) 50(dupArraySize)
|
|
52: TypePointer Input 51
|
|
53(dupUcol): 52(ptr) Variable Input
|
|
60(spDupBool): 29(bool) SpecConstantTrue
|
|
63(dupScale): 33(int) SpecConstant 2
|
|
67(spDupDouble):38(float64_t) SpecConstant 1413754136 1074340347
|
|
68(spDupFloat): 6(float) SpecConstant 1078523331
|
|
69:38(float64_t) SpecConstantOp 115 68(spDupFloat)
|
|
75: TypePointer Function 8(int)
|
|
77(gl_MaxImageUnits): 8(int) SpecConstant 8
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
47(param): 11(ptr) Variable Function
|
|
25: 24(ptr) AccessChain 22(ucol) 23
|
|
26: 7(fvec4) Load 25
|
|
Store 20(color) 26
|
|
Store 28(size) 9(arraySize)
|
|
SelectionMerge 32 None
|
|
BranchConditional 30(spBool) 31 32
|
|
31: Label
|
|
35: 6(float) ConvertUToF 34(scale)
|
|
36: 7(fvec4) Load 20(color)
|
|
37: 7(fvec4) VectorTimesScalar 36 35
|
|
Store 20(color) 37
|
|
Branch 32
|
|
32: Label
|
|
42:38(float64_t) FDiv 39(spDouble) 41
|
|
43: 6(float) FConvert 42
|
|
44: 7(fvec4) Load 20(color)
|
|
45: 7(fvec4) CompositeConstruct 43 43 43 43
|
|
46: 7(fvec4) FAdd 44 45
|
|
Store 20(color) 46
|
|
48: 10 Load 22(ucol)
|
|
Store 47(param) 48
|
|
49: 2 FunctionCall 14(foo(vf4[s805310914];) 47(param)
|
|
Return
|
|
FunctionEnd
|
|
14(foo(vf4[s805310914];): 2 Function None 12
|
|
13(p): 11(ptr) FunctionParameter
|
|
15: Label
|
|
54: 24(ptr) AccessChain 53(dupUcol) 23
|
|
55: 7(fvec4) Load 54
|
|
56: 7(fvec4) Load 20(color)
|
|
57: 7(fvec4) FAdd 56 55
|
|
Store 20(color) 57
|
|
58: 8(int) Load 28(size)
|
|
59: 8(int) IAdd 58 50(dupArraySize)
|
|
Store 28(size) 59
|
|
SelectionMerge 62 None
|
|
BranchConditional 60(spDupBool) 61 62
|
|
61: Label
|
|
64: 6(float) ConvertUToF 63(dupScale)
|
|
65: 7(fvec4) Load 20(color)
|
|
66: 7(fvec4) VectorTimesScalar 65 64
|
|
Store 20(color) 66
|
|
Branch 62
|
|
62: Label
|
|
70:38(float64_t) FDiv 67(spDupDouble) 69
|
|
71: 6(float) FConvert 70
|
|
72: 7(fvec4) Load 20(color)
|
|
73: 7(fvec4) CompositeConstruct 71 71 71 71
|
|
74: 7(fvec4) FAdd 72 73
|
|
Store 20(color) 74
|
|
Return
|
|
FunctionEnd
|
|
17(builtin_spec_constant(): 8(int) Function None 16
|
|
18: Label
|
|
76(result): 75(ptr) Variable Function
|
|
Store 76(result) 77(gl_MaxImageUnits)
|
|
78: 8(int) Load 76(result)
|
|
ReturnValue 78
|
|
FunctionEnd
|