From: Alan Baker Date: Tue, 3 Sep 2019 15:01:57 +0000 (-0400) Subject: Remove input blocks from SPIR-V 1.4 compute shaders X-Git-Tag: upstream/1.3.5~1799 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f4470782f36c14b0020e3c040e462020d721ee50;p=platform%2Fupstream%2FVK-GL-CTS.git Remove input blocks from SPIR-V 1.4 compute shaders Split input blocks in compute shaders into flat variables. Component: Vulkan VK-GL-CTS Issue: 1967 Affects: dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrequal.ssbo_comparisons_equal dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrequal.wg_comparisons_equal dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrnotequal.ssbo_comparisons_not_equal dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrnotequal.wg_comparisons_not_equal dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrdiff.ssbo_comparisons_diff dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrdiff.wg_comparisons_diff Change-Id: I228583843148e36a33d7f469cb90f628eb432c37 (cherry picked from commit b976f5430158a62e03fe46500e25133e7a6113f2) --- diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrdiff/ssbo_comparisons_diff.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrdiff/ssbo_comparisons_diff.amber index 67d4d7f..905fe29 100644 --- a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrdiff/ssbo_comparisons_diff.amber +++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrdiff/ssbo_comparisons_diff.amber @@ -21,7 +21,7 @@ VK_KHR_get_physical_device_properties2 OpCapability Shader OpCapability VariablePointersStorageBuffer OpMemoryModel Logical GLSL450 -OpEntryPoint GLCompute %main "main" %in_var %diff_var %n_var %input_var +OpEntryPoint GLCompute %main "main" %in_var %diff_var %n_var %lid_var %gid_var OpExecutionMode %main LocalSize 4 1 1 OpDecorate %struct_4 Block @@ -42,9 +42,8 @@ OpDecorate %diff_var Binding 1 OpDecorate %n_var DescriptorSet 0 OpDecorate %n_var Binding 2 -OpDecorate %input_struct Block -OpMemberDecorate %input_struct 0 BuiltIn LocalInvocationId -OpMemberDecorate %input_struct 1 BuiltIn WorkgroupId +OpDecorate %lid_var BuiltIn LocalInvocationId +OpDecorate %gid_var BuiltIn WorkgroupId %void = OpTypeVoid %bool = OpTypeBool @@ -56,8 +55,6 @@ OpMemberDecorate %input_struct 1 BuiltIn WorkgroupId %int_17 = OpConstant %int 17 %int3 = OpTypeVector %int 3 -%input_struct = OpTypeStruct %int3 %int3 -%ptr_input_struct = OpTypePointer Input %input_struct %ptr_input_int3 = OpTypePointer Input %int3 %array_4 = OpTypeArray %int %int_4 @@ -80,18 +77,17 @@ OpMemberDecorate %input_struct 1 BuiltIn WorkgroupId %in_var = OpVariable %ptr_struct_4 StorageBuffer %diff_var = OpVariable %ptr_struct_17 StorageBuffer %n_var = OpVariable %ptr_n_struct Uniform -%input_var = OpVariable %ptr_input_struct Input +%lid_var = OpVariable %ptr_input_int3 Input +%gid_var = OpVariable %ptr_input_int3 Input %void_fn = OpTypeFunction %void %main = OpFunction %void None %void_fn %entry = OpLabel %n_gep = OpAccessChain %ptr_n %n_var %int_0 %n = OpLoad %int %n_gep -%gid_gep = OpAccessChain %ptr_input_int3 %input_var %int_1 -%gid = OpLoad %int3 %gid_gep +%gid = OpLoad %int3 %gid_var %gid_x = OpCompositeExtract %int %gid 0 -%lid_gep = OpAccessChain %ptr_input_int3 %input_var %int_0 -%lid = OpLoad %int3 %lid_gep +%lid = OpLoad %int3 %lid_var %lid_x = OpCompositeExtract %int %lid 0 %array_gep_0 = OpAccessChain %ptr_array_4 %in_var %int_0 %int_0 %array_gep = OpAccessChain %ptr_array_4 %in_var %int_0 %gid_x diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrdiff/wg_comparisons_diff.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrdiff/wg_comparisons_diff.amber index e741e6b..74a9d53 100644 --- a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrdiff/wg_comparisons_diff.amber +++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrdiff/wg_comparisons_diff.amber @@ -21,7 +21,7 @@ VK_KHR_get_physical_device_properties2 OpCapability Shader OpCapability VariablePointers OpMemoryModel Logical GLSL450 -OpEntryPoint GLCompute %main "main" %wg_var %diff_var %input_var +OpEntryPoint GLCompute %main "main" %wg_var %diff_var %lid_var %gid_var OpExecutionMode %main LocalSize 16 4 1 OpDecorate %struct_17 Block @@ -32,9 +32,8 @@ OpDecorate %array_17 ArrayStride 4 OpDecorate %diff_var DescriptorSet 0 OpDecorate %diff_var Binding 0 -OpDecorate %input_struct Block -OpMemberDecorate %input_struct 0 BuiltIn LocalInvocationId -OpMemberDecorate %input_struct 1 BuiltIn GlobalInvocationId +OpDecorate %lid_var BuiltIn LocalInvocationId +OpDecorate %gid_var BuiltIn GlobalInvocationId %void = OpTypeVoid %bool = OpTypeBool @@ -47,8 +46,6 @@ OpMemberDecorate %input_struct 1 BuiltIn GlobalInvocationId %int_64 = OpConstant %int 64 %int3 = OpTypeVector %int 3 -%input_struct = OpTypeStruct %int3 %int3 -%ptr_input_struct = OpTypePointer Input %input_struct %ptr_input_int3 = OpTypePointer Input %int3 %array_4 = OpTypeArray %int %int_4 @@ -66,17 +63,16 @@ OpMemberDecorate %input_struct 1 BuiltIn GlobalInvocationId %wg_var = OpVariable %ptr_array_array_4 Workgroup %diff_var = OpVariable %ptr_struct_17 StorageBuffer -%input_var = OpVariable %ptr_input_struct Input +%lid_var = OpVariable %ptr_input_int3 Input +%gid_var = OpVariable %ptr_input_int3 Input %void_fn = OpTypeFunction %void %main = OpFunction %void None %void_fn %entry = OpLabel -%gid_gep = OpAccessChain %ptr_input_int3 %input_var %int_1 -%gid = OpLoad %int3 %gid_gep +%gid = OpLoad %int3 %gid_var %gid_x = OpCompositeExtract %int %gid 0 %gid_y = OpCompositeExtract %int %gid 1 -%lid_gep = OpAccessChain %ptr_input_int3 %input_var %int_0 -%lid = OpLoad %int3 %lid_gep +%lid = OpLoad %int3 %lid_var %lid_x = OpCompositeExtract %int %lid 0 %lid_y = OpCompositeExtract %int %lid 1 %array_gep_0 = OpAccessChain %ptr_array_4 %wg_var %int_0 diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrequal/ssbo_comparisons_equal.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrequal/ssbo_comparisons_equal.amber index 223e7df..8faf624 100644 --- a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrequal/ssbo_comparisons_equal.amber +++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrequal/ssbo_comparisons_equal.amber @@ -21,7 +21,7 @@ VK_KHR_get_physical_device_properties2 OpCapability Shader OpCapability VariablePointersStorageBuffer OpMemoryModel Logical GLSL450 -OpEntryPoint GLCompute %main "main" %in_var %equal_var %n_var %input_var +OpEntryPoint GLCompute %main "main" %in_var %equal_var %n_var %lid_var %gid_var OpExecutionMode %main LocalSize 4 1 1 OpDecorate %struct_4 Block @@ -42,9 +42,8 @@ OpDecorate %equal_var Binding 1 OpDecorate %n_var DescriptorSet 0 OpDecorate %n_var Binding 2 -OpDecorate %input_struct Block -OpMemberDecorate %input_struct 0 BuiltIn LocalInvocationId -OpMemberDecorate %input_struct 1 BuiltIn WorkgroupId +OpDecorate %lid_var BuiltIn LocalInvocationId +OpDecorate %gid_var BuiltIn WorkgroupId %void = OpTypeVoid %bool = OpTypeBool @@ -56,8 +55,6 @@ OpMemberDecorate %input_struct 1 BuiltIn WorkgroupId %int_17 = OpConstant %int 17 %int3 = OpTypeVector %int 3 -%input_struct = OpTypeStruct %int3 %int3 -%ptr_input_struct = OpTypePointer Input %input_struct %ptr_input_int3 = OpTypePointer Input %int3 %array_4 = OpTypeArray %int %int_4 @@ -80,18 +77,17 @@ OpMemberDecorate %input_struct 1 BuiltIn WorkgroupId %in_var = OpVariable %ptr_struct_4 StorageBuffer %equal_var = OpVariable %ptr_struct_17 StorageBuffer %n_var = OpVariable %ptr_n_struct Uniform -%input_var = OpVariable %ptr_input_struct Input +%lid_var = OpVariable %ptr_input_int3 Input +%gid_var = OpVariable %ptr_input_int3 Input %void_fn = OpTypeFunction %void %main = OpFunction %void None %void_fn %entry = OpLabel %n_gep = OpAccessChain %ptr_n %n_var %int_0 %n = OpLoad %int %n_gep -%gid_gep = OpAccessChain %ptr_input_int3 %input_var %int_1 -%gid = OpLoad %int3 %gid_gep +%gid = OpLoad %int3 %gid_var %gid_x = OpCompositeExtract %int %gid 0 -%lid_gep = OpAccessChain %ptr_input_int3 %input_var %int_0 -%lid = OpLoad %int3 %lid_gep +%lid = OpLoad %int3 %lid_var %lid_x = OpCompositeExtract %int %lid 0 %array_gep_0 = OpAccessChain %ptr_array_4 %in_var %int_0 %int_0 %array_gep = OpAccessChain %ptr_array_4 %in_var %int_0 %gid_x diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrequal/wg_comparisons_equal.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrequal/wg_comparisons_equal.amber index 23acf99..fdc491e 100644 --- a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrequal/wg_comparisons_equal.amber +++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrequal/wg_comparisons_equal.amber @@ -21,7 +21,7 @@ VK_KHR_get_physical_device_properties2 OpCapability Shader OpCapability VariablePointers OpMemoryModel Logical GLSL450 -OpEntryPoint GLCompute %main "main" %wg_var %equal_var %input_var +OpEntryPoint GLCompute %main "main" %wg_var %equal_var %lid_var %gid_var OpExecutionMode %main LocalSize 16 4 1 OpDecorate %struct_17 Block @@ -32,9 +32,8 @@ OpDecorate %array_17 ArrayStride 4 OpDecorate %equal_var DescriptorSet 0 OpDecorate %equal_var Binding 0 -OpDecorate %input_struct Block -OpMemberDecorate %input_struct 0 BuiltIn LocalInvocationId -OpMemberDecorate %input_struct 1 BuiltIn GlobalInvocationId +OpDecorate %lid_var BuiltIn LocalInvocationId +OpDecorate %gid_var BuiltIn GlobalInvocationId %void = OpTypeVoid %bool = OpTypeBool @@ -47,8 +46,6 @@ OpMemberDecorate %input_struct 1 BuiltIn GlobalInvocationId %int_64 = OpConstant %int 64 %int3 = OpTypeVector %int 3 -%input_struct = OpTypeStruct %int3 %int3 -%ptr_input_struct = OpTypePointer Input %input_struct %ptr_input_int3 = OpTypePointer Input %int3 %array_4 = OpTypeArray %int %int_4 @@ -66,17 +63,16 @@ OpMemberDecorate %input_struct 1 BuiltIn GlobalInvocationId %wg_var = OpVariable %ptr_array_array_4 Workgroup %equal_var = OpVariable %ptr_struct_17 StorageBuffer -%input_var = OpVariable %ptr_input_struct Input +%lid_var = OpVariable %ptr_input_int3 Input +%gid_var = OpVariable %ptr_input_int3 Input %void_fn = OpTypeFunction %void %main = OpFunction %void None %void_fn %entry = OpLabel -%gid_gep = OpAccessChain %ptr_input_int3 %input_var %int_1 -%gid = OpLoad %int3 %gid_gep +%gid = OpLoad %int3 %gid_var %gid_x = OpCompositeExtract %int %gid 0 %gid_y = OpCompositeExtract %int %gid 1 -%lid_gep = OpAccessChain %ptr_input_int3 %input_var %int_0 -%lid = OpLoad %int3 %lid_gep +%lid = OpLoad %int3 %lid_var %lid_x = OpCompositeExtract %int %lid 0 %lid_y = OpCompositeExtract %int %lid 1 %array_gep_0 = OpAccessChain %ptr_array_4 %wg_var %int_0 diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrnotequal/ssbo_comparisons_not_equal.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrnotequal/ssbo_comparisons_not_equal.amber index 3e9406b..4bfd722 100644 --- a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrnotequal/ssbo_comparisons_not_equal.amber +++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrnotequal/ssbo_comparisons_not_equal.amber @@ -21,7 +21,7 @@ VK_KHR_get_physical_device_properties2 OpCapability Shader OpCapability VariablePointersStorageBuffer OpMemoryModel Logical GLSL450 -OpEntryPoint GLCompute %main "main" %in_var %not_equal_var %n_var %input_var +OpEntryPoint GLCompute %main "main" %in_var %not_equal_var %n_var %lid_var %gid_var OpExecutionMode %main LocalSize 4 1 1 OpDecorate %struct_4 Block @@ -42,9 +42,8 @@ OpDecorate %not_equal_var Binding 1 OpDecorate %n_var DescriptorSet 0 OpDecorate %n_var Binding 2 -OpDecorate %input_struct Block -OpMemberDecorate %input_struct 0 BuiltIn LocalInvocationId -OpMemberDecorate %input_struct 1 BuiltIn WorkgroupId +OpDecorate %lid_var BuiltIn LocalInvocationId +OpDecorate %gid_var BuiltIn WorkgroupId %void = OpTypeVoid %bool = OpTypeBool @@ -56,8 +55,6 @@ OpMemberDecorate %input_struct 1 BuiltIn WorkgroupId %int_17 = OpConstant %int 17 %int3 = OpTypeVector %int 3 -%input_struct = OpTypeStruct %int3 %int3 -%ptr_input_struct = OpTypePointer Input %input_struct %ptr_input_int3 = OpTypePointer Input %int3 %array_4 = OpTypeArray %int %int_4 @@ -80,18 +77,17 @@ OpMemberDecorate %input_struct 1 BuiltIn WorkgroupId %in_var = OpVariable %ptr_struct_4 StorageBuffer %not_equal_var = OpVariable %ptr_struct_17 StorageBuffer %n_var = OpVariable %ptr_n_struct Uniform -%input_var = OpVariable %ptr_input_struct Input +%lid_var = OpVariable %ptr_input_int3 Input +%gid_var = OpVariable %ptr_input_int3 Input %void_fn = OpTypeFunction %void %main = OpFunction %void None %void_fn %entry = OpLabel %n_gep = OpAccessChain %ptr_n %n_var %int_0 %n = OpLoad %int %n_gep -%gid_gep = OpAccessChain %ptr_input_int3 %input_var %int_1 -%gid = OpLoad %int3 %gid_gep +%gid = OpLoad %int3 %gid_var %gid_x = OpCompositeExtract %int %gid 0 -%lid_gep = OpAccessChain %ptr_input_int3 %input_var %int_0 -%lid = OpLoad %int3 %lid_gep +%lid = OpLoad %int3 %lid_var %lid_x = OpCompositeExtract %int %lid 0 %array_gep_0 = OpAccessChain %ptr_array_4 %in_var %int_0 %int_0 %array_gep = OpAccessChain %ptr_array_4 %in_var %int_0 %gid_x diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrnotequal/wg_comparisons_not_equal.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrnotequal/wg_comparisons_not_equal.amber index 9fe6436..9eb1a20 100644 --- a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrnotequal/wg_comparisons_not_equal.amber +++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/spirv1p4/opptrnotequal/wg_comparisons_not_equal.amber @@ -21,7 +21,7 @@ VK_KHR_get_physical_device_properties2 OpCapability Shader OpCapability VariablePointers OpMemoryModel Logical GLSL450 -OpEntryPoint GLCompute %main "main" %wg_var %not_equal_var %input_var +OpEntryPoint GLCompute %main "main" %wg_var %not_equal_var %lid_var %gid_var OpExecutionMode %main LocalSize 16 4 1 OpDecorate %struct_17 Block @@ -32,9 +32,8 @@ OpDecorate %array_17 ArrayStride 4 OpDecorate %not_equal_var DescriptorSet 0 OpDecorate %not_equal_var Binding 0 -OpDecorate %input_struct Block -OpMemberDecorate %input_struct 0 BuiltIn LocalInvocationId -OpMemberDecorate %input_struct 1 BuiltIn GlobalInvocationId +OpDecorate %lid_var BuiltIn LocalInvocationId +OpDecorate %gid_var BuiltIn GlobalInvocationId %void = OpTypeVoid %bool = OpTypeBool @@ -66,17 +65,16 @@ OpMemberDecorate %input_struct 1 BuiltIn GlobalInvocationId %wg_var = OpVariable %ptr_array_array_4 Workgroup %not_equal_var = OpVariable %ptr_struct_17 StorageBuffer -%input_var = OpVariable %ptr_input_struct Input +%lid_var = OpVariable %ptr_input_int3 Input +%gid_var = OpVariable %ptr_input_int3 Input %void_fn = OpTypeFunction %void %main = OpFunction %void None %void_fn %entry = OpLabel -%gid_gep = OpAccessChain %ptr_input_int3 %input_var %int_1 -%gid = OpLoad %int3 %gid_gep +%gid = OpLoad %int3 %gid_var %gid_x = OpCompositeExtract %int %gid 0 %gid_y = OpCompositeExtract %int %gid 1 -%lid_gep = OpAccessChain %ptr_input_int3 %input_var %int_0 -%lid = OpLoad %int3 %lid_gep +%lid = OpLoad %int3 %lid_var %lid_x = OpCompositeExtract %int %lid 0 %lid_y = OpCompositeExtract %int %lid 1 %array_gep_0 = OpAccessChain %ptr_array_4 %wg_var %int_0