1; SPIR-V 2; Version: 1.0 3; Generator: Khronos Glslang Reference Front End; 10 4; Bound: 59 5; Schema: 0 6 OpCapability Shader 7 OpCapability PhysicalStorageBufferAddresses 8 OpExtension "SPV_EXT_physical_storage_buffer" 9 %1 = OpExtInstImport "GLSL.std.450" 10 OpMemoryModel PhysicalStorageBuffer64 GLSL450 11 OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID 12 OpExecutionMode %main LocalSize 64 1 1 13 OpSource GLSL 450 14 OpSourceExtension "GL_EXT_buffer_reference" 15 OpName %main "main" 16 OpName %Registers "Registers" 17 OpMemberName %Registers 0 "ro" 18 OpMemberName %Registers 1 "rw" 19 OpMemberName %Registers 2 "wo" 20 OpName %RO "Alias" 21 OpMemberName %RO 0 "v" 22 OpName %RW "Alias" 23 OpMemberName %RW 0 "v" 24 OpName %WO "Alias" 25 OpMemberName %WO 0 "v" 26 OpName %registers "registers" 27 OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" 28 OpMemberDecorate %Registers 0 Offset 0 29 OpMemberDecorate %Registers 1 Offset 8 30 OpMemberDecorate %Registers 2 Offset 16 31 OpDecorate %Registers Block 32 OpDecorate %_runtimearr_v4float ArrayStride 16 33 OpMemberDecorate %RO 0 NonWritable 34 OpMemberDecorate %RO 0 Offset 0 35 OpDecorate %RO Block 36 OpDecorate %_runtimearr_v4float_0 ArrayStride 16 37 OpMemberDecorate %RW 0 Restrict 38 OpMemberDecorate %RW 0 Offset 0 39 OpDecorate %RW Block 40 OpDecorate %_runtimearr_v4float_1 ArrayStride 16 41 OpMemberDecorate %WO 0 Coherent 42 OpMemberDecorate %WO 0 NonReadable 43 OpMemberDecorate %WO 0 Offset 0 44 OpDecorate %WO Block 45 OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId 46 OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize 47 %void = OpTypeVoid 48 %3 = OpTypeFunction %void 49 OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_RO PhysicalStorageBuffer 50 OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_RW PhysicalStorageBuffer 51 OpTypeForwardPointer %_ptr_PhysicalStorageBuffer_WO PhysicalStorageBuffer 52 %Registers = OpTypeStruct %_ptr_PhysicalStorageBuffer_RO %_ptr_PhysicalStorageBuffer_RW %_ptr_PhysicalStorageBuffer_WO 53 %float = OpTypeFloat 32 54 %v4float = OpTypeVector %float 4 55%_runtimearr_v4float = OpTypeRuntimeArray %v4float 56 %RO = OpTypeStruct %_runtimearr_v4float 57%_ptr_PhysicalStorageBuffer_RO = OpTypePointer PhysicalStorageBuffer %RO 58%_runtimearr_v4float_0 = OpTypeRuntimeArray %v4float 59 %RW = OpTypeStruct %_runtimearr_v4float_0 60%_ptr_PhysicalStorageBuffer_RW = OpTypePointer PhysicalStorageBuffer %RW 61%_runtimearr_v4float_1 = OpTypeRuntimeArray %v4float 62 %WO = OpTypeStruct %_runtimearr_v4float_1 63%_ptr_PhysicalStorageBuffer_WO = OpTypePointer PhysicalStorageBuffer %WO 64%_ptr_PushConstant_Registers = OpTypePointer PushConstant %Registers 65 %registers = OpVariable %_ptr_PushConstant_Registers PushConstant 66 %int = OpTypeInt 32 1 67 %int_1 = OpConstant %int 1 68%_ptr_PushConstant__ptr_PhysicalStorageBuffer_RW = OpTypePointer PushConstant %_ptr_PhysicalStorageBuffer_RW 69 %int_0 = OpConstant %int 0 70 %uint = OpTypeInt 32 0 71 %v3uint = OpTypeVector %uint 3 72%_ptr_Input_v3uint = OpTypePointer Input %v3uint 73%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input 74 %uint_0 = OpConstant %uint 0 75%_ptr_Input_uint = OpTypePointer Input %uint 76%_ptr_PushConstant__ptr_PhysicalStorageBuffer_RO = OpTypePointer PushConstant %_ptr_PhysicalStorageBuffer_RO 77%_ptr_PhysicalStorageBuffer_v4float = OpTypePointer PhysicalStorageBuffer %v4float 78 %int_2 = OpConstant %int 2 79%_ptr_PushConstant__ptr_PhysicalStorageBuffer_WO = OpTypePointer PushConstant %_ptr_PhysicalStorageBuffer_WO 80 %uint_64 = OpConstant %uint 64 81 %uint_1 = OpConstant %uint 1 82%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_64 %uint_1 %uint_1 83 %main = OpFunction %void None %3 84 %5 = OpLabel 85 %23 = OpAccessChain %_ptr_PushConstant__ptr_PhysicalStorageBuffer_RW %registers %int_1 86 %24 = OpLoad %_ptr_PhysicalStorageBuffer_RW %23 87 %32 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 88 %33 = OpLoad %uint %32 89 %35 = OpAccessChain %_ptr_PushConstant__ptr_PhysicalStorageBuffer_RO %registers %int_0 90 %36 = OpLoad %_ptr_PhysicalStorageBuffer_RO %35 91 %37 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 92 %38 = OpLoad %uint %37 93 %40 = OpAccessChain %_ptr_PhysicalStorageBuffer_v4float %36 %int_0 %38 94 %41 = OpLoad %v4float %40 Aligned 16 95 %42 = OpAccessChain %_ptr_PhysicalStorageBuffer_v4float %24 %int_0 %33 96 OpStore %42 %41 Aligned 16 97 %45 = OpAccessChain %_ptr_PushConstant__ptr_PhysicalStorageBuffer_WO %registers %int_2 98 %46 = OpLoad %_ptr_PhysicalStorageBuffer_WO %45 99 %47 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 100 %48 = OpLoad %uint %47 101 %49 = OpAccessChain %_ptr_PushConstant__ptr_PhysicalStorageBuffer_RO %registers %int_0 102 %50 = OpLoad %_ptr_PhysicalStorageBuffer_RO %49 103 %51 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 104 %52 = OpLoad %uint %51 105 %53 = OpAccessChain %_ptr_PhysicalStorageBuffer_v4float %50 %int_0 %52 106 %54 = OpLoad %v4float %53 Aligned 16 107 %55 = OpAccessChain %_ptr_PhysicalStorageBuffer_v4float %46 %int_0 %48 108 OpStore %55 %54 Aligned 16 109 OpReturn 110 OpFunctionEnd 111