spv.debugInfo.frag // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 126 Capability Shader 2: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 5 "main" 24 52 ExecutionMode 5 OriginUpperLeft 1: String "spv.debugInfo.frag" Source GLSL 450 1 "#version 450 struct S { int a; }; uniform ubuf { S s; }; uniform sampler2D s2d; layout(location = 0) in vec4 inv; layout(location = 0) out vec4 outv; vec4 foo(S s) { vec4 r = s.a * inv; ++r; if (r.x > 3.0) --r; else r *= 2; return r; } void main() { outv = foo(s); outv += texture(s2d, vec2(0.5)); switch (s.a) { case 10: ++outv; break; case 20: outv = 2 * outv; ++outv; break; default: --outv; break; } for (int i = 0; i < 10; ++i) outv *= 3.0; outv.x < 10.0 ? outv = sin(outv) : outv = cos(outv); }" Name 5 "main" Name 8 "S" MemberName 8(S) 0 "a" Name 14 "foo(struct-S-i11;" Name 13 "s" Name 17 "r" Name 24 "inv" Name 52 "outv" Name 53 "S" MemberName 53(S) 0 "a" Name 54 "ubuf" MemberName 54(ubuf) 0 "s" Name 56 "" Name 57 "S" MemberName 57(S) 0 "a" Name 59 "param" Name 69 "s2d" Name 99 "i" Decorate 24(inv) Location 0 Decorate 52(outv) Location 0 MemberDecorate 53(S) 0 Offset 0 MemberDecorate 54(ubuf) 0 Offset 0 Decorate 54(ubuf) Block Decorate 56 DescriptorSet 0 Decorate 69(s2d) DescriptorSet 0 3: TypeVoid 4: TypeFunction 3 7: TypeInt 32 1 8(S): TypeStruct 7(int) 9: TypePointer Function 8(S) 10: TypeFloat 32 11: TypeVector 10(float) 4 12: TypeFunction 11(fvec4) 9(ptr) 16: TypePointer Function 11(fvec4) 18: 7(int) Constant 0 19: TypePointer Function 7(int) 23: TypePointer Input 11(fvec4) 24(inv): 23(ptr) Variable Input 28: 10(float) Constant 1065353216 31: TypeInt 32 0 32: 31(int) Constant 0 33: TypePointer Function 10(float) 36: 10(float) Constant 1077936128 37: TypeBool 45: 10(float) Constant 1073741824 51: TypePointer Output 11(fvec4) 52(outv): 51(ptr) Variable Output 53(S): TypeStruct 7(int) 54(ubuf): TypeStruct 53(S) 55: TypePointer Uniform 54(ubuf) 56: 55(ptr) Variable Uniform 57(S): TypeStruct 7(int) 58: TypePointer Function 57(S) 60: TypePointer Uniform 53(S) 66: TypeImage 10(float) 2D sampled format:Unknown 67: TypeSampledImage 66 68: TypePointer UniformConstant 67 69(s2d): 68(ptr) Variable UniformConstant 71: TypeVector 10(float) 2 72: 10(float) Constant 1056964608 73: 71(fvec2) ConstantComposite 72 72 77: TypePointer Uniform 7(int) 106: 7(int) Constant 10 111: 7(int) Constant 1 114: TypePointer Output 10(float) 117: 10(float) Constant 1092616192 5(main): 3 Function None 4 6: Label 59(param): 58(ptr) Variable Function 99(i): 19(ptr) Variable Function 113: 16(ptr) Variable Function Line 1 30 0 61: 60(ptr) AccessChain 56 18 62: 53(S) Load 61 63: 7(int) CompositeExtract 62 0 64: 19(ptr) AccessChain 59(param) 18 Store 64 63 65: 11(fvec4) FunctionCall 14(foo(struct-S-i11;) 59(param) Store 52(outv) 65 Line 1 31 0 70: 67 Load 69(s2d) 74: 11(fvec4) ImageSampleImplicitLod 70 73 75: 11(fvec4) Load 52(outv) 76: 11(fvec4) FAdd 75 74 Store 52(outv) 76 Line 1 33 0 78: 77(ptr) AccessChain 56 18 18 79: 7(int) Load 78 SelectionMerge 83 None Switch 79 82 case 10: 80 case 20: 81 82: Label Line 1 42 0 94: 11(fvec4) Load 52(outv) 95: 11(fvec4) CompositeConstruct 28 28 28 28 96: 11(fvec4) FSub 94 95 Store 52(outv) 96 Line 1 43 0 Branch 83 80: Label Line 1 35 0 84: 11(fvec4) Load 52(outv) 85: 11(fvec4) CompositeConstruct 28 28 28 28 86: 11(fvec4) FAdd 84 85 Store 52(outv) 86 Line 1 36 0 Branch 83 81: Label Line 1 38 0 88: 11(fvec4) Load 52(outv) 89: 11(fvec4) VectorTimesScalar 88 45 Store 52(outv) 89 Line 1 39 0 90: 11(fvec4) Load 52(outv) 91: 11(fvec4) CompositeConstruct 28 28 28 28 92: 11(fvec4) FAdd 90 91 Store 52(outv) 92 Line 1 40 0 Branch 83 83: Label Line 1 46 0 Store 99(i) 18 Branch 100 100: Label LoopMerge 102 103 None Branch 104 104: Label 105: 7(int) Load 99(i) 107: 37(bool) SLessThan 105 106 BranchConditional 107 101 102 101: Label Line 1 47 0 108: 11(fvec4) Load 52(outv) 109: 11(fvec4) VectorTimesScalar 108 36 Store 52(outv) 109 Branch 103 103: Label Line 1 46 0 110: 7(int) Load 99(i) 112: 7(int) IAdd 110 111 Store 99(i) 112 Branch 100 102: Label Line 1 49 0 115: 114(ptr) AccessChain 52(outv) 32 116: 10(float) Load 115 118: 37(bool) FOrdLessThan 116 117 SelectionMerge 120 None BranchConditional 118 119 123 119: Label Line 1 50 0 121: 11(fvec4) Load 52(outv) 122: 11(fvec4) ExtInst 2(GLSL.std.450) 13(Sin) 121 Store 52(outv) 122 Store 113 122 Branch 120 123: Label Line 1 51 0 124: 11(fvec4) Load 52(outv) 125: 11(fvec4) ExtInst 2(GLSL.std.450) 14(Cos) 124 Store 52(outv) 125 Store 113 125 Branch 120 120: Label Return FunctionEnd 14(foo(struct-S-i11;): 11(fvec4) Function None 12 13(s): 9(ptr) FunctionParameter 15: Label 17(r): 16(ptr) Variable Function Line 1 18 0 20: 19(ptr) AccessChain 13(s) 18 21: 7(int) Load 20 22: 10(float) ConvertSToF 21 25: 11(fvec4) Load 24(inv) 26: 11(fvec4) VectorTimesScalar 25 22 Store 17(r) 26 Line 1 19 0 27: 11(fvec4) Load 17(r) 29: 11(fvec4) CompositeConstruct 28 28 28 28 30: 11(fvec4) FAdd 27 29 Store 17(r) 30 Line 1 20 0 34: 33(ptr) AccessChain 17(r) 32 35: 10(float) Load 34 38: 37(bool) FOrdGreaterThan 35 36 SelectionMerge 40 None BranchConditional 38 39 44 39: Label Line 1 21 0 41: 11(fvec4) Load 17(r) 42: 11(fvec4) CompositeConstruct 28 28 28 28 43: 11(fvec4) FSub 41 42 Store 17(r) 43 Branch 40 44: Label Line 1 23 0 46: 11(fvec4) Load 17(r) 47: 11(fvec4) VectorTimesScalar 46 45 Store 17(r) 47 Branch 40 40: Label Line 1 25 0 48: 11(fvec4) Load 17(r) ReturnValue 48 FunctionEnd