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
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
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
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
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
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
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
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";
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";
return ret;
}
-string getNestedStructCompositeInserts (deUint32 arraySize)
+string getNestedStructCompositeInserts (deUint32 arraySize, bool useUndef)
{
string ret;
+ if (useUndef)
+ ret = " %tmp0 = OpUndef %Output\n";
+ else
+ ret = " %tmp0 = OpLoad %Output %nestedstruct\n";
+
for (deUint32 arrayIdx = 0; arrayIdx < arraySize; arrayIdx++)
for (deUint32 vectorIdx = 0; vectorIdx < 4; vectorIdx++)
ret += string("%tmp") + de::toString(arrayIdx * 4 + vectorIdx + 1) + " = OpCompositeInsert %Output %identity" + de::toString(vectorIdx) + " %tmp" + de::toString(arrayIdx * 4 + vectorIdx) + " 0 0 " + de::toString(arrayIdx) + " " + de::toString(vectorIdx) + "\n";
{
tcu::TestContext& testCtx = group->getTestContext();
+ for (bool useUndef : {true, false})
for (deUint32 elements = 2; elements <= 4; elements++)
{
ComputeShaderSpec spec;
" %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"
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));
}
void addGraphicsVectorCompositeInsertTests (tcu::TestCaseGroup* group)
{
+ for (bool useUndef : { true, false })
for (deUint32 elements = 2; elements <= 4; elements++)
{
map<string, string> fragments;
vector<string> noExtensions;
VulkanFeatures vulkanFeatures = VulkanFeatures();
vector<float> 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
" %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"
{
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;
" %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"
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));
}
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;
vector<string> noExtensions;
VulkanFeatures vulkanFeatures = VulkanFeatures();
vector<float> 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
" %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"
{
tcu::TestContext& testCtx = group->getTestContext();
- ComputeShaderSpec spec;
- vector<float> 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<float> 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<string, string> fragments;
- RGBA defaultColors[4];
- GraphicsResources resources;
-
- SpecConstants noSpecConstants;
- PushConstants noPushConstants;
- GraphicsInterfaces noInterfaces;
- vector<string> noExtensions;
- VulkanFeatures vulkanFeatures = VulkanFeatures();
- vector<float> 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<string, string> fragments;
+ RGBA defaultColors[4];
+ GraphicsResources resources;
+
+ SpecConstants noSpecConstants;
+ PushConstants noPushConstants;
+ GraphicsInterfaces noInterfaces;
+ vector<string> noExtensions;
+ VulkanFeatures vulkanFeatures = VulkanFeatures();
+ vector<float> 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
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
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
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
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
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