#sessionInfo releaseName git-8e3741675ba9ebfdea5bc98ac2df4e5e6f182e57 #sessionInfo releaseId 0x8e374167 #sessionInfo targetName "Default" #beginSession #beginTestCaseResult dEQP-VK.spirv_assembly.instruction.compute.pointer_parameter.workgroup_memory_variable_pointers
OpCapability Shader OpCapability VariablePointers OpExtension "SPV_KHR_variable_pointers" OpExtension "SPV_KHR_storage_buffer_storage_class" %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" %gl_LocalInvocationID OpExecutionMode %main LocalSize 16 1 1 OpSource GLSL 430 OpMemberDecorate %Output 0 Offset 0 OpMemberDecorate %Output 1 Offset 256 OpMemberDecorate %struct 0 Offset 0 OpMemberDecorate %struct 1 Offset 256 OpDecorate %arr_vec4_16 ArrayStride 16 OpDecorate %arr_vec4_rt ArrayStride 16 OpDecorate %Output Block OpDecorate %dataOutput DescriptorSet 0 OpDecorate %dataOutput Binding 0 OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId %void = OpTypeVoid %void_func = OpTypeFunction %void %float = OpTypeFloat 32 %_ptr_Function_float = OpTypePointer Function %float %uint = OpTypeInt 32 0 %_ptr_Function_uint = OpTypePointer Function %uint %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 %uint_5 = OpConstant %uint 5 %uint_16 = OpConstant %uint 16 %uint_264 = OpConstant %uint 264 %vec4 = OpTypeVector %float 4 %arr_vec4_16 = OpTypeArray %vec4 %uint_16 %arr_vec4_rt = OpTypeRuntimeArray %vec4 %arr_vec4_16_sb_ptr = OpTypePointer StorageBuffer %arr_vec4_16 %arr_vec4_rt_sb_ptr = OpTypePointer StorageBuffer %arr_vec4_rt %arr_vec4_16_wg_ptr = OpTypePointer Workgroup %arr_vec4_16 %func_decl = OpTypeFunction %void %arr_vec4_16_wg_ptr %_ptr_Function_uint %Output = OpTypeStruct %arr_vec4_16 %arr_vec4_rt %struct = OpTypeStruct %arr_vec4_16 %arr_vec4_16 %_ptr_sb_struct = OpTypePointer StorageBuffer %Output %_ptr_wg_struct = OpTypePointer Workgroup %struct %dataOutput = OpVariable %_ptr_sb_struct StorageBuffer %sharedData = OpVariable %_ptr_wg_struct Workgroup %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 %v3uint = OpTypeVector %uint 3 %_ptr_Input_v3uint = OpTypePointer Input %v3uint %gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input %uint_0 = OpConstant %uint 0 %_ptr_Input_uint = OpTypePointer Input %uint %_ptr_sb_vec4 = OpTypePointer StorageBuffer %vec4 %_ptr_wg_vec4 = OpTypePointer Workgroup %vec4 %main = OpFunction %void None %void_func %entry = OpLabel %idx = OpVariable %_ptr_Function_uint Function %inv_id_ptr = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 %inv_id = OpLoad %uint %inv_id_ptr OpStore %idx %inv_id %ptr0 = OpAccessChain %arr_vec4_16_wg_ptr %sharedData %int_0 %ptr1 = OpAccessChain %arr_vec4_16_wg_ptr %sharedData %int_1 %ret0 = OpFunctionCall %void %func0 %ptr0 %idx %ret1 = OpFunctionCall %void %func1 %ptr1 %idx OpControlBarrier %uint_2 %uint_2 %uint_264 %inv_id_plus1 = OpIAdd %uint %inv_id %uint_1 %inv_id_mod = OpUMod %uint %inv_id_plus1 %uint_16 %shared_arr1_ptr = OpAccessChain %_ptr_wg_vec4 %sharedData %int_1 %inv_id_mod %shared_arr1_data = OpLoad %vec4 %shared_arr1_ptr %outPtr0 = OpAccessChain %_ptr_sb_vec4 %dataOutput %int_0 %inv_id OpStore %outPtr0 %shared_arr1_data %shared_arr0_ptr = OpAccessChain %_ptr_wg_vec4 %sharedData %int_0 %inv_id_mod %shared_arr0_data = OpLoad %vec4 %shared_arr0_ptr %outPtr1 = OpAccessChain %_ptr_sb_vec4 %dataOutput %int_1 %inv_id OpStore %outPtr1 %shared_arr0_data OpReturn OpFunctionEnd %func0 = OpFunction %void None %func_decl %f0 = OpFunctionParameter %arr_vec4_16_wg_ptr %i0 = OpFunctionParameter %_ptr_Function_uint %func0_entry = OpLabel %idx0 = OpLoad %uint %i0 %out_ptr0 = OpAccessChain %_ptr_wg_vec4 %f0 %idx0 %idxFloat0 = OpConvertUToF %float %idx0 %outData0 = OpCompositeConstruct %vec4 %idxFloat0 %idxFloat0 %idxFloat0 %idxFloat0 OpStore %out_ptr0 %outData0 OpReturn OpFunctionEnd %func1 = OpFunction %void None %func_decl %f1 = OpFunctionParameter %arr_vec4_16_wg_ptr %i1 = OpFunctionParameter %_ptr_Function_uint %func1_entry = OpLabel %idx1 = OpLoad %uint %i1 %out_ptr1 = OpAccessChain %_ptr_wg_vec4 %f1 %idx1 %idxPlus5 = OpIAdd %uint %idx1 %uint_5 %idxFloat1 = OpConvertUToF %float %idxPlus5 %outData1 = OpCompositeConstruct %vec4 %idxFloat1 %idxFloat1 %idxFloat1 %idxFloat1 OpStore %out_ptr1 %outData1 OpReturn OpFunctionEnd 0.660000