Check for "VK_API_VERSION_m_n" or "VK_VERSION_m_n" in SPIRVCapabilities and SPIRVExtensions

This commit is contained in:
asuessenbach 2021-11-09 08:57:08 +01:00
parent b7ce8315be
commit 08bbbe892f

View File

@ -13338,11 +13338,14 @@ void VulkanHppGenerator::readSPIRVCapabilitiesSPIRVCapabilityEnableVersion(
for ( auto const & attribute : attributes ) for ( auto const & attribute : attributes )
{ {
assert( attribute.first == "version" ); assert( attribute.first == "version" );
check( beginsWith( attribute.second, "VK_API_VERSION_" ), std::string feature = attribute.second;
if ( beginsWith( feature, "VK_API_" ) )
{
feature.erase( 3, 4 ); // remove "API_" from the version -> VK_VERSION_x_y
}
check( beginsWith( feature, "VK_VERSION_" ),
xmlLine, xmlLine,
"unknown version <" + attribute.second + "> specified for SPIR-V capability" ); "unknown version <" + attribute.second + "> specified for SPIR-V capability" );
std::string feature = attribute.second;
feature.erase( 3, 4 ); // remove "API_" from the version -> VK_VERSION_x_y
check( m_features.find( feature ) != m_features.end(), check( m_features.find( feature ) != m_features.end(),
xmlLine, xmlLine,
"unknown version <" + attribute.second + "> specified for SPIR-V capability" ); "unknown version <" + attribute.second + "> specified for SPIR-V capability" );
@ -13398,11 +13401,14 @@ void VulkanHppGenerator::readSPIRVExtensionsExtensionEnable( tinyxml2::XMLElemen
else else
{ {
assert( attribute.first == "version" ); assert( attribute.first == "version" );
check( beginsWith( attribute.second, "VK_API_VERSION_" ), std::string feature = attribute.second;
if ( beginsWith( feature, "VK_API_" ) )
{
feature.erase( 3, 4 ); // remove "API_" from the version -> VK_VERSION_x_y
}
check( beginsWith( feature, "VK_VERSION_" ),
line, line,
"unknown version <" + attribute.second + "> specified for SPIR-V extension" ); "unknown version <" + attribute.second + "> specified for SPIR-V extension" );
std::string feature = attribute.second;
feature.erase( 3, 4 ); // remove "API_" from the version -> VK_VERSION_x_y
check( m_features.find( feature ) != m_features.end(), check( m_features.find( feature ) != m_features.end(),
line, line,
"unknown version <" + attribute.second + "> specified for SPIR-V extension" ); "unknown version <" + attribute.second + "> specified for SPIR-V extension" );