From 77be617c617945418c53079994811216c1e32e4e Mon Sep 17 00:00:00 2001 From: Ari Suonpaa Date: Mon, 30 Mar 2020 14:35:17 +0300 Subject: [PATCH] Test OpCompositeInsert with OpUndef Expanded composite insert tests to operate on temporary variables generated by OpUndef. VK-GL-CTS Issue: 1153 New tests: dEQP-VK.spirv_assembly.*.composite_insert.undef_* Components: Vulkan Change-Id: I5907fc864d2aa95d8638bb76f03ceab948addf67 --- android/cts/master/vk-master-2020-03-01.txt | 78 +++++ android/cts/master/vk-master.txt | 78 +++++ .../vktSpvAsmCompositeInsertTests.cpp | 315 +++++++++++---------- external/vulkancts/mustpass/master/vk-default.txt | 78 +++++ 4 files changed, 406 insertions(+), 143 deletions(-) diff --git a/android/cts/master/vk-master-2020-03-01.txt b/android/cts/master/vk-master-2020-03-01.txt index 963f576..323daf8 100644 --- a/android/cts/master/vk-master-2020-03-01.txt +++ b/android/cts/master/vk-master-2020-03-01.txt @@ -91184,6 +91184,19 @@ dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings. dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp32_flush_fp64_preserve dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp32_preserve_fp64_preserve dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.independence_settings +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_nested_struct dEQP-VK.spirv_assembly.instruction.compute.variable_init.private.float_from_workgroup dEQP-VK.spirv_assembly.instruction.compute.variable_init.private.vec4_from_workgroup dEQP-VK.spirv_assembly.instruction.compute.variable_init.private.matrix_from_workgroup @@ -91557,6 +91570,71 @@ dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_ dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_tesse dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_geom dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_frag dEQP-VK.spirv_assembly.instruction.graphics.indexing.input.struct.opaccesschain_u32_vert dEQP-VK.spirv_assembly.instruction.graphics.indexing.input.struct.opaccesschain_u32_tessc dEQP-VK.spirv_assembly.instruction.graphics.indexing.input.struct.opaccesschain_u32_tesse diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index 2ccb9a5..3101790 100644 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -315827,9 +315827,21 @@ dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings. dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp32_preserve_fp64_preserve dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.independence_settings dEQP-VK.spirv_assembly.instruction.compute.ubo_padding.mat2x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec4 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.vec2 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.vec3 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.vec4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x4 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat2x2 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat3x2 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat4x2 @@ -315839,6 +315851,7 @@ dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat4x3 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat2x4 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat3x4 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat4x4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_nested_struct dEQP-VK.spirv_assembly.instruction.compute.composite_insert.nested_struct dEQP-VK.spirv_assembly.instruction.compute.variable_init.private.float dEQP-VK.spirv_assembly.instruction.compute.variable_init.private.vec4 @@ -324787,6 +324800,21 @@ dEQP-VK.spirv_assembly.instruction.graphics.ubo_padding.mat2x2_tessc dEQP-VK.spirv_assembly.instruction.graphics.ubo_padding.mat2x2_tesse dEQP-VK.spirv_assembly.instruction.graphics.ubo_padding.mat2x2_geom dEQP-VK.spirv_assembly.instruction.graphics.ubo_padding.mat2x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_frag dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec2_vert dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec2_tessc dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec2_tesse @@ -324802,6 +324830,51 @@ dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec4_tessc dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec4_tesse dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec4_geom dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_frag dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat2x2_vert dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat2x2_tessc dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat2x2_tesse @@ -324847,6 +324920,11 @@ dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat4x4_tessc dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat4x4_tesse dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat4x4_geom dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat4x4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_frag dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.nested_struct_vert dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.nested_struct_tessc dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.nested_struct_tesse diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmCompositeInsertTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmCompositeInsertTests.cpp index 0d34f2b..6053db7 100644 --- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmCompositeInsertTests.cpp +++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmCompositeInsertTests.cpp @@ -82,9 +82,14 @@ string getIdentityVectors (deUint32 cols, deUint32 rows) return ret; } -string getVectorCompositeInserts (deUint32 elements) +string getVectorCompositeInserts (deUint32 elements, bool useUndef) { - string ret = " %tmp0 = OpLoad %v" + de::toString(elements) + "f32 %vec\n"; + string ret; + + if (useUndef) + ret = " %tmp0 = OpUndef %v" + de::toString(elements) + "f32\n"; + else + ret = " %tmp0 = OpLoad %v" + de::toString(elements) + "f32 %vec\n"; for (deUint32 e = 0; e < elements; e++) ret += " %tmp" + de::toString(e + 1) + " = OpCompositeInsert %v" + de::toString(elements) + "f32 %c_f32_" + de::toString(e) + " %tmp" + de::toString(e) + " " + de::toString(e) + "\n"; @@ -92,10 +97,15 @@ string getVectorCompositeInserts (deUint32 elements) return ret; } -string getMatrixCompositeInserts (deUint32 cols, deUint32 rows) +string getMatrixCompositeInserts (deUint32 cols, deUint32 rows, bool useUndef) { string matType = getMatrixType(cols, rows); - string ret = " %tmp0 = OpLoad " + matType + " %mat\n"; + string ret; + + if (useUndef) + ret = " %tmp0 = OpUndef " + matType + "\n"; + else + ret = " %tmp0 = OpLoad " + matType + " %mat\n"; for (deUint32 c = 0; c < cols; c++) ret += " %tmp" + de::toString(c + 1) + " = OpCompositeInsert " + matType + " %identity" + de::toString(c) + " %tmp" + de::toString(c) + " " + de::toString(c) + "\n"; @@ -128,10 +138,15 @@ bool verifyMatrixOutput (const std::vector& inputs, const vectorgetTestContext(); + for (bool useUndef : {true, false}) for (deUint32 elements = 2; elements <= 4; elements++) { ComputeShaderSpec spec; @@ -181,7 +197,7 @@ void addComputeVectorCompositeInsertTests (tcu::TestCaseGroup* group) " %main = OpFunction %void None %3\n" " %entry = OpLabel\n" " %vec = OpVariable %_ptr_Function_vec Function\n" - + getVectorCompositeInserts(elements) + + + getVectorCompositeInserts(elements, useUndef) + " %vecOutPtr = OpAccessChain %_ptr_Uniform_vec %dataOutput %c_i32_0\n" " OpStore %vecOutPtr %tmp" + de::toString(elements) + "\n" " OpReturn\n" @@ -196,7 +212,12 @@ void addComputeVectorCompositeInsertTests (tcu::TestCaseGroup* group) spec.outputs.push_back(Resource(BufferSp(new Float32Buffer(refData)))); - string testName = string("vec") + de::toString(elements); + string testName; + + if (useUndef) + testName += "undef_"; + + testName += string("vec") + de::toString(elements); group->addChild(new SpvAsmComputeShaderCase(testCtx, testName.c_str(), "Tests vector composite insert.", spec)); } @@ -204,6 +225,7 @@ void addComputeVectorCompositeInsertTests (tcu::TestCaseGroup* group) void addGraphicsVectorCompositeInsertTests (tcu::TestCaseGroup* group) { + for (bool useUndef : { true, false }) for (deUint32 elements = 2; elements <= 4; elements++) { map fragments; @@ -216,7 +238,7 @@ void addGraphicsVectorCompositeInsertTests (tcu::TestCaseGroup* group) vector noExtensions; VulkanFeatures vulkanFeatures = VulkanFeatures(); vector refData; - const string testName = string("vec") + de::toString(elements); + const string testName = string(useUndef ? "undef_" : "") + "vec" + de::toString(elements); const string vecType = string("%v") + de::toString(elements) + "f32"; // Expect running counter @@ -248,7 +270,7 @@ void addGraphicsVectorCompositeInsertTests (tcu::TestCaseGroup* group) " %param = OpFunctionParameter %v4f32\n" " %entry = OpLabel\n" " %vec = OpVariable %fp_v" + de::toString(elements) + "f32 Function\n" - + getVectorCompositeInserts(elements) + + + getVectorCompositeInserts(elements, useUndef) + " %vecOutPtr = OpAccessChain %_ptr_Uniform_vec %dataOutput %c_i32_0\n" " OpStore %vecOutPtr %tmp" + de::toString(elements) + "\n" " OpReturnValue %param\n" @@ -279,6 +301,7 @@ void addComputeMatrixCompositeInsertTests (tcu::TestCaseGroup* group) { tcu::TestContext& testCtx = group->getTestContext(); + for (bool useUndef : { true, false }) for (deUint32 rows = 2; rows <= 4; rows++) { const deUint32 matrixStride = rows == 3 ? 16 : rows * 4; @@ -320,7 +343,7 @@ void addComputeMatrixCompositeInsertTests (tcu::TestCaseGroup* group) " %main = OpFunction %void None %3\n" " %entry = OpLabel\n" " %mat = OpVariable %_ptr_Function_mat Function\n" - + getMatrixCompositeInserts(cols, rows) + + + getMatrixCompositeInserts(cols, rows, useUndef) + " %matOutPtr = OpAccessChain %_ptr_Uniform_mat %dataOutput %c_i32_0\n" " OpStore %matOutPtr %tmp" + de::toString(cols) + "\n" " OpReturn\n" @@ -342,7 +365,7 @@ void addComputeMatrixCompositeInsertTests (tcu::TestCaseGroup* group) spec.outputs.push_back(Resource(BufferSp(new Float32Buffer(identityData)))); spec.verifyIO = verifyMatrixOutput; - string testName = string("mat") + de::toString(cols) + "x" + de::toString(rows); + string testName = string(useUndef ? "undef_" : "") + "mat" + de::toString(cols) + "x" + de::toString(rows); group->addChild(new SpvAsmComputeShaderCase(testCtx, testName.c_str(), "Tests matrix composite insert.", spec)); } @@ -351,6 +374,7 @@ void addComputeMatrixCompositeInsertTests (tcu::TestCaseGroup* group) void addGraphicsMatrixCompositeInsertTests (tcu::TestCaseGroup* group) { + for (bool useUndef : { true, false }) for (deUint32 rows = 2; rows <= 4; rows++) { const deUint32 matrixStride = rows == 3 ? 16 : rows * 4; @@ -367,7 +391,7 @@ void addGraphicsMatrixCompositeInsertTests (tcu::TestCaseGroup* group) vector noExtensions; VulkanFeatures vulkanFeatures = VulkanFeatures(); vector identityData; - string testName = string("mat") + de::toString(cols) + "x" + de::toString(rows); + string testName = string(useUndef ? "undef_" : "") + "mat" + de::toString(cols) + "x" + de::toString(rows); string matType = getMatrixType(cols, rows); // Expect identity matrix as output @@ -405,7 +429,7 @@ void addGraphicsMatrixCompositeInsertTests (tcu::TestCaseGroup* group) " %param = OpFunctionParameter %v4f32\n" " %entry = OpLabel\n" " %mat = OpVariable %_ptr_Function_mat Function\n" - + getMatrixCompositeInserts(cols, rows) + + + getMatrixCompositeInserts(cols, rows, useUndef) + " %matOutPtr = OpAccessChain %_ptr_Uniform_mat %dataOutput %c_i32_0\n" " OpStore %matOutPtr %tmp" + de::toString(cols) + "\n" " OpReturnValue %param\n" @@ -437,140 +461,145 @@ void addComputeNestedStructCompositeInsertTests (tcu::TestCaseGroup* group) { tcu::TestContext& testCtx = group->getTestContext(); - ComputeShaderSpec spec; - vector identityData; - const deUint32 arraySize = 8u; - - const string shaderSource = - " OpCapability Shader\n" - " %1 = OpExtInstImport \"GLSL.std.450\"\n" - " OpMemoryModel Logical GLSL450\n" - " OpEntryPoint GLCompute %main \"main\"\n" - " OpExecutionMode %main LocalSize 1 1 1\n" - " OpSource GLSL 430\n" - " OpDecorate %_arr_mat4v4f32_uint_8 ArrayStride 64\n" - " OpMemberDecorate %S 0 ColMajor\n" - " OpMemberDecorate %S 0 Offset 0\n" - " OpMemberDecorate %S 0 MatrixStride 16\n" - " OpMemberDecorate %Output 0 Offset 0\n" - " OpDecorate %Output BufferBlock\n" - " OpDecorate %dataOutput DescriptorSet 0\n" - " OpDecorate %dataOutput Binding 0\n" - " %f32 = OpTypeFloat 32\n" - " %v4f32 = OpTypeVector %f32 4\n" - " %mat4v4f32 = OpTypeMatrix %v4f32 4\n" - " %uint = OpTypeInt 32 0\n" - " %uint_8 = OpConstant %uint 8\n" - "%_arr_mat4v4f32_uint_8 = OpTypeArray %mat4v4f32 %uint_8\n" - " %S = OpTypeStruct %_arr_mat4v4f32_uint_8\n" - " %Output = OpTypeStruct %S\n" - " %_ptr_Uniform_Output = OpTypePointer Uniform %Output\n" - " %_ptr_Function_Output = OpTypePointer Function %Output\n" - " %dataOutput = OpVariable %_ptr_Uniform_Output Uniform\n" - " %c_f32_0 = OpConstant %f32 0\n" - " %c_f32_1 = OpConstant %f32 1\n" - " %i32 = OpTypeInt 32 1\n" - " %c_i32_0 = OpConstant %i32 0\n" - + getIdentityVectors(4, 4) + - " %void = OpTypeVoid\n" - " %3 = OpTypeFunction %void\n" - " %main = OpFunction %void None %3\n" - " %entry = OpLabel\n" - " %nestedstruct = OpVariable %_ptr_Function_Output Function\n" - " %tmp0 = OpLoad %Output %nestedstruct\n" - + getNestedStructCompositeInserts(arraySize) + - " OpStore %dataOutput %tmp" + de::toString(arraySize * 4) + "\n" - " OpReturn\n" - " OpFunctionEnd\n"; - - spec.assembly = shaderSource; - spec.numWorkGroups = IVec3(1, 1, 1); - - // Expect an array of identity matrix as output - for (deUint32 a = 0; a < arraySize; a++) - for (deUint32 c = 0; c < 4; c++) - for (deUint32 r = 0; r < 4; r++) - identityData.push_back(c == r ? 1.0f : 0.0f); - - spec.outputs.push_back(Resource(BufferSp(new Float32Buffer(identityData)))); - - group->addChild(new SpvAsmComputeShaderCase(testCtx, "nested_struct", "Tests nested struct composite insert.", spec)); + for (bool useUndef : { true, false }) + { + ComputeShaderSpec spec; + vector identityData; + const deUint32 arraySize = 8u; + const string testName = string(useUndef ? "undef_" : "") + "nested_struct"; + + const string shaderSource = + " OpCapability Shader\n" + " %1 = OpExtInstImport \"GLSL.std.450\"\n" + " OpMemoryModel Logical GLSL450\n" + " OpEntryPoint GLCompute %main \"main\"\n" + " OpExecutionMode %main LocalSize 1 1 1\n" + " OpSource GLSL 430\n" + " OpDecorate %_arr_mat4v4f32_uint_8 ArrayStride 64\n" + " OpMemberDecorate %S 0 ColMajor\n" + " OpMemberDecorate %S 0 Offset 0\n" + " OpMemberDecorate %S 0 MatrixStride 16\n" + " OpMemberDecorate %Output 0 Offset 0\n" + " OpDecorate %Output BufferBlock\n" + " OpDecorate %dataOutput DescriptorSet 0\n" + " OpDecorate %dataOutput Binding 0\n" + " %f32 = OpTypeFloat 32\n" + " %v4f32 = OpTypeVector %f32 4\n" + " %mat4v4f32 = OpTypeMatrix %v4f32 4\n" + " %uint = OpTypeInt 32 0\n" + " %uint_8 = OpConstant %uint 8\n" + "%_arr_mat4v4f32_uint_8 = OpTypeArray %mat4v4f32 %uint_8\n" + " %S = OpTypeStruct %_arr_mat4v4f32_uint_8\n" + " %Output = OpTypeStruct %S\n" + " %_ptr_Uniform_Output = OpTypePointer Uniform %Output\n" + " %_ptr_Function_Output = OpTypePointer Function %Output\n" + " %dataOutput = OpVariable %_ptr_Uniform_Output Uniform\n" + " %c_f32_0 = OpConstant %f32 0\n" + " %c_f32_1 = OpConstant %f32 1\n" + " %i32 = OpTypeInt 32 1\n" + " %c_i32_0 = OpConstant %i32 0\n" + + getIdentityVectors(4, 4) + + " %void = OpTypeVoid\n" + " %3 = OpTypeFunction %void\n" + " %main = OpFunction %void None %3\n" + " %entry = OpLabel\n" + " %nestedstruct = OpVariable %_ptr_Function_Output Function\n" + + getNestedStructCompositeInserts(arraySize, useUndef) + + " OpStore %dataOutput %tmp" + de::toString(arraySize * 4) + "\n" + " OpReturn\n" + " OpFunctionEnd\n"; + + spec.assembly = shaderSource; + spec.numWorkGroups = IVec3(1, 1, 1); + + // Expect an array of identity matrix as output + for (deUint32 a = 0; a < arraySize; a++) + for (deUint32 c = 0; c < 4; c++) + for (deUint32 r = 0; r < 4; r++) + identityData.push_back(c == r ? 1.0f : 0.0f); + + spec.outputs.push_back(Resource(BufferSp(new Float32Buffer(identityData)))); + + group->addChild(new SpvAsmComputeShaderCase(testCtx, testName.c_str(), "Tests nested struct composite insert.", spec)); + } } void addGraphicsNestedStructCompositeInsertTests (tcu::TestCaseGroup* group) { - map fragments; - RGBA defaultColors[4]; - GraphicsResources resources; - - SpecConstants noSpecConstants; - PushConstants noPushConstants; - GraphicsInterfaces noInterfaces; - vector noExtensions; - VulkanFeatures vulkanFeatures = VulkanFeatures(); - vector identityData; - const deUint32 arraySize = 8u; - const string testName = "nested_struct"; - - // Expect an array of identity matrix as output - for (deUint32 a = 0; a < arraySize; a++) - for (deUint32 c = 0; c < 4; c++) - for (deUint32 r = 0; r < 4; r++) - identityData.push_back(c == r ? 1.0f : 0.0f); - resources.outputs.push_back(Resource(BufferSp(new Float32Buffer(identityData)), VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)); - - getDefaultColors(defaultColors); - - fragments["pre_main"] = - " %uint_8 = OpConstant %u32 8\n" - " %mat4v4f32 = OpTypeMatrix %v4f32 4\n" - "%_arr_mat4v4f32_uint_8 = OpTypeArray %mat4v4f32 %uint_8\n" - " %S = OpTypeStruct %_arr_mat4v4f32_uint_8\n" - " %Output = OpTypeStruct %S\n" - " %_ptr_Uniform_Output = OpTypePointer Uniform %Output\n" - " %_ptr_Function_Output = OpTypePointer Function %Output\n" - " %dataOutput = OpVariable %_ptr_Uniform_Output Uniform\n" - + getIdentityVectors(4, 4); - - fragments["decoration"] = - " OpDecorate %_arr_mat4v4f32_uint_8 ArrayStride 64\n" - " OpMemberDecorate %S 0 ColMajor\n" - " OpMemberDecorate %S 0 Offset 0\n" - " OpMemberDecorate %S 0 MatrixStride 16\n" - " OpMemberDecorate %Output 0 Offset 0\n" - " OpDecorate %Output BufferBlock\n" - " OpDecorate %dataOutput DescriptorSet 0\n" - " OpDecorate %dataOutput Binding 0\n"; - - fragments["testfun"] = - " %test_code = OpFunction %v4f32 None %v4f32_v4f32_function\n" - " %param = OpFunctionParameter %v4f32\n" - " %entry = OpLabel\n" - " %nestedstruct = OpVariable %_ptr_Function_Output Function\n" - " %tmp0 = OpLoad %Output %nestedstruct\n" - + getNestedStructCompositeInserts(arraySize) + - " OpStore %dataOutput %tmp" + de::toString(arraySize * 4) + "\n" - " OpReturnValue %param\n" - " OpFunctionEnd\n"; - - vulkanFeatures.coreFeatures.vertexPipelineStoresAndAtomics = DE_TRUE; - vulkanFeatures.coreFeatures.fragmentStoresAndAtomics = DE_FALSE; - createTestForStage(VK_SHADER_STAGE_VERTEX_BIT, (testName + "_vert").c_str(), defaultColors, defaultColors, fragments, noSpecConstants, - noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group); - - createTestForStage(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, (testName + "_tessc").c_str(), defaultColors, defaultColors, fragments, noSpecConstants, - noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group); - - createTestForStage(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, (testName + "_tesse").c_str(), defaultColors, defaultColors, fragments, noSpecConstants, - noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group); - - createTestForStage(VK_SHADER_STAGE_GEOMETRY_BIT, (testName + "_geom").c_str(), defaultColors, defaultColors, fragments, noSpecConstants, - noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group); - - vulkanFeatures.coreFeatures.vertexPipelineStoresAndAtomics = DE_FALSE; - vulkanFeatures.coreFeatures.fragmentStoresAndAtomics = DE_TRUE; - createTestForStage(VK_SHADER_STAGE_FRAGMENT_BIT, (testName + "_frag").c_str(), defaultColors, defaultColors, fragments, noSpecConstants, - noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group); + for (bool useUndef : { true, false }) + { + map fragments; + RGBA defaultColors[4]; + GraphicsResources resources; + + SpecConstants noSpecConstants; + PushConstants noPushConstants; + GraphicsInterfaces noInterfaces; + vector noExtensions; + VulkanFeatures vulkanFeatures = VulkanFeatures(); + vector identityData; + const deUint32 arraySize = 8u; + const string testName = string(useUndef ? "undef_" : "") + "nested_struct"; + + // Expect an array of identity matrix as output + for (deUint32 a = 0; a < arraySize; a++) + for (deUint32 c = 0; c < 4; c++) + for (deUint32 r = 0; r < 4; r++) + identityData.push_back(c == r ? 1.0f : 0.0f); + resources.outputs.push_back(Resource(BufferSp(new Float32Buffer(identityData)), VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)); + + getDefaultColors(defaultColors); + + fragments["pre_main"] = + " %uint_8 = OpConstant %u32 8\n" + " %mat4v4f32 = OpTypeMatrix %v4f32 4\n" + "%_arr_mat4v4f32_uint_8 = OpTypeArray %mat4v4f32 %uint_8\n" + " %S = OpTypeStruct %_arr_mat4v4f32_uint_8\n" + " %Output = OpTypeStruct %S\n" + " %_ptr_Uniform_Output = OpTypePointer Uniform %Output\n" + " %_ptr_Function_Output = OpTypePointer Function %Output\n" + " %dataOutput = OpVariable %_ptr_Uniform_Output Uniform\n" + + getIdentityVectors(4, 4); + + fragments["decoration"] = + " OpDecorate %_arr_mat4v4f32_uint_8 ArrayStride 64\n" + " OpMemberDecorate %S 0 ColMajor\n" + " OpMemberDecorate %S 0 Offset 0\n" + " OpMemberDecorate %S 0 MatrixStride 16\n" + " OpMemberDecorate %Output 0 Offset 0\n" + " OpDecorate %Output BufferBlock\n" + " OpDecorate %dataOutput DescriptorSet 0\n" + " OpDecorate %dataOutput Binding 0\n"; + + fragments["testfun"] = + " %test_code = OpFunction %v4f32 None %v4f32_v4f32_function\n" + " %param = OpFunctionParameter %v4f32\n" + " %entry = OpLabel\n" + " %nestedstruct = OpVariable %_ptr_Function_Output Function\n" + + getNestedStructCompositeInserts(arraySize, useUndef) + + " OpStore %dataOutput %tmp" + de::toString(arraySize * 4) + "\n" + " OpReturnValue %param\n" + " OpFunctionEnd\n"; + + vulkanFeatures.coreFeatures.vertexPipelineStoresAndAtomics = DE_TRUE; + vulkanFeatures.coreFeatures.fragmentStoresAndAtomics = DE_FALSE; + createTestForStage(VK_SHADER_STAGE_VERTEX_BIT, (testName + "_vert").c_str(), defaultColors, defaultColors, fragments, noSpecConstants, + noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group); + + createTestForStage(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, (testName + "_tessc").c_str(), defaultColors, defaultColors, fragments, noSpecConstants, + noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group); + + createTestForStage(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, (testName + "_tesse").c_str(), defaultColors, defaultColors, fragments, noSpecConstants, + noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group); + + createTestForStage(VK_SHADER_STAGE_GEOMETRY_BIT, (testName + "_geom").c_str(), defaultColors, defaultColors, fragments, noSpecConstants, + noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group); + + vulkanFeatures.coreFeatures.vertexPipelineStoresAndAtomics = DE_FALSE; + vulkanFeatures.coreFeatures.fragmentStoresAndAtomics = DE_TRUE; + createTestForStage(VK_SHADER_STAGE_FRAGMENT_BIT, (testName + "_frag").c_str(), defaultColors, defaultColors, fragments, noSpecConstants, + noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group); + } } } // anonymous diff --git a/external/vulkancts/mustpass/master/vk-default.txt b/external/vulkancts/mustpass/master/vk-default.txt index 4075049..7b2216b 100644 --- a/external/vulkancts/mustpass/master/vk-default.txt +++ b/external/vulkancts/mustpass/master/vk-default.txt @@ -315710,9 +315710,21 @@ dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings. dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp32_preserve_fp64_preserve dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.independence_settings dEQP-VK.spirv_assembly.instruction.compute.ubo_padding.mat2x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec4 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.vec2 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.vec3 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.vec4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x2 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x3 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x4 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat2x2 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat3x2 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat4x2 @@ -315722,6 +315734,7 @@ dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat4x3 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat2x4 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat3x4 dEQP-VK.spirv_assembly.instruction.compute.composite_insert.mat4x4 +dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_nested_struct dEQP-VK.spirv_assembly.instruction.compute.composite_insert.nested_struct dEQP-VK.spirv_assembly.instruction.compute.variable_init.private.float dEQP-VK.spirv_assembly.instruction.compute.variable_init.private.vec4 @@ -324650,6 +324663,21 @@ dEQP-VK.spirv_assembly.instruction.graphics.ubo_padding.mat2x2_tessc dEQP-VK.spirv_assembly.instruction.graphics.ubo_padding.mat2x2_tesse dEQP-VK.spirv_assembly.instruction.graphics.ubo_padding.mat2x2_geom dEQP-VK.spirv_assembly.instruction.graphics.ubo_padding.mat2x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_frag dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec2_vert dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec2_tessc dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec2_tesse @@ -324665,6 +324693,51 @@ dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec4_tessc dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec4_tesse dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec4_geom dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.vec4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_frag dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat2x2_vert dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat2x2_tessc dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat2x2_tesse @@ -324710,6 +324783,11 @@ dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat4x4_tessc dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat4x4_tesse dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat4x4_geom dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.mat4x4_frag +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_vert +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_tessc +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_tesse +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_geom +dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_frag dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.nested_struct_vert dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.nested_struct_tessc dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.nested_struct_tesse -- 2.7.4