
After construction, the Loop is effectively const. This perturbs the IDs in SPIR-V tests because the body block is created before generating any of the loop code, rather than only when the body is first referenced.
62 lines
2.7 KiB
Plaintext
62 lines
2.7 KiB
Plaintext
spv.whileLoop.frag
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 99
|
|
// Generated by (magic number): 51a00bb
|
|
// Id's are bound by 32
|
|
|
|
Source GLSL 110
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4
|
|
Name 4 "main"
|
|
Name 10 "color"
|
|
Name 12 "BaseColor"
|
|
Name 20 "d"
|
|
Name 25 "bigColor"
|
|
Name 30 "gl_FragColor"
|
|
Decorate 12(BaseColor) Smooth
|
|
Decorate 30(gl_FragColor) BuiltIn FragColor
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
7: TypeFloat 32
|
|
8: TypeVector 7(float) 4
|
|
9: TypePointer Function 8(fvec4)
|
|
11: TypePointer Input 8(fvec4)
|
|
12(BaseColor): 11(ptr) Variable Input
|
|
19: TypePointer UniformConstant 7(float)
|
|
20(d): 19(ptr) Variable UniformConstant
|
|
22: TypeBool
|
|
24: TypePointer UniformConstant 8(fvec4)
|
|
25(bigColor): 24(ptr) Variable UniformConstant
|
|
29: TypePointer Output 8(fvec4)
|
|
30(gl_FragColor): 29(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
10(color): 9(ptr) Variable Function
|
|
13: 8(fvec4) Load 12(BaseColor)
|
|
Store 10(color) 13
|
|
Branch 14
|
|
14: Label
|
|
17: 8(fvec4) Load 10(color)
|
|
18: 7(float) CompositeExtract 17 0
|
|
21: 7(float) Load 20(d)
|
|
23: 22(bool) FOrdLessThan 18 21
|
|
LoopMerge 15 None
|
|
BranchConditional 23 16 15
|
|
16: Label
|
|
26: 8(fvec4) Load 25(bigColor)
|
|
27: 8(fvec4) Load 10(color)
|
|
28: 8(fvec4) FAdd 27 26
|
|
Store 10(color) 28
|
|
Branch 14
|
|
15: Label
|
|
31: 8(fvec4) Load 10(color)
|
|
Store 30(gl_FragColor) 31
|
|
Branch 6
|
|
6: Label
|
|
Return
|
|
FunctionEnd
|