Before, it was only including explicit interface, sufficient for IO-Block-declared oriented interface, but not sufficient for all modes GLSL might be used with SPIR-V. Two things are accomplished now: 1) each id will appear exactly once 2) the OpEntryPoint list will union static use with declarations
175 lines
8.3 KiB
Plaintext
Executable File
175 lines
8.3 KiB
Plaintext
Executable File
spv.precision.frag
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 112
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 71 23 57 59
|
|
ExecutionMode 4 OriginLowerLeft
|
|
Source ESSL 300
|
|
Name 4 "main"
|
|
Name 12 "foo(vf3;"
|
|
Name 11 "mv3"
|
|
Name 19 "boolfun(vb2;"
|
|
Name 18 "bv2"
|
|
Name 23 "highfin"
|
|
Name 36 "sum"
|
|
Name 38 "uniform_medium"
|
|
Name 40 "uniform_high"
|
|
Name 46 "uniform_low"
|
|
Name 51 "arg1"
|
|
Name 53 "arg2"
|
|
Name 55 "d"
|
|
Name 57 "lowfin"
|
|
Name 59 "mediumfin"
|
|
Name 63 "global_highp"
|
|
Name 67 "local_highp"
|
|
Name 71 "mediumfout"
|
|
Name 102 "ub2"
|
|
Name 103 "param"
|
|
Decorate 36(sum) RelaxedPrecision
|
|
Decorate 38(uniform_medium) RelaxedPrecision
|
|
Decorate 46(uniform_low) RelaxedPrecision
|
|
Decorate 51(arg1) RelaxedPrecision
|
|
Decorate 53(arg2) RelaxedPrecision
|
|
Decorate 55(d) RelaxedPrecision
|
|
Decorate 57(lowfin) RelaxedPrecision
|
|
Decorate 59(mediumfin) RelaxedPrecision
|
|
Decorate 71(mediumfout) RelaxedPrecision
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 3
|
|
8: TypePointer Function 7(fvec3)
|
|
9: TypeVector 6(float) 2
|
|
10: TypeFunction 9(fvec2) 8(ptr)
|
|
14: TypeBool
|
|
15: TypeVector 14(bool) 2
|
|
16: TypePointer Function 15(bvec2)
|
|
17: TypeFunction 14(bool) 16(ptr)
|
|
21: TypeVector 6(float) 4
|
|
22: TypePointer Input 21(fvec4)
|
|
23(highfin): 22(ptr) Variable Input
|
|
28: 14(bool) ConstantFalse
|
|
29: 14(bool) ConstantTrue
|
|
30: 15(bvec2) ConstantComposite 28 29
|
|
34: TypeInt 32 1
|
|
35: TypePointer Function 34(int)
|
|
37: TypePointer UniformConstant 34(int)
|
|
38(uniform_medium): 37(ptr) Variable UniformConstant
|
|
40(uniform_high): 37(ptr) Variable UniformConstant
|
|
46(uniform_low): 37(ptr) Variable UniformConstant
|
|
50: TypePointer Function 6(float)
|
|
52: 6(float) Constant 1078774989
|
|
54: 6(float) Constant 1232730691
|
|
56: TypePointer Input 6(float)
|
|
57(lowfin): 56(ptr) Variable Input
|
|
59(mediumfin): 56(ptr) Variable Input
|
|
62: TypePointer Private 6(float)
|
|
63(global_highp): 62(ptr) Variable Private
|
|
66: TypePointer Function 21(fvec4)
|
|
70: TypePointer Output 21(fvec4)
|
|
71(mediumfout): 70(ptr) Variable Output
|
|
80: 34(int) Constant 4
|
|
82: TypeVector 34(int) 2
|
|
90: TypeInt 32 0
|
|
91: 90(int) Constant 0
|
|
101: TypePointer UniformConstant 15(bvec2)
|
|
102(ub2): 101(ptr) Variable UniformConstant
|
|
109: 6(float) Constant 1065353216
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
36(sum): 35(ptr) Variable Function
|
|
51(arg1): 50(ptr) Variable Function
|
|
53(arg2): 50(ptr) Variable Function
|
|
55(d): 50(ptr) Variable Function
|
|
67(local_highp): 66(ptr) Variable Function
|
|
103(param): 16(ptr) Variable Function
|
|
39: 34(int) Load 38(uniform_medium)
|
|
41: 34(int) Load 40(uniform_high)
|
|
42: 34(int) IAdd 39 41
|
|
Store 36(sum) 42
|
|
43: 34(int) Load 40(uniform_high)
|
|
44: 34(int) Load 36(sum)
|
|
45: 34(int) IAdd 44 43
|
|
Store 36(sum) 45
|
|
47: 34(int) Load 46(uniform_low)
|
|
48: 34(int) Load 36(sum)
|
|
49: 34(int) IAdd 48 47
|
|
Store 36(sum) 49
|
|
Store 51(arg1) 52
|
|
Store 53(arg2) 54
|
|
58: 6(float) Load 57(lowfin)
|
|
60: 6(float) Load 59(mediumfin)
|
|
61: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 58 60
|
|
Store 55(d) 61
|
|
64: 21(fvec4) Load 23(highfin)
|
|
65: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 64
|
|
Store 63(global_highp) 65
|
|
68: 6(float) Load 63(global_highp)
|
|
69: 21(fvec4) CompositeConstruct 68 68 68 68
|
|
Store 67(local_highp) 69
|
|
72: 6(float) Load 55(d)
|
|
73: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 72
|
|
74: 21(fvec4) CompositeConstruct 73 73 73 73
|
|
75: 6(float) Load 53(arg2)
|
|
76: 21(fvec4) CompositeConstruct 75 75 75 75
|
|
77: 21(fvec4) FAdd 74 76
|
|
78: 21(fvec4) Load 67(local_highp)
|
|
79: 21(fvec4) FAdd 77 78
|
|
Store 71(mediumfout) 79
|
|
81: 34(int) Load 46(uniform_low)
|
|
83: 82(ivec2) CompositeConstruct 81 81
|
|
84: 34(int) Load 40(uniform_high)
|
|
85: 82(ivec2) CompositeConstruct 84 84
|
|
86: 82(ivec2) IMul 83 85
|
|
87: 34(int) Load 40(uniform_high)
|
|
88: 82(ivec2) CompositeConstruct 87 87
|
|
89: 82(ivec2) IAdd 86 88
|
|
92: 34(int) CompositeExtract 89 0
|
|
93: 34(int) IAdd 80 92
|
|
94: 34(int) Load 36(sum)
|
|
95: 34(int) IAdd 94 93
|
|
Store 36(sum) 95
|
|
96: 34(int) Load 36(sum)
|
|
97: 6(float) ConvertSToF 96
|
|
98: 21(fvec4) CompositeConstruct 97 97 97 97
|
|
99: 21(fvec4) Load 71(mediumfout)
|
|
100: 21(fvec4) FAdd 99 98
|
|
Store 71(mediumfout) 100
|
|
104: 15(bvec2) Load 102(ub2)
|
|
Store 103(param) 104
|
|
105: 14(bool) FunctionCall 19(boolfun(vb2;) 103(param)
|
|
SelectionMerge 107 None
|
|
BranchConditional 105 106 107
|
|
106: Label
|
|
108: 21(fvec4) Load 71(mediumfout)
|
|
110: 21(fvec4) CompositeConstruct 109 109 109 109
|
|
111: 21(fvec4) FAdd 108 110
|
|
Store 71(mediumfout) 111
|
|
Branch 107
|
|
107: Label
|
|
Return
|
|
FunctionEnd
|
|
12(foo(vf3;): 9(fvec2) Function None 10
|
|
11(mv3): 8(ptr) FunctionParameter
|
|
13: Label
|
|
24: 21(fvec4) Load 23(highfin)
|
|
25: 9(fvec2) VectorShuffle 24 24 0 1
|
|
ReturnValue 25
|
|
FunctionEnd
|
|
19(boolfun(vb2;): 14(bool) Function None 17
|
|
18(bv2): 16(ptr) FunctionParameter
|
|
20: Label
|
|
27: 15(bvec2) Load 18(bv2)
|
|
31: 15(bvec2) IEqual 27 30
|
|
32: 14(bool) All 31
|
|
ReturnValue 32
|
|
FunctionEnd
|