120 строки
5.1 KiB
Plaintext
120 строки
5.1 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.0
|
|
; Generator: Khronos Glslang Reference Front End; 7
|
|
; Bound: 59
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
|
|
OpExecutionMode %main LocalSize 1 1 1
|
|
OpSource GLSL 450
|
|
OpName %main "main"
|
|
OpName %Foo "A"
|
|
OpMemberName %Foo 0 "a"
|
|
OpMemberName %Foo 1 "b"
|
|
OpName %A "A"
|
|
OpMemberName %A 0 "Data"
|
|
OpName %C1 "C1"
|
|
OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
|
|
OpName %Foo_0 "A"
|
|
OpMemberName %Foo_0 0 "a"
|
|
OpMemberName %Foo_0 1 "b"
|
|
OpName %A_0 "A"
|
|
OpMemberName %A_0 0 "Data"
|
|
OpName %C2 "C2"
|
|
OpName %B "B"
|
|
OpMemberName %B 0 "Data"
|
|
OpName %C3 "C3"
|
|
OpName %B_0 "B"
|
|
OpMemberName %B_0 0 "Data"
|
|
OpName %C4 "C4"
|
|
OpMemberDecorate %Foo 0 Offset 0
|
|
OpMemberDecorate %Foo 1 Offset 4
|
|
OpDecorate %_runtimearr_Foo ArrayStride 8
|
|
OpMemberDecorate %A 0 Offset 0
|
|
OpDecorate %A BufferBlock
|
|
OpDecorate %C1 DescriptorSet 0
|
|
OpDecorate %C1 Binding 1
|
|
OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
|
|
OpMemberDecorate %Foo_0 0 Offset 0
|
|
OpMemberDecorate %Foo_0 1 Offset 4
|
|
OpDecorate %_arr_Foo_0_uint_1024 ArrayStride 16
|
|
OpMemberDecorate %A_0 0 Offset 0
|
|
OpDecorate %A_0 Block
|
|
OpDecorate %C2 DescriptorSet 0
|
|
OpDecorate %C2 Binding 2
|
|
OpDecorate %_runtimearr_Foo_0 ArrayStride 8
|
|
OpMemberDecorate %B 0 Offset 0
|
|
OpDecorate %B BufferBlock
|
|
OpDecorate %C3 DescriptorSet 0
|
|
OpDecorate %C3 Binding 0
|
|
OpDecorate %_arr_Foo_0_uint_1024_0 ArrayStride 16
|
|
OpMemberDecorate %B_0 0 Offset 0
|
|
OpDecorate %B_0 Block
|
|
OpDecorate %C4 DescriptorSet 0
|
|
OpDecorate %C4 Binding 3
|
|
%void = OpTypeVoid
|
|
%3 = OpTypeFunction %void
|
|
%int = OpTypeInt 32 1
|
|
%Foo = OpTypeStruct %int %int
|
|
%_runtimearr_Foo = OpTypeRuntimeArray %Foo
|
|
%A = OpTypeStruct %_runtimearr_Foo
|
|
%_ptr_Uniform_A = OpTypePointer Uniform %A
|
|
%C1 = OpVariable %_ptr_Uniform_A Uniform
|
|
%int_0 = OpConstant %int 0
|
|
%uint = OpTypeInt 32 0
|
|
%v3uint = OpTypeVector %uint 3
|
|
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
|
|
%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
|
|
%uint_0 = OpConstant %uint 0
|
|
%_ptr_Input_uint = OpTypePointer Input %uint
|
|
%Foo_0 = OpTypeStruct %int %int
|
|
%uint_1024 = OpConstant %uint 1024
|
|
%_arr_Foo_0_uint_1024 = OpTypeArray %Foo_0 %uint_1024
|
|
%A_0 = OpTypeStruct %_arr_Foo_0_uint_1024
|
|
%_ptr_Uniform_A_0 = OpTypePointer Uniform %A_0
|
|
%C2 = OpVariable %_ptr_Uniform_A_0 Uniform
|
|
%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0
|
|
%_ptr_Uniform_Foo = OpTypePointer Uniform %Foo
|
|
%_ptr_Uniform_int = OpTypePointer Uniform %int
|
|
%int_1 = OpConstant %int 1
|
|
%_runtimearr_Foo_0 = OpTypeRuntimeArray %Foo
|
|
%B = OpTypeStruct %_runtimearr_Foo_0
|
|
%_ptr_Uniform_B = OpTypePointer Uniform %B
|
|
%C3 = OpVariable %_ptr_Uniform_B Uniform
|
|
%_arr_Foo_0_uint_1024_0 = OpTypeArray %Foo_0 %uint_1024
|
|
%B_0 = OpTypeStruct %_arr_Foo_0_uint_1024_0
|
|
%_ptr_Uniform_B_0 = OpTypePointer Uniform %B_0
|
|
%C4 = OpVariable %_ptr_Uniform_B_0 Uniform
|
|
%main = OpFunction %void None %3
|
|
%5 = OpLabel
|
|
%19 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
|
|
%20 = OpLoad %uint %19
|
|
%27 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
|
|
%28 = OpLoad %uint %27
|
|
%30 = OpAccessChain %_ptr_Uniform_Foo_0 %C2 %int_0 %28
|
|
%31 = OpLoad %Foo_0 %30
|
|
%33 = OpAccessChain %_ptr_Uniform_Foo %C1 %int_0 %20
|
|
%34 = OpCompositeExtract %int %31 0
|
|
%36 = OpAccessChain %_ptr_Uniform_int %33 %int_0
|
|
OpStore %36 %34
|
|
%37 = OpCompositeExtract %int %31 1
|
|
%39 = OpAccessChain %_ptr_Uniform_int %33 %int_1
|
|
OpStore %39 %37
|
|
%44 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
|
|
%45 = OpLoad %uint %44
|
|
%50 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
|
|
%51 = OpLoad %uint %50
|
|
%52 = OpAccessChain %_ptr_Uniform_Foo_0 %C4 %int_0 %51
|
|
%53 = OpLoad %Foo_0 %52
|
|
%54 = OpAccessChain %_ptr_Uniform_Foo %C3 %int_0 %45
|
|
%55 = OpCompositeExtract %int %53 0
|
|
%56 = OpAccessChain %_ptr_Uniform_int %54 %int_0
|
|
OpStore %56 %55
|
|
%57 = OpCompositeExtract %int %53 1
|
|
%58 = OpAccessChain %_ptr_Uniform_int %54 %int_1
|
|
OpStore %58 %57
|
|
OpReturn
|
|
OpFunctionEnd
|