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.
99 lines
4.7 KiB
Plaintext
99 lines
4.7 KiB
Plaintext
spv.bool.vert
|
|
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
|
|
|
|
|
Linked vertex stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 50
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Vertex 4 "main" 24 48 49
|
|
Source GLSL 450
|
|
Name 4 "main"
|
|
Name 10 "foo(b1;"
|
|
Name 9 "b"
|
|
Name 22 "gl_PerVertex"
|
|
MemberName 22(gl_PerVertex) 0 "gl_Position"
|
|
MemberName 22(gl_PerVertex) 1 "gl_PointSize"
|
|
MemberName 22(gl_PerVertex) 2 "gl_ClipDistance"
|
|
MemberName 22(gl_PerVertex) 3 "gl_CullDistance"
|
|
Name 24 ""
|
|
Name 29 "ubname"
|
|
MemberName 29(ubname) 0 "b"
|
|
Name 31 "ubinst"
|
|
Name 32 "param"
|
|
Name 48 "gl_VertexID"
|
|
Name 49 "gl_InstanceID"
|
|
MemberDecorate 22(gl_PerVertex) 0 BuiltIn Position
|
|
MemberDecorate 22(gl_PerVertex) 1 BuiltIn PointSize
|
|
MemberDecorate 22(gl_PerVertex) 2 BuiltIn ClipDistance
|
|
MemberDecorate 22(gl_PerVertex) 3 BuiltIn CullDistance
|
|
Decorate 22(gl_PerVertex) Block
|
|
Decorate 29(ubname) GLSLShared
|
|
Decorate 29(ubname) Block
|
|
Decorate 48(gl_VertexID) BuiltIn VertexId
|
|
Decorate 49(gl_InstanceID) BuiltIn InstanceId
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeBool
|
|
7: TypePointer Function 6(bool)
|
|
8: TypeFunction 6(bool) 7(ptr)
|
|
13: 6(bool) ConstantFalse
|
|
17: TypeFloat 32
|
|
18: TypeVector 17(float) 4
|
|
19: TypeInt 32 0
|
|
20: 19(int) Constant 1
|
|
21: TypeArray 17(float) 20
|
|
22(gl_PerVertex): TypeStruct 18(fvec4) 17(float) 21 21
|
|
23: TypePointer Output 22(gl_PerVertex)
|
|
24: 23(ptr) Variable Output
|
|
25: TypeInt 32 1
|
|
26: 25(int) Constant 0
|
|
27: TypePointer Function 18(fvec4)
|
|
29(ubname): TypeStruct 6(bool)
|
|
30: TypePointer Uniform 29(ubname)
|
|
31(ubinst): 30(ptr) Variable Uniform
|
|
33: TypePointer Uniform 6(bool)
|
|
39: 17(float) Constant 0
|
|
40: 18(fvec4) ConstantComposite 39 39 39 39
|
|
42: 17(float) Constant 1065353216
|
|
43: 18(fvec4) ConstantComposite 42 42 42 42
|
|
45: TypePointer Output 18(fvec4)
|
|
47: TypePointer Input 25(int)
|
|
48(gl_VertexID): 47(ptr) Variable Input
|
|
49(gl_InstanceID): 47(ptr) Variable Input
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
28: 27(ptr) Variable Function
|
|
32(param): 7(ptr) Variable Function
|
|
34: 33(ptr) AccessChain 31(ubinst) 26
|
|
35: 6(bool) Load 34
|
|
Store 32(param) 35
|
|
36: 6(bool) FunctionCall 10(foo(b1;) 32(param)
|
|
SelectionMerge 38 None
|
|
BranchConditional 36 37 41
|
|
37: Label
|
|
Store 28 40
|
|
Branch 38
|
|
41: Label
|
|
Store 28 43
|
|
Branch 38
|
|
38: Label
|
|
44: 18(fvec4) Load 28
|
|
46: 45(ptr) AccessChain 24 26
|
|
Store 46 44
|
|
Return
|
|
FunctionEnd
|
|
10(foo(b1;): 6(bool) Function None 8
|
|
9(b): 7(ptr) FunctionParameter
|
|
11: Label
|
|
12: 6(bool) Load 9(b)
|
|
14: 6(bool) INotEqual 12 13
|
|
ReturnValue 14
|
|
FunctionEnd
|