1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 7
4; Bound: 45
5; Schema: 0
6               OpCapability Shader
7               OpCapability FragmentShaderPixelInterlockEXT
8               OpExtension "SPV_EXT_fragment_shader_interlock"
9          %1 = OpExtInstImport "GLSL.std.450"
10               OpMemoryModel Logical GLSL450
11               OpEntryPoint Fragment %main "main" %gl_FragCoord
12               OpExecutionMode %main OriginUpperLeft
13               OpExecutionMode %main PixelInterlockOrderedEXT
14               OpSource GLSL 450
15               OpSourceExtension "GL_ARB_fragment_shader_interlock"
16               OpName %main "main"
17               OpName %callee2_ "callee2("
18               OpName %callee_ "callee("
19               OpName %SSBO1 "SSBO1"
20               OpMemberName %SSBO1 0 "values1"
21               OpName %_ ""
22               OpName %gl_FragCoord "gl_FragCoord"
23               OpName %SSBO0 "SSBO0"
24               OpMemberName %SSBO0 0 "values0"
25               OpName %__0 ""
26               OpDecorate %_runtimearr_uint ArrayStride 4
27               OpMemberDecorate %SSBO1 0 Offset 0
28               OpDecorate %SSBO1 BufferBlock
29               OpDecorate %_ DescriptorSet 0
30               OpDecorate %_ Binding 1
31               OpDecorate %gl_FragCoord BuiltIn FragCoord
32               OpDecorate %_runtimearr_uint_0 ArrayStride 4
33               OpMemberDecorate %SSBO0 0 Offset 0
34               OpDecorate %SSBO0 BufferBlock
35               OpDecorate %__0 DescriptorSet 0
36               OpDecorate %__0 Binding 0
37       %void = OpTypeVoid
38          %3 = OpTypeFunction %void
39       %uint = OpTypeInt 32 0
40%_runtimearr_uint = OpTypeRuntimeArray %uint
41      %SSBO1 = OpTypeStruct %_runtimearr_uint
42%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1
43          %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform
44        %int = OpTypeInt 32 1
45      %int_0 = OpConstant %int 0
46      %float = OpTypeFloat 32
47    %v4float = OpTypeVector %float 4
48%_ptr_Input_v4float = OpTypePointer Input %v4float
49%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
50     %uint_0 = OpConstant %uint 0
51%_ptr_Input_float = OpTypePointer Input %float
52     %uint_1 = OpConstant %uint 1
53%_ptr_Uniform_uint = OpTypePointer Uniform %uint
54%_runtimearr_uint_0 = OpTypeRuntimeArray %uint
55      %SSBO0 = OpTypeStruct %_runtimearr_uint_0
56%_ptr_Uniform_SSBO0 = OpTypePointer Uniform %SSBO0
57        %__0 = OpVariable %_ptr_Uniform_SSBO0 Uniform
58       %main = OpFunction %void None %3
59          %5 = OpLabel
60         %44 = OpFunctionCall %void %callee_
61		 %call3res = OpFunctionCall %void %callee3_
62		 %call4res = OpFunctionCall %void %callee4_
63               OpReturn
64               OpFunctionEnd
65
66   %callee3_ = OpFunction %void None %3
67   	      %begin3 = OpLabel
68               OpBeginInvocationInterlockEXT
69			   OpReturn
70               OpFunctionEnd
71
72   %callee4_ = OpFunction %void None %3
73   	      %begin4 = OpLabel
74               OpEndInvocationInterlockEXT
75			   OpReturn
76               OpFunctionEnd
77
78   %callee2_ = OpFunction %void None %3
79          %7 = OpLabel
80         %23 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0
81         %24 = OpLoad %float %23
82         %25 = OpConvertFToS %int %24
83         %28 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25
84         %29 = OpLoad %uint %28
85         %30 = OpIAdd %uint %29 %uint_1
86         %31 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %25
87               OpStore %31 %30
88               OpReturn
89               OpFunctionEnd
90    %callee_ = OpFunction %void None %3
91          %9 = OpLabel
92         %36 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0
93         %37 = OpLoad %float %36
94         %38 = OpConvertFToS %int %37
95         %39 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38
96         %40 = OpLoad %uint %39
97         %41 = OpIAdd %uint %40 %uint_1
98         %42 = OpAccessChain %_ptr_Uniform_uint %__0 %int_0 %38
99               OpStore %42 %41
100         %43 = OpFunctionCall %void %callee2_
101               OpReturn
102               OpFunctionEnd
103