SPIRV-Cross/shaders-msl/asm/comp/block-name-alias-global.asm...

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