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