119 lines
5.4 KiB
Plaintext
119 lines
5.4 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.0
|
|
; Generator: Khronos Glslang Reference Front End; 8
|
|
; Bound: 437
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %main "main"
|
|
OpExecutionMode %main LocalSize 1 1 1
|
|
OpSource GLSL 450
|
|
OpName %main "main"
|
|
OpName %Baz "Baz"
|
|
OpMemberName %Baz 0 "c"
|
|
OpName %Bar "Bar"
|
|
OpMemberName %Bar 0 "d"
|
|
OpMemberName %Bar 1 "baz"
|
|
OpName %Foo "Foo"
|
|
OpMemberName %Foo 0 "a"
|
|
OpMemberName %Foo 1 "b"
|
|
OpMemberName %Foo 2 "c"
|
|
OpName %Baz_0 "Baz"
|
|
OpMemberName %Baz_0 0 "c"
|
|
OpName %Bar_0 "Bar"
|
|
OpMemberName %Bar_0 0 "d"
|
|
OpMemberName %Bar_0 1 "baz"
|
|
OpName %Foo_0 "Foo"
|
|
OpMemberName %Foo_0 0 "a"
|
|
OpMemberName %Foo_0 1 "b"
|
|
OpMemberName %Foo_0 2 "c"
|
|
OpName %SSBO "SSBO"
|
|
OpMemberName %SSBO 0 "foo"
|
|
OpMemberName %SSBO 1 "foo2"
|
|
OpName %_ ""
|
|
OpDecorate %_arr_float_uint_4_0 ArrayStride 4
|
|
OpDecorate %_arr__arr_float_uint_4_0_uint_2 ArrayStride 16
|
|
OpMemberDecorate %Baz_0 0 Offset 0
|
|
OpDecorate %_arr_Baz_0_uint_2 ArrayStride 4
|
|
OpMemberDecorate %Bar_0 0 Offset 0
|
|
OpMemberDecorate %Bar_0 1 Offset 32
|
|
OpDecorate %_arr_Bar_0_uint_5 ArrayStride 40
|
|
OpMemberDecorate %Foo_0 0 RowMajor
|
|
OpMemberDecorate %Foo_0 0 Offset 0
|
|
OpMemberDecorate %Foo_0 0 MatrixStride 8
|
|
OpMemberDecorate %Foo_0 1 Offset 16
|
|
OpMemberDecorate %Foo_0 2 Offset 24
|
|
OpMemberDecorate %SSBO 0 Offset 0
|
|
OpMemberDecorate %SSBO 1 Offset 224
|
|
OpDecorate %SSBO BufferBlock
|
|
OpDecorate %_ DescriptorSet 0
|
|
OpDecorate %_ Binding 0
|
|
OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
|
|
%void = OpTypeVoid
|
|
%3 = OpTypeFunction %void
|
|
%float = OpTypeFloat 32
|
|
%v2float = OpTypeVector %float 2
|
|
%mat2v2float = OpTypeMatrix %v2float 2
|
|
%uint = OpTypeInt 32 0
|
|
%uint_4 = OpConstant %uint 4
|
|
%_arr_float_uint_4 = OpTypeArray %float %uint_4
|
|
%uint_2 = OpConstant %uint 2
|
|
%_arr__arr_float_uint_4_uint_2 = OpTypeArray %_arr_float_uint_4 %uint_2
|
|
%Baz = OpTypeStruct %float
|
|
%_arr_Baz_uint_2 = OpTypeArray %Baz %uint_2
|
|
%Bar = OpTypeStruct %_arr__arr_float_uint_4_uint_2 %_arr_Baz_uint_2
|
|
%uint_5 = OpConstant %uint 5
|
|
%_arr_Bar_uint_5 = OpTypeArray %Bar %uint_5
|
|
%Foo = OpTypeStruct %mat2v2float %v2float %_arr_Bar_uint_5
|
|
%_ptr_Function_Foo = OpTypePointer Function %Foo
|
|
%_arr_float_uint_4_0 = OpTypeArray %float %uint_4
|
|
%_arr__arr_float_uint_4_0_uint_2 = OpTypeArray %_arr_float_uint_4_0 %uint_2
|
|
%Baz_0 = OpTypeStruct %float
|
|
%_arr_Baz_0_uint_2 = OpTypeArray %Baz_0 %uint_2
|
|
%Bar_0 = OpTypeStruct %_arr__arr_float_uint_4_0_uint_2 %_arr_Baz_0_uint_2
|
|
%_arr_Bar_0_uint_5 = OpTypeArray %Bar_0 %uint_5
|
|
%Foo_0 = OpTypeStruct %mat2v2float %v2float %_arr_Bar_0_uint_5
|
|
%SSBO = OpTypeStruct %Foo_0 %Foo_0
|
|
%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO
|
|
%_ = OpVariable %_ptr_Uniform_SSBO Uniform
|
|
%int = OpTypeInt 32 1
|
|
%int_0 = OpConstant %int 0
|
|
%_ptr_Uniform_Foo_0 = OpTypePointer Uniform %Foo_0
|
|
%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
|
|
%int_1 = OpConstant %int 1
|
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
|
%int_2 = OpConstant %int 2
|
|
%_ptr_Function__arr_Bar_uint_5 = OpTypePointer Function %_arr_Bar_uint_5
|
|
%_ptr_Function_Bar = OpTypePointer Function %Bar
|
|
%_ptr_Function__arr__arr_float_uint_4_uint_2 = OpTypePointer Function %_arr__arr_float_uint_4_uint_2
|
|
%_ptr_Function__arr_float_uint_4 = OpTypePointer Function %_arr_float_uint_4
|
|
%_ptr_Function_float = OpTypePointer Function %float
|
|
%int_3 = OpConstant %int 3
|
|
%_ptr_Function__arr_Baz_uint_2 = OpTypePointer Function %_arr_Baz_uint_2
|
|
%_ptr_Function_Baz = OpTypePointer Function %Baz
|
|
%int_4 = OpConstant %int 4
|
|
%float_1 = OpConstant %float 1
|
|
%float_2 = OpConstant %float 2
|
|
%float_5 = OpConstant %float 5
|
|
%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float
|
|
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
|
|
%_ptr_Uniform__arr_Bar_0_uint_5 = OpTypePointer Uniform %_arr_Bar_0_uint_5
|
|
%_ptr_Uniform_Bar_0 = OpTypePointer Uniform %Bar_0
|
|
%_ptr_Uniform__arr__arr_float_uint_4_0_uint_2 = OpTypePointer Uniform %_arr__arr_float_uint_4_0_uint_2
|
|
%_ptr_Uniform__arr_float_uint_4_0 = OpTypePointer Uniform %_arr_float_uint_4_0
|
|
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
|
%_ptr_Uniform__arr_Baz_0_uint_2 = OpTypePointer Uniform %_arr_Baz_0_uint_2
|
|
%_ptr_Uniform_Baz_0 = OpTypePointer Uniform %Baz_0
|
|
%v3uint = OpTypeVector %uint 3
|
|
%uint_1 = OpConstant %uint 1
|
|
%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
|
%main = OpFunction %void None %3
|
|
%5 = OpLabel
|
|
%ptr_load = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_0
|
|
%ptr_store = OpAccessChain %_ptr_Uniform_Foo_0 %_ %int_1
|
|
%loaded = OpLoad %Foo_0 %ptr_load
|
|
OpStore %ptr_store %loaded
|
|
OpReturn
|
|
OpFunctionEnd
|