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
63 lines
2.6 KiB
Plaintext
Executable File
63 lines
2.6 KiB
Plaintext
Executable File
spv.whileLoop.frag
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 34
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 11 32
|
|
ExecutionMode 4 OriginLowerLeft
|
|
Source GLSL 110
|
|
Name 4 "main"
|
|
Name 9 "color"
|
|
Name 11 "BaseColor"
|
|
Name 22 "d"
|
|
Name 27 "bigColor"
|
|
Name 32 "gl_FragColor"
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypePointer Function 7(fvec4)
|
|
10: TypePointer Input 7(fvec4)
|
|
11(BaseColor): 10(ptr) Variable Input
|
|
16: TypeInt 32 0
|
|
17: 16(int) Constant 0
|
|
18: TypePointer Function 6(float)
|
|
21: TypePointer UniformConstant 6(float)
|
|
22(d): 21(ptr) Variable UniformConstant
|
|
24: TypeBool
|
|
26: TypePointer UniformConstant 7(fvec4)
|
|
27(bigColor): 26(ptr) Variable UniformConstant
|
|
31: TypePointer Output 7(fvec4)
|
|
32(gl_FragColor): 31(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
9(color): 8(ptr) Variable Function
|
|
12: 7(fvec4) Load 11(BaseColor)
|
|
Store 9(color) 12
|
|
Branch 13
|
|
13: Label
|
|
19: 18(ptr) AccessChain 9(color) 17
|
|
20: 6(float) Load 19
|
|
23: 6(float) Load 22(d)
|
|
25: 24(bool) FOrdLessThan 20 23
|
|
LoopMerge 14 13 None
|
|
BranchConditional 25 15 14
|
|
15: Label
|
|
28: 7(fvec4) Load 27(bigColor)
|
|
29: 7(fvec4) Load 9(color)
|
|
30: 7(fvec4) FAdd 29 28
|
|
Store 9(color) 30
|
|
Branch 13
|
|
14: Label
|
|
33: 7(fvec4) Load 9(color)
|
|
Store 32(gl_FragColor) 33
|
|
Return
|
|
FunctionEnd
|