glslang/Test/baseResults/spv.bufferhandle13.frag.out
Jeff Bolz e135a4897a More precisely check for the qualifiers that enable the vulkan memory model for buffer references.
Not all memory qualifiers necessarily need the vulkan memory model, e.g. volatile/restrict that correspond to core SPIR-V features do not.
2019-01-20 00:59:38 -06:00

117 lines
5.7 KiB
Plaintext

spv.bufferhandle13.frag
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 58
Capability Shader
Capability CapabilityPhysicalStorageBufferAddressesEXT
Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_EXT_buffer_reference"
Name 4 "main"
Name 8 "t4"
MemberName 8(t4) 0 "j"
Name 11 "f1(1;"
Name 10 "y"
Name 16 "f2(1;"
Name 15 "y"
Name 19 "f3(1;"
Name 18 "y"
Name 22 "f4(1;"
Name 21 "y"
Name 34 "a"
Name 35 "t5"
MemberName 35(t5) 0 "m"
Name 37 "s5"
Name 42 "b"
Name 47 "param"
Name 52 "param"
Name 56 "g1"
Name 57 "g2"
MemberDecorate 8(t4) 0 Offset 0
Decorate 8(t4) Block
Decorate 10(y) Aliased
Decorate 15(y) DecorationAliasedPointerEXT
Decorate 18(y) Restrict
Decorate 18(y) Restrict
Decorate 21(y) Restrict
Decorate 21(y) DecorationRestrictPointerEXT
Decorate 34(a) DecorationAliasedPointerEXT
MemberDecorate 35(t5) 0 Offset 0
Decorate 35(t5) Block
Decorate 37(s5) DescriptorSet 0
Decorate 37(s5) Binding 0
Decorate 42(b) DecorationRestrictPointerEXT
Decorate 56(g1) DecorationAliasedPointerEXT
Decorate 57(g2) DecorationRestrictPointerEXT
Decorate 47(param) DecorationAliasedPointerEXT
Decorate 52(param) DecorationAliasedPointerEXT
2: TypeVoid
3: TypeFunction 2
TypeForwardPointer 6 PhysicalStorageBufferEXT
7: TypeInt 32 1
8(t4): TypeStruct 7(int)
6: TypePointer PhysicalStorageBufferEXT 8(t4)
9: TypeFunction 6(ptr) 6(ptr)
13: TypePointer Function 6(ptr)
14: TypeFunction 6(ptr) 13(ptr)
35(t5): TypeStruct 6(ptr)
36: TypePointer StorageBuffer 35(t5)
37(s5): 36(ptr) Variable StorageBuffer
38: 7(int) Constant 0
39: TypePointer StorageBuffer 6(ptr)
55: TypePointer Private 6(ptr)
56(g1): 55(ptr) Variable Private
4(main): 2 Function None 3
5: Label
34(a): 13(ptr) Variable Function
42(b): 13(ptr) Variable Function
47(param): 13(ptr) Variable Function
52(param): 13(ptr) Variable Function
57(g2): 13(ptr) Variable Function
40: 39(ptr) AccessChain 37(s5) 38
41: 6(ptr) Load 40
Store 34(a) 41
43: 39(ptr) AccessChain 37(s5) 38
44: 6(ptr) Load 43
Store 42(b) 44
45: 6(ptr) Load 34(a)
46: 6(ptr) FunctionCall 11(f1(1;) 45
48: 6(ptr) Load 34(a)
Store 47(param) 48
49: 6(ptr) FunctionCall 16(f2(1;) 47(param)
50: 6(ptr) Load 34(a)
51: 6(ptr) FunctionCall 19(f3(1;) 50
53: 6(ptr) Load 34(a)
Store 52(param) 53
54: 6(ptr) FunctionCall 22(f4(1;) 52(param)
Return
FunctionEnd
11(f1(1;): 6(ptr) Function None 9
10(y): 6(ptr) FunctionParameter
12: Label
ReturnValue 10(y)
FunctionEnd
16(f2(1;): 6(ptr) Function None 14
15(y): 13(ptr) FunctionParameter
17: Label
26: 6(ptr) Load 15(y)
ReturnValue 26
FunctionEnd
19(f3(1;): 6(ptr) Function None 9
18(y): 6(ptr) FunctionParameter
20: Label
ReturnValue 18(y)
FunctionEnd
22(f4(1;): 6(ptr) Function None 14
21(y): 13(ptr) FunctionParameter
23: Label
31: 6(ptr) Load 21(y)
ReturnValue 31
FunctionEnd