+dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_6_compute
dEQP-VK.spirv_assembly.instruction.compute.localsize_id.literal_localsize
dEQP-VK.spirv_assembly.instruction.compute.localsize_id.literal_and_specid_localsize
dEQP-VK.spirv_assembly.instruction.compute.localsize_id.literal_localsize_x
dEQP-VK.spirv_assembly.instruction.compute.empty_struct.function.global_variable_shared
dEQP-VK.spirv_assembly.instruction.compute.empty_struct.function.local_variable
dEQP-VK.spirv_assembly.instruction.compute.oparraylength.array-stride-larger-than-element-size
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_vertex
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_tesselation_evaluation
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_tesselation_control
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_geometry
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_fragment
dEQP-VK.spirv_assembly.instruction.graphics.switch_block_order.switch-case-to-merge-block
dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i64_vert
dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftrightlogical_i64_tessc
dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_3_compute
dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_4_compute
dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_5_compute
+dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_6_compute
dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_localsize
dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_and_specid_localsize
dEQP-VK.spirv_assembly.instruction.compute.localsize.specid_localsize
dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_5_tesselation_control
dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_5_geometry
dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_5_fragment
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_vertex
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_tesselation_evaluation
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_tesselation_control
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_geometry
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_fragment
dEQP-VK.spirv_assembly.instruction.graphics.opnop.opnop_vert
dEQP-VK.spirv_assembly.instruction.graphics.opnop.opnop_tessc
dEQP-VK.spirv_assembly.instruction.graphics.opnop.opnop_tesse
"73bf8a239d5e3a7ef37ede266fcf7d1e485f8a66",
"spirv-headers"),
GitRepo(
- "https://github.com/google/amber.git",
- None,
- "3e22a7d6694983df7bf575b0c0ae829b8333a5bf",
+ "https://gitlab.khronos.org/spirv/amber.git",
+ "git@gitlab.khronos.org:spirv/amber.git",
+ "94586d6c879db7394a4203813a40f0d7e437e0aa",
"amber"),
]
SPIRV_VERSION_1_3 = 3, //!< SPIR-V 1.3
SPIRV_VERSION_1_4 = 4, //!< SPIR-V 1.4
SPIRV_VERSION_1_5 = 5, //!< SPIR-V 1.5
+ SPIRV_VERSION_1_6 = 6, //!< SPIR-V 1.6
SPIRV_VERSION_LAST
};
case SPIRV_VERSION_1_3: targetEnv = SPV_ENV_VULKAN_1_1; break;
case SPIRV_VERSION_1_4: targetEnv = SPV_ENV_VULKAN_1_1_SPIRV_1_4; break;
case SPIRV_VERSION_1_5: targetEnv = SPV_ENV_VULKAN_1_2; break;
+ case SPIRV_VERSION_1_6: targetEnv = SPV_ENV_VULKAN_1_3; break;
default:
TCU_THROW(InternalError, "Unexpected SPIR-V version requested");
}
result = vk::SPIRV_VERSION_1_0;
else if (vulkanVersionMajorMinor == VK_API_VERSION_1_1)
result = vk::SPIRV_VERSION_1_3;
- else if (vulkanVersionMajorMinor >= VK_API_VERSION_1_2)
+ else if (vulkanVersionMajorMinor == VK_API_VERSION_1_2)
result = vk::SPIRV_VERSION_1_5;
+ else if (vulkanVersionMajorMinor >= VK_API_VERSION_1_3)
+ result = vk::SPIRV_VERSION_1_6;
DE_ASSERT(result < vk::SPIRV_VERSION_LAST);
SpirvVersion extractSpirvVersion (const ProgramBinary& binary)
{
- DE_STATIC_ASSERT(SPIRV_VERSION_1_5 + 1 == SPIRV_VERSION_LAST);
+ DE_STATIC_ASSERT(SPIRV_VERSION_1_6 + 1 == SPIRV_VERSION_LAST);
if (binary.getFormat() != PROGRAM_FORMAT_SPIRV)
TCU_THROW(InternalError, "Binary is not in SPIR-V format");
const deUint32 spirvBinaryVersion13 = 0x00010300;
const deUint32 spirvBinaryVersion14 = 0x00010400;
const deUint32 spirvBinaryVersion15 = 0x00010500;
+ const deUint32 spirvBinaryVersion16 = 0x00010600;
const SpirvBinaryHeader* header = reinterpret_cast<const SpirvBinaryHeader*>(binary.getBinary());
const deUint32 spirvVersion = isNativeSpirVBinaryEndianness()
? header->version
case spirvBinaryVersion13: result = SPIRV_VERSION_1_3; break; //!< SPIR-V 1.3
case spirvBinaryVersion14: result = SPIRV_VERSION_1_4; break; //!< SPIR-V 1.4
case spirvBinaryVersion15: result = SPIRV_VERSION_1_5; break; //!< SPIR-V 1.5
+ case spirvBinaryVersion16: result = SPIRV_VERSION_1_6; break; //!< SPIR-V 1.6
default: TCU_THROW(InternalError, "Unknown SPIR-V version detected in binary");
}
std::string getSpirvVersionName (const SpirvVersion spirvVersion)
{
- DE_STATIC_ASSERT(SPIRV_VERSION_1_5 + 1 == SPIRV_VERSION_LAST);
+ DE_STATIC_ASSERT(SPIRV_VERSION_1_6 + 1 == SPIRV_VERSION_LAST);
DE_ASSERT(spirvVersion < SPIRV_VERSION_LAST);
std::string result;
case SPIRV_VERSION_1_3: result = "1.3"; break; //!< SPIR-V 1.3
case SPIRV_VERSION_1_4: result = "1.4"; break; //!< SPIR-V 1.4
case SPIRV_VERSION_1_5: result = "1.5"; break; //!< SPIR-V 1.5
+ case SPIRV_VERSION_1_6: result = "1.6"; break; //!< SPIR-V 1.6
default: result = "Unknown";
}
case SPIRV_VERSION_1_5:
shader.setEnvTarget(glslang::EshTargetSpv, (glslang::EShTargetLanguageVersion)0x10500);
break;
+ case SPIRV_VERSION_1_6:
+ shader.setEnvTarget(glslang::EshTargetSpv, (glslang::EShTargetLanguageVersion)0x10600);
+ break;
default:
TCU_THROW(InternalError, "Unsupported SPIR-V target version");
}
case VK_MAKE_VERSION(1, 0, 0): return SPV_ENV_VULKAN_1_0;
case VK_MAKE_VERSION(1, 1, 0): return allow_1_4 ? SPV_ENV_VULKAN_1_1_SPIRV_1_4 : SPV_ENV_VULKAN_1_1;
case VK_MAKE_VERSION(1, 2, 0): return SPV_ENV_VULKAN_1_2;
+ case VK_MAKE_VERSION(1, 3, 0): return SPV_ENV_VULKAN_1_3;
default:
break;
}
case SPIRV_VERSION_1_3: result = SPV_ENV_UNIVERSAL_1_3; break; //!< SPIR-V 1.3
case SPIRV_VERSION_1_4: result = SPV_ENV_UNIVERSAL_1_4; break; //!< SPIR-V 1.4
case SPIRV_VERSION_1_5: result = SPV_ENV_UNIVERSAL_1_5; break; //!< SPIR-V 1.5
+ case SPIRV_VERSION_1_6: result = SPV_ENV_UNIVERSAL_1_6; break; //!< SPIR-V 1.6
default: TCU_THROW(InternalError, "Unknown SPIR-V version");
}
const amber::ShaderInfo& shader = shaders[i];
vk::SpirvVersion spirvVersion = vk::SPIRV_VERSION_1_0;
- DE_STATIC_ASSERT(vk::SPIRV_VERSION_LAST == vk::SPIRV_VERSION_1_5 + 1);
- if (shader.target_env == "spv1.5")
+ DE_STATIC_ASSERT(vk::SPIRV_VERSION_LAST == vk::SPIRV_VERSION_1_6 + 1);
+ if (shader.target_env == "spv1.6")
+ spirvVersion = vk::SPIRV_VERSION_1_6;
+ else if (shader.target_env == "spv1.5")
spirvVersion = vk::SPIRV_VERSION_1_5;
else if (shader.target_env == "spv1.4")
spirvVersion = vk::SPIRV_VERSION_1_4;
{ "1.0", VK_MAKE_VERSION(1, 0, 0) },
{ "1.1", VK_MAKE_VERSION(1, 1, 0) },
{ "1.2", VK_MAKE_VERSION(1, 2, 0) },
+ { "1.3", VK_MAKE_VERSION(1, 3, 0) },
};
- DE_STATIC_ASSERT(vk::SPIRV_VERSION_1_5 + 1 == vk::SPIRV_VERSION_LAST);
+ DE_STATIC_ASSERT(vk::SPIRV_VERSION_1_6 + 1 == vk::SPIRV_VERSION_LAST);
parser << Option<opt::DstPath>("d", "dst-path", "Destination path", "out")
<< Option<opt::Cases>("n", "deqp-case", "Case path filter (works as in test binaries)")
dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_3_compute
dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_4_compute
dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_5_compute
+dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_6_compute
dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_localsize
dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_and_specid_localsize
dEQP-VK.spirv_assembly.instruction.compute.localsize.specid_localsize
dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_5_tesselation_control
dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_5_geometry
dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_5_fragment
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_vertex
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_tesselation_evaluation
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_tesselation_control
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_geometry
+dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_6_fragment
dEQP-VK.spirv_assembly.instruction.graphics.opnop.opnop_vert
dEQP-VK.spirv_assembly.instruction.graphics.opnop.opnop_tessc
dEQP-VK.spirv_assembly.instruction.graphics.opnop.opnop_tesse