117 lines
4.8 KiB
Plaintext
117 lines
4.8 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.0
|
|
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
; Bound: 91
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %2 "main"
|
|
OpExecutionMode %2 LocalSize 1 1 1
|
|
OpDecorate %_arr_v2uint_uint_324 ArrayStride 8
|
|
OpMemberDecorate %_struct_6 0 NonWritable
|
|
OpMemberDecorate %_struct_6 0 Offset 0
|
|
OpDecorate %_struct_6 BufferBlock
|
|
OpDecorate %7 DescriptorSet 0
|
|
OpDecorate %7 Binding 0
|
|
OpDecorate %_arr_v2float_uint_648 ArrayStride 8
|
|
OpMemberDecorate %_struct_9 0 Offset 0
|
|
OpDecorate %_struct_9 BufferBlock
|
|
OpDecorate %11 DescriptorSet 0
|
|
OpDecorate %11 Binding 1
|
|
OpDecorate %_arr_v2float_uint_648_0 ArrayStride 8
|
|
OpMemberDecorate %_struct_13 0 Offset 0
|
|
OpDecorate %_struct_13 BufferBlock
|
|
OpDecorate %14 DescriptorSet 0
|
|
OpDecorate %14 Binding 2
|
|
%void = OpTypeVoid
|
|
%3 = OpTypeFunction %void
|
|
%float = OpTypeFloat 32
|
|
%v2float = OpTypeVector %float 2
|
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
|
%_struct_19 = OpTypeStruct %v2float %v2float
|
|
%10 = OpTypeFunction %_struct_19 %_ptr_Function_v2float
|
|
%_ptr_Function__struct_19 = OpTypePointer Function %_struct_19
|
|
%uint = OpTypeInt 32 0
|
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
|
%uint_0 = OpConstant %uint 0
|
|
%uint_648 = OpConstant %uint 648
|
|
%bool = OpTypeBool
|
|
%v2uint = OpTypeVector %uint 2
|
|
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
|
|
%uint_324 = OpConstant %uint 324
|
|
%_arr_v2uint_uint_324 = OpTypeArray %v2uint %uint_324
|
|
%_struct_6 = OpTypeStruct %_arr_v2uint_uint_324
|
|
%_ptr_Uniform__struct_6 = OpTypePointer Uniform %_struct_6
|
|
%7 = OpVariable %_ptr_Uniform__struct_6 Uniform
|
|
%int = OpTypeInt 32 1
|
|
%int_0 = OpConstant %int 0
|
|
%uint_2 = OpConstant %uint 2
|
|
%_ptr_Uniform_v2uint = OpTypePointer Uniform %v2uint
|
|
%_arr_v2float_uint_648 = OpTypeArray %v2float %uint_648
|
|
%_struct_9 = OpTypeStruct %_arr_v2float_uint_648
|
|
%_ptr_Uniform__struct_9 = OpTypePointer Uniform %_struct_9
|
|
%11 = OpVariable %_ptr_Uniform__struct_9 Uniform
|
|
%uint_1 = OpConstant %uint 1
|
|
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
|
|
%_arr_v2float_uint_648_0 = OpTypeArray %v2float %uint_648
|
|
%_struct_13 = OpTypeStruct %_arr_v2float_uint_648_0
|
|
%_ptr_Uniform__struct_13 = OpTypePointer Uniform %_struct_13
|
|
%14 = OpVariable %_ptr_Uniform__struct_13 Uniform
|
|
%int_1 = OpConstant %int 1
|
|
%2 = OpFunction %void None %3
|
|
%5 = OpLabel
|
|
%46 = OpVariable %_ptr_Function_uint Function
|
|
%47 = OpVariable %_ptr_Function_v2uint Function
|
|
%48 = OpVariable %_ptr_Function_v2float Function
|
|
%50 = OpVariable %_ptr_Function__struct_19 Function
|
|
OpStore %46 %uint_0
|
|
OpBranch %30
|
|
%30 = OpLabel
|
|
OpLoopMerge %32 %33 None
|
|
OpBranch %34
|
|
%34 = OpLabel
|
|
%35 = OpLoad %uint %46
|
|
%38 = OpULessThan %bool %35 %uint_648
|
|
OpBranchConditional %38 %31 %32
|
|
%31 = OpLabel
|
|
%49 = OpLoad %uint %46
|
|
%51 = OpUDiv %uint %49 %uint_2
|
|
%53 = OpAccessChain %_ptr_Uniform_v2uint %7 %int_0 %51
|
|
%54 = OpLoad %v2uint %53
|
|
OpStore %47 %54
|
|
%56 = OpLoad %v2uint %47
|
|
%57 = OpBitcast %v2float %56
|
|
OpStore %48 %57
|
|
%62 = OpLoad %uint %46
|
|
%64 = OpIAdd %uint %62 %uint_1
|
|
%65 = OpLoad %v2float %48
|
|
%66 = OpLoad %uint %46
|
|
%68 = OpAccessChain %_ptr_Uniform_v2float %11 %int_0 %66
|
|
%69 = OpExtInst %v2float %1 Modf %65 %68
|
|
%70 = OpAccessChain %_ptr_Uniform_v2float %11 %int_0 %64
|
|
OpStore %70 %69
|
|
%73 = OpLoad %v2float %48
|
|
%74 = OpExtInst %_struct_19 %1 ModfStruct %73
|
|
OpStore %50 %74
|
|
%79 = OpLoad %uint %46
|
|
%81 = OpAccessChain %_ptr_Function_v2float %50 %int_1
|
|
%82 = OpLoad %v2float %81
|
|
%83 = OpAccessChain %_ptr_Uniform_v2float %14 %int_0 %79
|
|
OpStore %83 %82
|
|
%84 = OpLoad %uint %46
|
|
%85 = OpIAdd %uint %84 %uint_1
|
|
%86 = OpAccessChain %_ptr_Function_v2float %50 %int_0
|
|
%87 = OpLoad %v2float %86
|
|
%88 = OpAccessChain %_ptr_Uniform_v2float %14 %int_0 %85
|
|
OpStore %88 %87
|
|
OpBranch %33
|
|
%33 = OpLabel
|
|
%89 = OpLoad %uint %46
|
|
%90 = OpIAdd %uint %89 %uint_2
|
|
OpStore %46 %90
|
|
OpBranch %30
|
|
%32 = OpLabel
|
|
OpReturn
|
|
OpFunctionEnd
|