A removed block releases its instructions, so Module::idToInstruction suddenly contains dangling references. The original motivation for block removal was to skip some unreachable blocks, but that's already achieved by InReadableOrder.cpp. Also updated stale comments.
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 114
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 23 59 61 73
|
|
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 38 "sum"
|
|
Name 40 "uniform_medium"
|
|
Name 42 "uniform_high"
|
|
Name 48 "uniform_low"
|
|
Name 53 "arg1"
|
|
Name 55 "arg2"
|
|
Name 57 "d"
|
|
Name 59 "lowfin"
|
|
Name 61 "mediumfin"
|
|
Name 65 "global_highp"
|
|
Name 69 "local_highp"
|
|
Name 73 "mediumfout"
|
|
Name 104 "ub2"
|
|
Name 105 "param"
|
|
Decorate 38(sum) RelaxedPrecision
|
|
Decorate 40(uniform_medium) RelaxedPrecision
|
|
Decorate 48(uniform_low) RelaxedPrecision
|
|
Decorate 53(arg1) RelaxedPrecision
|
|
Decorate 55(arg2) RelaxedPrecision
|
|
Decorate 57(d) RelaxedPrecision
|
|
Decorate 59(lowfin) RelaxedPrecision
|
|
Decorate 61(mediumfin) RelaxedPrecision
|
|
Decorate 73(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
|
|
29: 14(bool) ConstantFalse
|
|
30: 14(bool) ConstantTrue
|
|
31: 15(bvec2) ConstantComposite 29 30
|
|
36: TypeInt 32 1
|
|
37: TypePointer Function 36(int)
|
|
39: TypePointer UniformConstant 36(int)
|
|
40(uniform_medium): 39(ptr) Variable UniformConstant
|
|
42(uniform_high): 39(ptr) Variable UniformConstant
|
|
48(uniform_low): 39(ptr) Variable UniformConstant
|
|
52: TypePointer Function 6(float)
|
|
54: 6(float) Constant 1078774989
|
|
56: 6(float) Constant 1232730691
|
|
58: TypePointer Input 6(float)
|
|
59(lowfin): 58(ptr) Variable Input
|
|
61(mediumfin): 58(ptr) Variable Input
|
|
64: TypePointer Private 6(float)
|
|
65(global_highp): 64(ptr) Variable Private
|
|
68: TypePointer Function 21(fvec4)
|
|
72: TypePointer Output 21(fvec4)
|
|
73(mediumfout): 72(ptr) Variable Output
|
|
82: 36(int) Constant 4
|
|
84: TypeVector 36(int) 2
|
|
92: TypeInt 32 0
|
|
93: 92(int) Constant 0
|
|
103: TypePointer UniformConstant 15(bvec2)
|
|
104(ub2): 103(ptr) Variable UniformConstant
|
|
111: 6(float) Constant 1065353216
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
38(sum): 37(ptr) Variable Function
|
|
53(arg1): 52(ptr) Variable Function
|
|
55(arg2): 52(ptr) Variable Function
|
|
57(d): 52(ptr) Variable Function
|
|
69(local_highp): 68(ptr) Variable Function
|
|
105(param): 16(ptr) Variable Function
|
|
41: 36(int) Load 40(uniform_medium)
|
|
43: 36(int) Load 42(uniform_high)
|
|
44: 36(int) IAdd 41 43
|
|
Store 38(sum) 44
|
|
45: 36(int) Load 42(uniform_high)
|
|
46: 36(int) Load 38(sum)
|
|
47: 36(int) IAdd 46 45
|
|
Store 38(sum) 47
|
|
49: 36(int) Load 48(uniform_low)
|
|
50: 36(int) Load 38(sum)
|
|
51: 36(int) IAdd 50 49
|
|
Store 38(sum) 51
|
|
Store 53(arg1) 54
|
|
Store 55(arg2) 56
|
|
60: 6(float) Load 59(lowfin)
|
|
62: 6(float) Load 61(mediumfin)
|
|
63: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 60 62
|
|
Store 57(d) 63
|
|
66: 21(fvec4) Load 23(highfin)
|
|
67: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 66
|
|
Store 65(global_highp) 67
|
|
70: 6(float) Load 65(global_highp)
|
|
71: 21(fvec4) CompositeConstruct 70 70 70 70
|
|
Store 69(local_highp) 71
|
|
74: 6(float) Load 57(d)
|
|
75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74
|
|
76: 21(fvec4) CompositeConstruct 75 75 75 75
|
|
77: 6(float) Load 55(arg2)
|
|
78: 21(fvec4) CompositeConstruct 77 77 77 77
|
|
79: 21(fvec4) FAdd 76 78
|
|
80: 21(fvec4) Load 69(local_highp)
|
|
81: 21(fvec4) FAdd 79 80
|
|
Store 73(mediumfout) 81
|
|
83: 36(int) Load 48(uniform_low)
|
|
85: 84(ivec2) CompositeConstruct 83 83
|
|
86: 36(int) Load 42(uniform_high)
|
|
87: 84(ivec2) CompositeConstruct 86 86
|
|
88: 84(ivec2) IMul 85 87
|
|
89: 36(int) Load 42(uniform_high)
|
|
90: 84(ivec2) CompositeConstruct 89 89
|
|
91: 84(ivec2) IAdd 88 90
|
|
94: 36(int) CompositeExtract 91 0
|
|
95: 36(int) IAdd 82 94
|
|
96: 36(int) Load 38(sum)
|
|
97: 36(int) IAdd 96 95
|
|
Store 38(sum) 97
|
|
98: 36(int) Load 38(sum)
|
|
99: 6(float) ConvertSToF 98
|
|
100: 21(fvec4) CompositeConstruct 99 99 99 99
|
|
101: 21(fvec4) Load 73(mediumfout)
|
|
102: 21(fvec4) FAdd 101 100
|
|
Store 73(mediumfout) 102
|
|
106: 15(bvec2) Load 104(ub2)
|
|
Store 105(param) 106
|
|
107: 14(bool) FunctionCall 19(boolfun(vb2;) 105(param)
|
|
SelectionMerge 109 None
|
|
BranchConditional 107 108 109
|
|
108: Label
|
|
110: 21(fvec4) Load 73(mediumfout)
|
|
112: 21(fvec4) CompositeConstruct 111 111 111 111
|
|
113: 21(fvec4) FAdd 110 112
|
|
Store 73(mediumfout) 113
|
|
Branch 109
|
|
109: 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
|
|
28: 15(bvec2) Load 18(bv2)
|
|
32: 15(bvec2) LogicalEqual 28 31
|
|
33: 14(bool) All 32
|
|
ReturnValue 33
|
|
FunctionEnd
|