yes
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
#!amber
|
||||
SHADER compute compute_shader SPIRV-ASM
|
||||
; SPIR-V
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 36
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %main "main"
|
||||
OpExecutionMode %main LocalSize 1 1 1
|
||||
OpName %flow_block "flow_block"
|
||||
OpMemberName %flow_block 0 "inner"
|
||||
OpName %flow "flow"
|
||||
OpName %main "main"
|
||||
OpName %LOOP_COUNTER "LOOP_COUNTER"
|
||||
OpDecorate %flow_block Block
|
||||
OpMemberDecorate %flow_block 0 Offset 0
|
||||
OpDecorate %_arr_uint_uint_2 ArrayStride 4
|
||||
OpDecorate %flow DescriptorSet 0
|
||||
OpDecorate %flow Binding 0
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%_arr_uint_uint_2 = OpTypeArray %uint %uint_2
|
||||
%flow_block = OpTypeStruct %_arr_uint_uint_2
|
||||
%_ptr_StorageBuffer_flow_block = OpTypePointer StorageBuffer %flow_block
|
||||
%flow = OpVariable %_ptr_StorageBuffer_flow_block StorageBuffer
|
||||
%void = OpTypeVoid
|
||||
%7 = OpTypeFunction %void
|
||||
%11 = OpConstantNull %uint
|
||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%bool = OpTypeBool
|
||||
%main = OpFunction %void None %7
|
||||
%10 = OpLabel
|
||||
%LOOP_COUNTER = OpVariable %_ptr_Function_uint Function %11
|
||||
OpStore %LOOP_COUNTER %11
|
||||
OpBranch %14
|
||||
%14 = OpLabel
|
||||
OpLoopMerge %15 %16 None
|
||||
OpBranch %17
|
||||
%17 = OpLabel
|
||||
%20 = OpAccessChain %_ptr_StorageBuffer_uint %flow %uint_0 %11
|
||||
%21 = OpAccessChain %_ptr_StorageBuffer_uint %flow %uint_0 %11
|
||||
%22 = OpLoad %uint %21
|
||||
%24 = OpIAdd %uint %22 %uint_1
|
||||
OpStore %20 %24
|
||||
%25 = OpLoad %uint %LOOP_COUNTER
|
||||
%26 = OpUGreaterThanEqual %bool %25 %uint_1
|
||||
OpSelectionMerge %28 None
|
||||
OpBranchConditional %26 %29 %28
|
||||
%29 = OpLabel
|
||||
%30 = OpAccessChain %_ptr_StorageBuffer_uint %flow %uint_0 %uint_1
|
||||
%31 = OpAccessChain %_ptr_StorageBuffer_uint %flow %uint_0 %uint_1
|
||||
%32 = OpLoad %uint %31
|
||||
%33 = OpIAdd %uint %32 %uint_1
|
||||
OpStore %30 %33
|
||||
OpBranch %15
|
||||
%28 = OpLabel
|
||||
%34 = OpLoad %uint %LOOP_COUNTER
|
||||
%35 = OpIAdd %uint %34 %uint_1
|
||||
OpStore %LOOP_COUNTER %35
|
||||
OpBranch %16
|
||||
%16 = OpLabel
|
||||
OpBranch %14
|
||||
%15 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
END
|
||||
|
||||
BUFFER buf0 DATA_TYPE uint32 DATA 0 0 END
|
||||
|
||||
BUFFER expected0 DATA_TYPE uint32 DATA 2 1 END
|
||||
|
||||
PIPELINE compute pipeline
|
||||
ATTACH compute_shader
|
||||
|
||||
BIND BUFFER buf0 AS storage DESCRIPTOR_SET 0 BINDING 0
|
||||
END
|
||||
|
||||
RUN pipeline 1 1 1
|
||||
|
||||
#EXPECT buf0 IDX 0 EQ 2
|
||||
#EXPECT buf0 IDX 4 EQ 1
|
||||
|
||||
EXPECT buf0 EQ_BUFFER expected0
|
||||
Reference in New Issue
Block a user