From d973957ab55cfa37f9c93cdaf1abbdbcd90c40eb Mon Sep 17 00:00:00 2001 From: asuessenbach Date: Tue, 16 Mar 2021 10:09:05 +0100 Subject: [PATCH] Add assertion on valid function pointer for functions depending on extensions. --- VulkanHppGenerator.cpp | 471 ++++++++++++++++------------ vulkan/vulkan_raii.hpp | 683 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 952 insertions(+), 202 deletions(-) diff --git a/VulkanHppGenerator.cpp b/VulkanHppGenerator.cpp index 0ff1a86..23113cc 100644 --- a/VulkanHppGenerator.cpp +++ b/VulkanHppGenerator.cpp @@ -251,6 +251,33 @@ std::string constructCArraySizes( std::vector const & sizes ) return arraySizes; } +std::string constructFunctionPointerCheck( std::string const & function, + std::set const & extensions, + std::string const & feature ) +{ + std::string functionPointerCheck; + if ( !extensions.empty() ) + { + assert( feature.empty() ); + std::string message = "Function <" + function + "> needs "; + if ( extensions.size() == 1 ) + { + message += "extension <" + *extensions.begin() + "> enabled!"; + } + else + { + message += "at least one of the following extensions enabled: "; + for ( auto const & ext : extensions ) + { + message += "<" + ext + ">, "; + } + message = stripPostfix( message, ", " ); + } + functionPointerCheck = "\n VULKAN_HPP_ASSERT( getDispatcher()->" + function + " && \"" + message + "\" );\n"; + } + return functionPointerCheck; +} + std::string constructStandardArray( std::string const & type, std::vector const & sizes ) { std::string arrayString = "std::array<" + type + "," + sizes.back() + ">"; @@ -7170,7 +7197,7 @@ ${leave})"; const std::string definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<${vectorElementType}> ${className}::${commandName}( ${argumentList} ) const - { + {${functionPointerCheck} std::vector<${vectorElementType}> ${vectorName}; ${counterType} ${counterName}; VULKAN_HPP_NAMESPACE::Result result; @@ -7206,6 +7233,8 @@ ${leave})"; { "counterType", commandIt->second.params[vectorParamIndices.begin()->second].type.type }, { "enter", enter }, { "firstCallArguments", firstCallArguments }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, { "leave", leave }, { "secondCallArguments", secondCallArguments }, { "vectorElementType", vectorElementType }, @@ -7262,7 +7291,7 @@ ${leave})"; const std::string definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair, std::vector<${secondType}>> ${className}::${commandName}( ${argumentList} ) const - { + {${functionPointerCheck} std::pair, std::vector<${secondType}>> data; std::vector<${firstType}> & ${firstVectorName} = data.first; std::vector<${secondType}> & ${secondVectorName} = data.second; @@ -7292,22 +7321,24 @@ ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pairsecond.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "counterName", counterName }, - { "counterType", commandIt->second.params[firstVectorParamIt->second].type.type }, - { "enter", enter }, - { "firstCallArguments", firstCallArguments }, - { "firstType", firstType }, - { "firstVectorName", firstVectorName }, - { "leave", leave }, - { "secondCallArguments", secondCallArguments }, - { "secondType", secondType }, - { "secondVectorName", secondVectorName }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "counterName", counterName }, + { "counterType", commandIt->second.params[firstVectorParamIt->second].type.type }, + { "enter", enter }, + { "firstCallArguments", firstCallArguments }, + { "firstType", firstType }, + { "firstVectorName", firstVectorName }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "secondCallArguments", secondCallArguments }, + { "secondType", secondType }, + { "secondVectorName", secondVectorName }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -7356,7 +7387,7 @@ ${leave})"; const std::string definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::tuple ${className}::${commandName}( ${argumentList} ) const - { + {${functionPointerCheck} std::tuple data; VULKAN_HPP_NAMESPACE::Result & result = std::get<0>( data ); ${firstReturnType} & ${firstReturnName} = std::get<1>( data ); @@ -7381,6 +7412,8 @@ ${leave})"; { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, { "firstReturnName", firstReturnName }, { "firstReturnType", firstReturnType }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, { "leave", leave }, { "secondReturnName", secondReturnName }, { "secondReturnType", secondReturnType }, @@ -7428,7 +7461,7 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result ${className}::${commandName}( ${argumentList} ) const - {${vectorSizeCheck} + {${functionPointerCheck}${vectorSizeCheck} VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->${vkCommand}( ${callArguments} ) ); if ( ${failureCheck} ) { @@ -7438,17 +7471,19 @@ ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result ${ } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "callArguments", callArguments }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "enter", enter }, - { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, - { "leave", leave }, - { "vectorSizeCheck", vectorSizeCheckString }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "enter", enter }, + { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "vectorSizeCheck", vectorSizeCheckString }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -7492,7 +7527,7 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair ${className}::${commandName}( ${argumentList} ) const - { + {${functionPointerCheck} ${returnType} ${valueName}; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->${vkCommand}( ${callArguments} ) ); if ( ${failureCheck} ) @@ -7503,18 +7538,20 @@ ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pairsecond.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "enter", enter }, - { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, - { "leave", leave }, - { "valueName", valueName }, - { "returnType", returnType }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "enter", enter }, + { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "valueName", valueName }, + { "returnType", returnType }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -7556,7 +7593,7 @@ ${leave})"; R"( ${enter} template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair> ${className}::${commandName}( ${argumentList} ) const - { + {${functionPointerCheck} VULKAN_HPP_ASSERT( ${dataSize} % sizeof( T ) == 0 ); std::vector ${dataName}( ${dataSize} / sizeof( T ) ); Result result = static_cast( getDispatcher()->${vkCommand}( ${callArguments} ) ); @@ -7568,18 +7605,20 @@ ${enter} template } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "callArguments", callArguments }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "dataName", dataName }, - { "dataSize", commandIt->second.params[nonConstPointerParamIndices[0]].len }, - { "enter", enter }, - { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, - { "leave", leave }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "dataName", dataName }, + { "dataSize", commandIt->second.params[nonConstPointerParamIndices[0]].len }, + { "enter", enter }, + { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -7687,21 +7726,23 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result ${className}::${commandName}( ${argumentList} ) const VULKAN_HPP_NOEXCEPT - {${vectorSizeCheck} + {${functionPointerCheck}${vectorSizeCheck} return static_cast( getDispatcher()->${vkCommand}( ${callArguments} ) ); } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "callArguments", callArguments }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "enter", enter }, - { "leave", leave }, - { "vectorSizeCheck", vectorSizeCheckString }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "enter", enter }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "vectorSizeCheck", vectorSizeCheckString }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -7745,7 +7786,7 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_INLINE void ${className}::${commandName}( ${argumentList} ) const - {${vectorSizeCheck} + {${functionPointerCheck}${vectorSizeCheck} VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->${vkCommand}( ${callArguments} ) ); if ( ${failureCheck} ) { @@ -7754,17 +7795,19 @@ ${enter} VULKAN_HPP_INLINE void ${className}::${commandName}( ${argumentList} ) } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "callArguments", callArguments }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "enter", enter }, - { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, - { "leave", leave }, - { "vectorSizeCheck", vectorSizeCheckString }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "enter", enter }, + { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "vectorSizeCheck", vectorSizeCheckString }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -7880,7 +7923,7 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair, ${valueType}> ${className}::${commandName}( ${argumentList} ) const - { + {${functionPointerCheck} std::pair, ${valueType}> data( std::piecewise_construct, std::forward_as_tuple( ${vectorSize} ), std::forward_as_tuple( 0 ) ); std::vector<${vectorElementType}> & ${vectorName} = data.first; ${valueType} & ${valueName} = data.second; @@ -7893,21 +7936,23 @@ ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pairsecond.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "enter", enter }, - { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, - { "leave", leave }, - { "valueName", valueName }, - { "valueType", valueType }, - { "vectorElementType", vectorElementType }, - { "vectorName", vectorName }, - { "vectorSize", vectorSize }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "enter", enter }, + { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "valueName", valueName }, + { "valueType", valueType }, + { "vectorElementType", vectorElementType }, + { "vectorName", vectorName }, + { "vectorSize", vectorSize }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -7949,7 +7994,7 @@ ${leave})"; R"( ${enter} template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector ${className}::${commandName}( ${argumentList} ) const - { + {${functionPointerCheck} VULKAN_HPP_ASSERT( ${dataSize} % sizeof( T ) == 0 ); std::vector ${dataName}( ${dataSize} / sizeof( T ) ); Result result = static_cast( getDispatcher()->${vkCommand}( ${callArguments} ) ); @@ -7961,18 +8006,20 @@ ${enter} template } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "callArguments", callArguments }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "dataName", dataName }, - { "dataSize", commandIt->second.params[nonConstPointerParamIndices[0]].len }, - { "enter", enter }, - { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, - { "leave", leave }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "dataName", dataName }, + { "dataSize", commandIt->second.params[nonConstPointerParamIndices[0]].len }, + { "enter", enter }, + { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -8080,21 +8127,23 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_INLINE void ${className}::${commandName}( ${argumentList} ) const VULKAN_HPP_NOEXCEPT - {${vectorSizeCheck} + {${functionPointerCheck}${vectorSizeCheck} getDispatcher()->${vkCommand}( ${callArguments} ); } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "callArguments", callArguments }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "enter", enter }, - { "leave", leave }, - { "vectorSizeCheck", vectorSizeCheckString }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "enter", enter }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "vectorSizeCheck", vectorSizeCheckString }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -8140,7 +8189,7 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ${returnType} ${className}::${commandName}( ${argumentList} ) const - { + {${functionPointerCheck} ${returnType} ${valueName}; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->${vkCommand}( ${callArguments} ) ); if ( ${failureCheck} ) @@ -8160,6 +8209,8 @@ ${leave})"; { "commandName", commandName }, { "enter", enter }, { "failureCheck", constructFailureCheck( commandIt->second.successCodes ) }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, { "leave", leave }, { "valueName", valueName }, { "returnType", returnType }, @@ -8576,7 +8627,7 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair ${className}::${commandName}( ${argumentList} ) const ${noexcept} - {${vectorSizeCheck} + {${functionPointerCheck}${vectorSizeCheck} std::pair result; ${returnType} & ${returnVariable} = result.second; result.first = static_cast( getDispatcher()->${vkCommand}( ${callArguments} ) ); @@ -8592,6 +8643,8 @@ ${leave})"; { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, { "commandName", commandName }, { "enter", enter }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, { "leave", leave }, { "noexcept", noexceptString }, { "vectorSizeCheck", @@ -8667,22 +8720,24 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ${returnType} ${className}::${commandName}( ${argumentList} ) const VULKAN_HPP_NOEXCEPT - {${vectorSizeCheck} + {${functionPointerCheck}${vectorSizeCheck} return getDispatcher()->${vkCommand}( ${callArguments} ); } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "callArguments", callArguments }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "enter", enter }, - { "leave", leave }, - { "returnType", returnType }, - { "vectorSizeCheck", vectorSizeCheckString }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "enter", enter }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "returnType", returnType }, + { "vectorSizeCheck", vectorSizeCheckString }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -8730,22 +8785,24 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ${returnType} ${className}::${commandName}( ${argumentList} ) const VULKAN_HPP_NOEXCEPT - {${vectorSizeCheck} + {${functionPointerCheck}${vectorSizeCheck} return static_cast<${returnType}>( getDispatcher()->${vkCommand}( ${callArguments} ) ); } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "callArguments", callArguments }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "enter", enter }, - { "leave", leave }, - { "returnType", returnType }, - { "vectorSizeCheck", vectorSizeCheckString }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "enter", enter }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "returnType", returnType }, + { "vectorSizeCheck", vectorSizeCheckString }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -8797,23 +8854,25 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} ${template}VULKAN_HPP_INLINE void ${className}::${commandName}( ${argumentList} ) const ${noexcept} - {${vectorSizeCheck} + {${functionPointerCheck}${vectorSizeCheck} getDispatcher()->${vkCommand}( ${callArguments} ); } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "callArguments", callArguments }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "enter", enter }, - { "leave", leave }, - { "noexcept", noexceptString }, - { "template", templateString }, - { "vectorSizeCheck", vectorSizeCheckString }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "enter", enter }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "noexcept", noexceptString }, + { "template", templateString }, + { "vectorSizeCheck", vectorSizeCheckString }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -8863,7 +8922,7 @@ ${leave})"; const std::string definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<${vectorElementType}> ${className}::${commandName}( ${argumentList} ) const VULKAN_HPP_NOEXCEPT - { + {${functionPointerCheck} ${counterType} ${counterName}; getDispatcher()->${vkCommand}( ${firstCallArguments} ); std::vector<${vectorElementType}> ${vectorName}( ${counterName} ); @@ -8873,20 +8932,22 @@ ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<${vectorElementType } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "counterName", counterName }, - { "counterType", commandIt->second.params[vectorParamIndices.begin()->second].type.type }, - { "enter", enter }, - { "firstCallArguments", firstCallArguments }, - { "leave", leave }, - { "secondCallArguments", secondCallArguments }, - { "vectorElementType", vectorElementType }, - { "vectorName", vectorName }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "counterName", counterName }, + { "counterType", commandIt->second.params[vectorParamIndices.begin()->second].type.type }, + { "enter", enter }, + { "firstCallArguments", firstCallArguments }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "secondCallArguments", secondCallArguments }, + { "vectorElementType", vectorElementType }, + { "vectorName", vectorName }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -8933,7 +8994,7 @@ ${leave})"; R"( ${enter} template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector ${className}::${commandName}( ${argumentList} ) const - { + {${functionPointerCheck} ${counterType} ${counterName}; getDispatcher()->${vkCommand}( ${firstCallArguments} ); std::vector returnVector( ${counterName} ); @@ -8952,20 +9013,22 @@ ${enter} template } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "counterName", counterName }, - { "counterType", commandIt->second.params[vectorParamIndices.begin()->second].type.type }, - { "enter", enter }, - { "firstCallArguments", firstCallArguments }, - { "leave", leave }, - { "secondCallArguments", secondCallArguments }, - { "vectorElementType", vectorElementType }, - { "vectorName", vectorName }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "counterName", counterName }, + { "counterType", commandIt->second.params[vectorParamIndices.begin()->second].type.type }, + { "enter", enter }, + { "firstCallArguments", firstCallArguments }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "secondCallArguments", secondCallArguments }, + { "vectorElementType", vectorElementType }, + { "vectorName", vectorName }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -9008,7 +9071,7 @@ ${leave})"; R"( ${enter} template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain ${className}::${commandName}( ${argumentList} ) const VULKAN_HPP_NOEXCEPT - { + {${functionPointerCheck} StructureChain structureChain; ${returnType} & ${returnVariable} = structureChain.template get<${returnType}>(); getDispatcher()->${vkCommand}( ${callArguments} ); @@ -9016,17 +9079,19 @@ ${enter} template } ${leave})"; - std::string definition = - replaceWithMap( definitionTemplate, - { { "argumentList", argumentListDefinition }, - { "callArguments", callArguments }, - { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, - { "commandName", commandName }, - { "enter", enter }, - { "leave", leave }, - { "returnVariable", returnVariable }, - { "returnType", returnType }, - { "vkCommand", commandIt->first } } ); + std::string definition = replaceWithMap( + definitionTemplate, + { { "argumentList", argumentListDefinition }, + { "callArguments", callArguments }, + { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, + { "commandName", commandName }, + { "enter", enter }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, + { "leave", leave }, + { "returnVariable", returnVariable }, + { "returnType", returnType }, + { "vkCommand", commandIt->first } } ); return std::make_pair( declaration, definition ); } @@ -9071,7 +9136,7 @@ ${leave})"; std::string const definitionTemplate = R"( ${enter} VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ${returnType} ${className}::${commandName}( ${argumentList} ) const ${noexcept} - {${vectorSizeCheck} + {${functionPointerCheck}${vectorSizeCheck} ${returnType} ${returnVariable}; getDispatcher()->${vkCommand}( ${callArguments} ); return ${returnVariable}; @@ -9086,6 +9151,8 @@ ${leave})"; { "className", stripPrefix( commandIt->second.params[initialSkipCount - 1].type.type, "Vk" ) }, { "commandName", commandName }, { "enter", enter }, + { "functionPointerCheck", + constructFunctionPointerCheck( commandIt->first, commandIt->second.extensions, commandIt->second.feature ) }, { "leave", leave }, { "noexcept", noexceptString }, { "vectorSizeCheck", diff --git a/vulkan/vulkan_raii.hpp b/vulkan/vulkan_raii.hpp index a42eee8..351c7d3 100644 --- a/vulkan/vulkan_raii.hpp +++ b/vulkan/vulkan_raii.hpp @@ -5658,6 +5658,9 @@ namespace VULKAN_HPP_NAMESPACE const std::string & layerPrefix, const std::string & message ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkDebugReportMessageEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkDebugReportMessageEXT( static_cast( m_instance ), static_cast( flags ), static_cast( objectType_ ), @@ -5711,6 +5714,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkSubmitDebugUtilsMessageEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkSubmitDebugUtilsMessageEXT( static_cast( m_instance ), static_cast( messageSeverity ), @@ -5722,6 +5728,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireXlibDisplayEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireXlibDisplayEXT( static_cast( m_physicalDevice ), &dpy, static_cast( display ) ) ); @@ -5803,6 +5812,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE std::pair, std::vector> PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR && + "Function needs extension enabled!" ); + std::pair, std::vector> data; std::vector & counters = data.first; std::vector & counterDescriptions = data.second; @@ -5843,6 +5856,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetDisplayPlaneCapabilities2KHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetDisplayPlaneCapabilities2KHR( @@ -5859,6 +5876,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getCalibrateableTimeDomainsEXT() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT && + "Function needs extension enabled!" ); + std::vector timeDomains; uint32_t timeDomainCount; VULKAN_HPP_NAMESPACE::Result result; @@ -5892,6 +5913,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getCooperativeMatrixPropertiesNV() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV && + "Function needs extension enabled!" ); + std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; @@ -5928,6 +5953,10 @@ namespace VULKAN_HPP_NAMESPACE PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT && + "Function needs extension enabled!" ); + return static_cast( getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT( static_cast( m_physicalDevice ), queueFamilyIndex, &dfb ) ); @@ -5937,6 +5966,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayPlaneProperties2KHR() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR && + "Function needs extension enabled!" ); + std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; @@ -5970,6 +6003,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayPlanePropertiesKHR() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR && + "Function needs extension enabled!" ); + std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6003,6 +6040,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayProperties2KHR() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR && + "Function needs extension enabled!" ); + std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6034,6 +6075,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayPropertiesKHR() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR && + "Function needs extension enabled!" ); + std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6095,6 +6140,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV( @@ -6195,6 +6244,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getFragmentShadingRatesKHR() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR && + "Function needs extension enabled!" ); + std::vector fragmentShadingRates; uint32_t fragmentShadingRateCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6321,6 +6374,10 @@ namespace VULKAN_HPP_NAMESPACE PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties; getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT( static_cast( m_physicalDevice ), @@ -6332,6 +6389,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR && + "Function needs at least one of the following extensions enabled: , " ); + std::vector rects; uint32_t rectCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6397,6 +6458,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR && + "Function needs extension enabled!" ); + uint32_t numPasses; getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( static_cast( m_physicalDevice ), @@ -6465,6 +6530,10 @@ namespace VULKAN_HPP_NAMESPACE PhysicalDevice::getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX && + "Function needs extension enabled!" ); + return static_cast( getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX( static_cast( m_physicalDevice ), queueFamilyIndex, &window ) ); @@ -6526,6 +6595,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV && + "Function needs extension enabled!" ); + std::vector combinations; uint32_t combinationCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6560,6 +6633,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT( @@ -6576,6 +6653,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( @@ -6611,6 +6692,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR( @@ -6627,6 +6712,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR && + "Function needs extension enabled!" ); + std::vector surfaceFormats; uint32_t surfaceFormatCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6662,6 +6751,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR && + "Function needs extension enabled!" ); + std::vector surfaceFormats; uint32_t surfaceFormatCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6698,6 +6790,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT && + "Function needs extension enabled!" ); + std::vector presentModes; uint32_t presentModeCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6735,6 +6831,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR && + "Function needs extension enabled!" ); + std::vector presentModes; uint32_t presentModeCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6771,6 +6871,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Bool32 supported; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR( static_cast( m_physicalDevice ), @@ -6787,6 +6890,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getToolPropertiesEXT() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT && + "Function needs extension enabled!" ); + std::vector toolProperties; uint32_t toolCount; VULKAN_HPP_NAMESPACE::Result result; @@ -6820,6 +6927,10 @@ namespace VULKAN_HPP_NAMESPACE PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR && + "Function needs extension enabled!" ); + return static_cast( getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR( static_cast( m_physicalDevice ), queueFamilyIndex, &display ) ); @@ -6830,6 +6941,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR && + "Function needs extension enabled!" ); + return static_cast( getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR( static_cast( m_physicalDevice ), queueFamilyIndex ) ); } @@ -6839,6 +6954,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR && + "Function needs extension enabled!" ); + return static_cast( getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR( static_cast( m_physicalDevice ), queueFamilyIndex, &connection, visual_id ) ); } @@ -6848,6 +6967,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR && + "Function needs extension enabled!" ); + return static_cast( getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR( static_cast( m_physicalDevice ), queueFamilyIndex, &dpy, visualID ) ); } @@ -6856,6 +6979,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkAcquireNextImage2KHR && + "Function needs at least one of the following extensions enabled: , " ); + uint32_t imageIndex; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireNextImage2KHR( static_cast( m_device ), @@ -6873,6 +7000,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireProfilingLockKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireProfilingLockKHR( static_cast( m_device ), reinterpret_cast( &info ) ) ); @@ -6885,6 +7015,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkBindAccelerationStructureMemoryNV && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkBindAccelerationStructureMemoryNV( static_cast( m_device ), @@ -6928,6 +7062,9 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & pBuildRangeInfos ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkBuildAccelerationStructuresKHR && + "Function needs extension enabled!" ); if ( infos.size() != pBuildRangeInfos.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING @@ -6954,6 +7091,10 @@ namespace VULKAN_HPP_NAMESPACE Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureInfoKHR & info ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCopyAccelerationStructureKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCopyAccelerationStructureKHR( static_cast( m_device ), @@ -6972,6 +7113,10 @@ namespace VULKAN_HPP_NAMESPACE Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureToMemoryInfoKHR & info ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCopyAccelerationStructureToMemoryKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCopyAccelerationStructureToMemoryKHR( static_cast( m_device ), @@ -6990,6 +7135,10 @@ namespace VULKAN_HPP_NAMESPACE Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyMemoryToAccelerationStructureInfoKHR & info ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCopyMemoryToAccelerationStructureKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCopyMemoryToAccelerationStructureKHR( static_cast( m_device ), @@ -7006,6 +7155,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectNameEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkDebugMarkerSetObjectNameEXT( static_cast( m_device ), reinterpret_cast( &nameInfo ) ) ); @@ -7017,6 +7169,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectTagEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkDebugMarkerSetObjectTagEXT( static_cast( m_device ), reinterpret_cast( &tagInfo ) ) ); @@ -7039,6 +7194,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkDisplayPowerControlEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkDisplayPowerControlEXT( static_cast( m_device ), @@ -7070,6 +7228,10 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & maxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetAccelerationStructureBuildSizesKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo; getDispatcher()->vkGetAccelerationStructureBuildSizesKHR( static_cast( m_device ), @@ -7084,6 +7246,10 @@ namespace VULKAN_HPP_NAMESPACE Device::getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR && + "Function needs extension enabled!" ); + return static_cast( getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR( static_cast( m_device ), @@ -7094,6 +7260,10 @@ namespace VULKAN_HPP_NAMESPACE Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements; getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV( static_cast( m_device ), @@ -7107,6 +7277,10 @@ namespace VULKAN_HPP_NAMESPACE Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV && + "Function needs extension enabled!" ); + StructureChain structureChain; VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = structureChain.template get(); @@ -7121,6 +7295,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID( @@ -7201,6 +7379,10 @@ namespace VULKAN_HPP_NAMESPACE Device::getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetCalibratedTimestampsEXT && + "Function needs extension enabled!" ); + std::pair, uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) ); std::vector & timestamps = data.first; @@ -7249,6 +7431,10 @@ namespace VULKAN_HPP_NAMESPACE Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility; getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR( static_cast( m_device ), @@ -7275,6 +7461,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR Device::getGroupPresentCapabilitiesKHR() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR && + "Function needs at least one of the following extensions enabled: , " ); + VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR( @@ -7291,6 +7481,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT( @@ -7308,6 +7502,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR && + "Function needs at least one of the following extensions enabled: , " ); + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR( @@ -7336,6 +7534,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceFdKHR && + "Function needs extension enabled!" ); + int fd; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetFenceFdKHR( static_cast( m_device ), reinterpret_cast( &getFdInfo ), &fd ) ); @@ -7350,6 +7551,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceWin32HandleKHR && + "Function needs extension enabled!" ); + HANDLE handle; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetFenceWin32HandleKHR( @@ -7368,6 +7572,10 @@ namespace VULKAN_HPP_NAMESPACE Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV( static_cast( m_device ), @@ -7380,6 +7588,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV && + "Function needs extension enabled!" ); + StructureChain structureChain; VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); @@ -7439,6 +7651,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewHandleNVX && + "Function needs extension enabled!" ); + return getDispatcher()->vkGetImageViewHandleNVX( static_cast( m_device ), reinterpret_cast( &info ) ); } @@ -7447,6 +7662,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE struct AHardwareBuffer * Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID && + "Function needs extension enabled!" ); + struct AHardwareBuffer * buffer; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID( @@ -7463,6 +7682,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdKHR && + "Function needs extension enabled!" ); + int fd; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryFdKHR( @@ -7478,6 +7700,9 @@ namespace VULKAN_HPP_NAMESPACE Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdPropertiesKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryFdPropertiesKHR( @@ -7496,6 +7721,10 @@ namespace VULKAN_HPP_NAMESPACE Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void * pHostPointer ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetMemoryHostPointerPropertiesEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryHostPointerPropertiesEXT( @@ -7514,6 +7743,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetMemoryWin32HandleKHR && + "Function needs extension enabled!" ); + HANDLE handle; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryWin32HandleKHR( @@ -7533,6 +7766,10 @@ namespace VULKAN_HPP_NAMESPACE Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR( @@ -7551,6 +7788,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PerformanceValueINTEL Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPerformanceParameterINTEL && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPerformanceParameterINTEL( static_cast( m_device ), @@ -7567,6 +7808,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE std::vector Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR && + "Function needs extension enabled!" ); + std::vector internalRepresentations; uint32_t internalRepresentationCount; VULKAN_HPP_NAMESPACE::Result result; @@ -7606,6 +7851,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPipelineExecutablePropertiesKHR && + "Function needs extension enabled!" ); + std::vector properties; uint32_t executableCount; VULKAN_HPP_NAMESPACE::Result result; @@ -7641,6 +7890,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPipelineExecutableStatisticsKHR && + "Function needs extension enabled!" ); + std::vector statistics; uint32_t statisticCount; VULKAN_HPP_NAMESPACE::Result result; @@ -7678,6 +7931,9 @@ namespace VULKAN_HPP_NAMESPACE uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetPrivateDataEXT && + "Function needs extension enabled!" ); + uint64_t data; getDispatcher()->vkGetPrivateDataEXT( static_cast( m_device ), static_cast( objectType_ ), @@ -7690,6 +7946,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreFdKHR && + "Function needs extension enabled!" ); + int fd; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetSemaphoreFdKHR( @@ -7705,6 +7964,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetSemaphoreWin32HandleKHR && + "Function needs extension enabled!" ); + HANDLE handle; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetSemaphoreWin32HandleKHR( @@ -7721,6 +7984,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceFdKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkImportFenceFdKHR( static_cast( m_device ), reinterpret_cast( &importFenceFdInfo ) ) ); @@ -7734,6 +8000,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkImportFenceWin32HandleKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkImportFenceWin32HandleKHR( static_cast( m_device ), @@ -7747,6 +8017,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreFdKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkImportSemaphoreFdKHR( static_cast( m_device ), @@ -7761,6 +8034,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkImportSemaphoreWin32HandleKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkImportSemaphoreWin32HandleKHR( static_cast( m_device ), @@ -7775,6 +8052,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkInitializePerformanceApiINTEL && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkInitializePerformanceApiINTEL( static_cast( m_device ), @@ -7801,6 +8082,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseProfilingLockKHR && + "Function needs extension enabled!" ); + getDispatcher()->vkReleaseProfilingLockKHR( static_cast( m_device ) ); } @@ -7816,6 +8100,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectNameEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkSetDebugUtilsObjectNameEXT( static_cast( m_device ), reinterpret_cast( &nameInfo ) ) ); @@ -7827,6 +8114,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectTagEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkSetDebugUtilsObjectTagEXT( static_cast( m_device ), reinterpret_cast( &tagInfo ) ) ); @@ -7841,6 +8131,9 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & metadata ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetHdrMetadataEXT && + "Function needs extension enabled!" ); + # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() ); # else @@ -7862,6 +8155,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetPrivateDataEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkSetPrivateDataEXT( static_cast( m_device ), static_cast( objectType_ ), @@ -7887,6 +8183,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkUninitializePerformanceApiINTEL && + "Function needs extension enabled!" ); + getDispatcher()->vkUninitializePerformanceApiINTEL( static_cast( m_device ) ); } @@ -7942,6 +8242,10 @@ namespace VULKAN_HPP_NAMESPACE size_t dataSize, size_t stride ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); std::vector data( dataSize / sizeof( T ) ); Result result = static_cast( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR( @@ -7985,6 +8289,9 @@ namespace VULKAN_HPP_NAMESPACE template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector AccelerationStructureNV::getHandle( size_t dataSize ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV && + "Function needs extension enabled!" ); + VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); std::vector data( dataSize / sizeof( T ) ); Result result = static_cast( getDispatcher()->vkGetAccelerationStructureHandleNV( @@ -8073,6 +8380,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdBeginConditionalRenderingEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdBeginConditionalRenderingEXT( static_cast( m_commandBuffer ), reinterpret_cast( &conditionalRenderingBegin ) ); @@ -8081,6 +8392,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginDebugUtilsLabelEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdBeginDebugUtilsLabelEXT( static_cast( m_commandBuffer ), reinterpret_cast( &labelInfo ) ); } @@ -8101,6 +8415,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginQueryIndexedEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdBeginQueryIndexedEXT( static_cast( m_commandBuffer ), static_cast( queryPool ), query, @@ -8132,6 +8449,10 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & counterBufferOffsets ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdBeginTransformFeedbackEXT && + "Function needs extension enabled!" ); + # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); # else @@ -8193,6 +8514,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdBindPipelineShaderGroupNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdBindPipelineShaderGroupNV( static_cast( m_commandBuffer ), static_cast( pipelineBindPoint ), static_cast( pipeline ), @@ -8203,6 +8528,9 @@ namespace VULKAN_HPP_NAMESPACE CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindShadingRateImageNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdBindShadingRateImageNV( static_cast( m_commandBuffer ), static_cast( imageView ), static_cast( imageLayout ) ); @@ -8214,6 +8542,10 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & offsets, ArrayProxy const & sizes ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT && + "Function needs extension enabled!" ); + # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); @@ -8267,6 +8599,10 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & sizes, ArrayProxy const & strides ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdBindVertexBuffers2EXT && + "Function needs extension enabled!" ); + # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); @@ -8318,6 +8654,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBlitImage2KHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdBlitImage2KHR( static_cast( m_commandBuffer ), reinterpret_cast( &blitImageInfo ) ); } @@ -8332,6 +8671,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructureNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdBuildAccelerationStructureNV( static_cast( m_commandBuffer ), reinterpret_cast( &info ), @@ -8350,6 +8692,10 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & indirectStrides, ArrayProxy const & pMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR && + "Function needs extension enabled!" ); + # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() ); VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() ); @@ -8389,6 +8735,10 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & pBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdBuildAccelerationStructuresKHR && + "Function needs extension enabled!" ); + # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); # else @@ -8449,6 +8799,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdCopyAccelerationStructureKHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdCopyAccelerationStructureKHR( static_cast( m_commandBuffer ), reinterpret_cast( &info ) ); @@ -8459,6 +8813,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdCopyAccelerationStructureNV( static_cast( m_commandBuffer ), static_cast( dst ), static_cast( src ), @@ -8468,6 +8825,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR( static_cast( m_commandBuffer ), reinterpret_cast( &info ) ); @@ -8488,6 +8849,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBuffer2KHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdCopyBuffer2KHR( static_cast( m_commandBuffer ), reinterpret_cast( ©BufferInfo ) ); } @@ -8509,6 +8873,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBufferToImage2KHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdCopyBufferToImage2KHR( static_cast( m_commandBuffer ), reinterpret_cast( ©BufferToImageInfo ) ); @@ -8533,6 +8900,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImage2KHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdCopyImage2KHR( static_cast( m_commandBuffer ), reinterpret_cast( ©ImageInfo ) ); } @@ -8554,6 +8924,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImageToBuffer2KHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdCopyImageToBuffer2KHR( static_cast( m_commandBuffer ), reinterpret_cast( ©ImageToBufferInfo ) ); @@ -8562,6 +8935,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR( static_cast( m_commandBuffer ), reinterpret_cast( &info ) ); @@ -8589,18 +8966,27 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerBeginEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdDebugMarkerBeginEXT( static_cast( m_commandBuffer ), reinterpret_cast( &markerInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT() const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerEndEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdDebugMarkerEndEXT( static_cast( m_commandBuffer ) ); } VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerInsertEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdDebugMarkerInsertEXT( static_cast( m_commandBuffer ), reinterpret_cast( &markerInfo ) ); } @@ -8709,6 +9095,10 @@ namespace VULKAN_HPP_NAMESPACE uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdDrawIndirectByteCountEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdDrawIndirectByteCountEXT( static_cast( m_commandBuffer ), instanceCount, firstInstance, @@ -8742,6 +9132,9 @@ namespace VULKAN_HPP_NAMESPACE uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV( static_cast( m_commandBuffer ), static_cast( buffer ), static_cast( offset ), @@ -8756,6 +9149,9 @@ namespace VULKAN_HPP_NAMESPACE uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdDrawMeshTasksIndirectNV( static_cast( m_commandBuffer ), static_cast( buffer ), static_cast( offset ), @@ -8766,16 +9162,26 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdDrawMeshTasksNV( static_cast( m_commandBuffer ), taskCount, firstTask ); } VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT() const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdEndConditionalRenderingEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdEndConditionalRenderingEXT( static_cast( m_commandBuffer ) ); } VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndDebugUtilsLabelEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdEndDebugUtilsLabelEXT( static_cast( m_commandBuffer ) ); } @@ -8790,6 +9196,9 @@ namespace VULKAN_HPP_NAMESPACE uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndQueryIndexedEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdEndQueryIndexedEXT( static_cast( m_commandBuffer ), static_cast( queryPool ), query, index ); } @@ -8812,6 +9221,10 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & counterBufferOffsets ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdEndTransformFeedbackEXT && + "Function needs extension enabled!" ); + # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); # else @@ -8843,6 +9256,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdExecuteGeneratedCommandsNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdExecuteGeneratedCommandsNV( static_cast( m_commandBuffer ), static_cast( isPreprocessed ), @@ -8864,6 +9281,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdInsertDebugUtilsLabelEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdInsertDebugUtilsLabelEXT( static_cast( m_commandBuffer ), reinterpret_cast( &labelInfo ) ); } @@ -8908,6 +9328,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const DependencyInfoKHR & dependencyInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPipelineBarrier2KHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdPipelineBarrier2KHR( static_cast( m_commandBuffer ), reinterpret_cast( &dependencyInfo ) ); } @@ -8915,6 +9338,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdPreprocessGeneratedCommandsNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdPreprocessGeneratedCommandsNV( static_cast( m_commandBuffer ), reinterpret_cast( &generatedCommandsInfo ) ); @@ -8940,6 +9367,9 @@ namespace VULKAN_HPP_NAMESPACE uint32_t set, ArrayProxy const & descriptorWrites ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetKHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdPushDescriptorSetKHR( static_cast( m_commandBuffer ), static_cast( pipelineBindPoint ), @@ -8955,6 +9385,10 @@ namespace VULKAN_HPP_NAMESPACE uint32_t set, const void * pData ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR && + "Function needs at least one of the following extensions enabled: , " ); + getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR( static_cast( m_commandBuffer ), static_cast( descriptorUpdateTemplate ), @@ -8976,6 +9410,9 @@ namespace VULKAN_HPP_NAMESPACE CommandBuffer::resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetEvent2KHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdResetEvent2KHR( static_cast( m_commandBuffer ), static_cast( event ), static_cast( stageMask ) ); @@ -9010,6 +9447,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResolveImage2KHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdResolveImage2KHR( static_cast( m_commandBuffer ), reinterpret_cast( &resolveImageInfo ) ); } @@ -9021,6 +9461,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetCheckpointNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetCheckpointNV( static_cast( m_commandBuffer ), pCheckpointMarker ); } @@ -9029,6 +9473,9 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & customSampleOrders ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoarseSampleOrderNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetCoarseSampleOrderNV( static_cast( m_commandBuffer ), static_cast( sampleOrderType ), @@ -9039,6 +9486,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCullModeEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetCullModeEXT( static_cast( m_commandBuffer ), static_cast( cullMode ) ); } @@ -9063,6 +9513,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT( static_cast( m_commandBuffer ), static_cast( depthBoundsTestEnable ) ); } @@ -9070,6 +9524,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetDepthCompareOpEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetDepthCompareOpEXT( static_cast( m_commandBuffer ), static_cast( depthCompareOp ) ); } @@ -9077,6 +9535,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetDepthTestEnableEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetDepthTestEnableEXT( static_cast( m_commandBuffer ), static_cast( depthTestEnable ) ); } @@ -9084,6 +9546,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetDepthWriteEnableEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetDepthWriteEnableEXT( static_cast( m_commandBuffer ), static_cast( depthWriteEnable ) ); } @@ -9097,6 +9563,10 @@ namespace VULKAN_HPP_NAMESPACE uint32_t firstDiscardRectangle, ArrayProxy const & discardRectangles ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetDiscardRectangleEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetDiscardRectangleEXT( static_cast( m_commandBuffer ), firstDiscardRectangle, discardRectangles.size(), @@ -9116,6 +9586,9 @@ namespace VULKAN_HPP_NAMESPACE CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const DependencyInfoKHR & dependencyInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetEvent2KHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetEvent2KHR( static_cast( m_commandBuffer ), static_cast( event ), reinterpret_cast( &dependencyInfo ) ); @@ -9125,6 +9598,9 @@ namespace VULKAN_HPP_NAMESPACE uint32_t firstExclusiveScissor, ArrayProxy const & exclusiveScissors ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetExclusiveScissorNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetExclusiveScissorNV( static_cast( m_commandBuffer ), firstExclusiveScissor, exclusiveScissors.size(), @@ -9135,6 +9611,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetFragmentShadingRateEnumNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetFragmentShadingRateEnumNV( static_cast( m_commandBuffer ), static_cast( shadingRate ), @@ -9145,6 +9625,10 @@ namespace VULKAN_HPP_NAMESPACE const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetFragmentShadingRateKHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetFragmentShadingRateKHR( static_cast( m_commandBuffer ), reinterpret_cast( &fragmentSize ), @@ -9154,6 +9638,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFrontFaceEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetFrontFaceEXT( static_cast( m_commandBuffer ), static_cast( frontFace ) ); } @@ -9161,6 +9648,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineStippleEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetLineStippleEXT( static_cast( m_commandBuffer ), lineStippleFactor, lineStipplePattern ); } @@ -9173,6 +9663,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetPerformanceMarkerINTEL && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCmdSetPerformanceMarkerINTEL( static_cast( m_commandBuffer ), @@ -9186,6 +9680,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetPerformanceOverrideINTEL && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCmdSetPerformanceOverrideINTEL( static_cast( m_commandBuffer ), @@ -9199,6 +9697,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL( static_cast( m_commandBuffer ), @@ -9212,6 +9714,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetPrimitiveTopologyEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetPrimitiveTopologyEXT( static_cast( m_commandBuffer ), static_cast( primitiveTopology ) ); } @@ -9219,6 +9725,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR( static_cast( m_commandBuffer ), pipelineStackSize ); } @@ -9226,6 +9736,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetSampleLocationsEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetSampleLocationsEXT( static_cast( m_commandBuffer ), reinterpret_cast( &sampleLocationsInfo ) ); @@ -9243,6 +9756,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( ArrayProxy const & scissors ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetScissorWithCountEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetScissorWithCountEXT( static_cast( m_commandBuffer ), scissors.size(), reinterpret_cast( scissors.data() ) ); @@ -9262,6 +9779,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, VULKAN_HPP_NAMESPACE::CompareOp compareOp ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilOpEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetStencilOpEXT( static_cast( m_commandBuffer ), static_cast( faceMask ), static_cast( failOp ), @@ -9280,6 +9800,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetStencilTestEnableEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetStencilTestEnableEXT( static_cast( m_commandBuffer ), static_cast( stencilTestEnable ) ); } @@ -9305,6 +9829,10 @@ namespace VULKAN_HPP_NAMESPACE uint32_t firstViewport, ArrayProxy const & shadingRatePalettes ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetViewportShadingRatePaletteNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetViewportShadingRatePaletteNV( static_cast( m_commandBuffer ), firstViewport, @@ -9316,6 +9844,10 @@ namespace VULKAN_HPP_NAMESPACE uint32_t firstViewport, ArrayProxy const & viewportWScalings ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetViewportWScalingNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetViewportWScalingNV( static_cast( m_commandBuffer ), firstViewport, @@ -9326,6 +9858,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( ArrayProxy const & viewports ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdSetViewportWithCountEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdSetViewportWithCountEXT( static_cast( m_commandBuffer ), viewports.size(), reinterpret_cast( viewports.data() ) ); @@ -9338,6 +9874,10 @@ namespace VULKAN_HPP_NAMESPACE const StridedDeviceAddressRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdTraceRaysIndirectKHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdTraceRaysIndirectKHR( static_cast( m_commandBuffer ), reinterpret_cast( &raygenShaderBindingTable ), @@ -9356,6 +9896,9 @@ namespace VULKAN_HPP_NAMESPACE uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysKHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdTraceRaysKHR( static_cast( m_commandBuffer ), reinterpret_cast( &raygenShaderBindingTable ), @@ -9382,6 +9925,9 @@ namespace VULKAN_HPP_NAMESPACE uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdTraceRaysNV( static_cast( m_commandBuffer ), static_cast( raygenShaderBindingTableBuffer ), static_cast( raygenShaderBindingOffset ), @@ -9437,6 +9983,9 @@ namespace VULKAN_HPP_NAMESPACE ArrayProxy const & dependencyInfos ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWaitEvents2KHR && + "Function needs extension enabled!" ); + # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() ); # else @@ -9459,6 +10008,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR( static_cast( m_commandBuffer ), accelerationStructures.size(), @@ -9474,6 +10027,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV( static_cast( m_commandBuffer ), accelerationStructures.size(), @@ -9488,6 +10045,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarker2AMD && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdWriteBufferMarker2AMD( static_cast( m_commandBuffer ), static_cast( stage ), static_cast( dstBuffer ), @@ -9501,6 +10061,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarkerAMD && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdWriteBufferMarkerAMD( static_cast( m_commandBuffer ), static_cast( pipelineStage ), static_cast( dstBuffer ), @@ -9522,6 +10085,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteTimestamp2KHR && + "Function needs extension enabled!" ); + getDispatcher()->vkCmdWriteTimestamp2KHR( static_cast( m_commandBuffer ), static_cast( stage ), static_cast( queryPool ), @@ -9551,6 +10117,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::join() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkDeferredOperationJoinKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkDeferredOperationJoinKHR( static_cast( m_device ), static_cast( m_deferredOperationKHR ) ) ); @@ -9565,6 +10135,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t DeferredOperationKHR::getMaxConcurrency() const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR && + "Function needs extension enabled!" ); + return getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR( static_cast( m_device ), static_cast( m_deferredOperationKHR ) ); } @@ -9572,6 +10146,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::getResult() const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetDeferredOperationResultKHR && + "Function needs extension enabled!" ); + return static_cast( getDispatcher()->vkGetDeferredOperationResultKHR( static_cast( m_device ), static_cast( m_deferredOperationKHR ) ) ); } @@ -9609,6 +10187,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE DeviceMemory::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleNV && + "Function needs extension enabled!" ); + HANDLE handle; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryWin32HandleNV( static_cast( m_device ), @@ -9652,6 +10233,9 @@ namespace VULKAN_HPP_NAMESPACE # ifdef VK_USE_PLATFORM_WIN32_KHR VULKAN_HPP_INLINE void DisplayKHR::acquireWinrtNV() const { + VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireWinrtDisplayNV && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireWinrtDisplayNV( static_cast( m_physicalDevice ), static_cast( m_displayKHR ) ) ); @@ -9665,6 +10249,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector DisplayKHR::getModeProperties2() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetDisplayModeProperties2KHR && + "Function needs extension enabled!" ); + std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; @@ -9700,6 +10288,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector DisplayKHR::getModeProperties() const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModePropertiesKHR && + "Function needs extension enabled!" ); + std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; @@ -9735,6 +10326,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR DisplayModeKHR::getDisplayPlaneCapabilities( uint32_t planeIndex ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR( @@ -9810,6 +10404,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT Image::getDrmFormatModifierPropertiesEXT() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT( @@ -9864,6 +10462,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX ImageView::getAddressNVX() const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewAddressNVX && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetImageViewAddressNVX( @@ -9924,6 +10525,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Pipeline::compileDeferredNV( uint32_t shader ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkCompileDeferredNV && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCompileDeferredNV( static_cast( m_device ), static_cast( m_pipeline ), shader ) ); @@ -9937,6 +10541,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); std::vector data( dataSize / sizeof( T ) ); Result result = static_cast( @@ -9978,6 +10586,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Pipeline::getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); std::vector data( dataSize / sizeof( T ) ); Result result = static_cast( @@ -10016,6 +10628,10 @@ namespace VULKAN_HPP_NAMESPACE Pipeline::getRayTracingShaderGroupStackSizeKHR( uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR && + "Function needs extension enabled!" ); + return static_cast( getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR( static_cast( m_device ), static_cast( m_pipeline ), @@ -10027,6 +10643,9 @@ namespace VULKAN_HPP_NAMESPACE Pipeline::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderInfoAMD && + "Function needs extension enabled!" ); + std::vector info; size_t infoSize; VULKAN_HPP_NAMESPACE::Result result; @@ -10124,6 +10743,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Queue::getCheckpointData2NV() const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueueCheckpointData2NV && + "Function needs extension enabled!" ); + uint32_t checkpointDataCount; getDispatcher()->vkGetQueueCheckpointData2NV( static_cast( m_queue ), &checkpointDataCount, nullptr ); std::vector checkpointData( checkpointDataCount ); @@ -10137,6 +10759,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Queue::getCheckpointDataNV() const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetQueueCheckpointDataNV && + "Function needs extension enabled!" ); + uint32_t checkpointDataCount; getDispatcher()->vkGetQueueCheckpointDataNV( static_cast( m_queue ), &checkpointDataCount, nullptr ); std::vector checkpointData( checkpointDataCount ); @@ -10150,6 +10776,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkQueueBeginDebugUtilsLabelEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkQueueBeginDebugUtilsLabelEXT( static_cast( m_queue ), reinterpret_cast( &labelInfo ) ); } @@ -10170,12 +10799,18 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkQueueEndDebugUtilsLabelEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkQueueEndDebugUtilsLabelEXT( static_cast( m_queue ) ); } VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkQueueInsertDebugUtilsLabelEXT && + "Function needs extension enabled!" ); + getDispatcher()->vkQueueInsertDebugUtilsLabelEXT( static_cast( m_queue ), reinterpret_cast( &labelInfo ) ); } @@ -10183,6 +10818,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Queue::presentKHR( const PresentInfoKHR & presentInfo ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkQueuePresentKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkQueuePresentKHR( static_cast( m_queue ), reinterpret_cast( &presentInfo ) ) ); @@ -10197,6 +10835,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkQueueSetPerformanceConfigurationINTEL && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkQueueSetPerformanceConfigurationINTEL( static_cast( m_queue ), static_cast( configuration ) ) ); @@ -10223,6 +10865,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void Queue::submit2KHR( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit2KHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkQueueSubmit2KHR( static_cast( m_queue ), submits.size(), @@ -10270,6 +10915,10 @@ namespace VULKAN_HPP_NAMESPACE # ifdef VK_USE_PLATFORM_WIN32_KHR VULKAN_HPP_INLINE void SwapchainKHR::acquireFullScreenExclusiveModeEXT() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkAcquireFullScreenExclusiveModeEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireFullScreenExclusiveModeEXT( static_cast( m_device ), static_cast( m_swapchainKHR ) ) ); @@ -10285,6 +10934,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImageKHR && + "Function needs extension enabled!" ); + uint32_t imageIndex; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireNextImageKHR( static_cast( m_device ), @@ -10306,6 +10958,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector SwapchainKHR::getPastPresentationTimingGOOGLE() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetPastPresentationTimingGOOGLE && + "Function needs extension enabled!" ); + std::vector presentationTimings; uint32_t presentationTimingCount; VULKAN_HPP_NAMESPACE::Result result; @@ -10342,6 +10998,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE SwapchainKHR::getRefreshCycleDurationGOOGLE() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetRefreshCycleDurationGOOGLE && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetRefreshCycleDurationGOOGLE( @@ -10358,6 +11018,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t SwapchainKHR::getCounterEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainCounterEXT && + "Function needs extension enabled!" ); + uint64_t counterValue; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetSwapchainCounterEXT( static_cast( m_device ), @@ -10373,6 +11036,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector SwapchainKHR::getImages() const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainImagesKHR && + "Function needs extension enabled!" ); + std::vector swapchainImages; uint32_t swapchainImageCount; VULKAN_HPP_NAMESPACE::Result result; @@ -10407,6 +11073,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result SwapchainKHR::getStatus() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkGetSwapchainStatusKHR && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetSwapchainStatusKHR( static_cast( m_device ), static_cast( m_swapchainKHR ) ) ); @@ -10421,6 +11091,10 @@ namespace VULKAN_HPP_NAMESPACE # ifdef VK_USE_PLATFORM_WIN32_KHR VULKAN_HPP_INLINE void SwapchainKHR::releaseFullScreenExclusiveModeEXT() const { + VULKAN_HPP_ASSERT( + getDispatcher()->vkReleaseFullScreenExclusiveModeEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkReleaseFullScreenExclusiveModeEXT( static_cast( m_device ), static_cast( m_swapchainKHR ) ) ); @@ -10434,6 +11108,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void SwapchainKHR::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetLocalDimmingAMD && + "Function needs extension enabled!" ); + getDispatcher()->vkSetLocalDimmingAMD( static_cast( m_device ), static_cast( m_swapchainKHR ), static_cast( localDimmingEnable ) ); @@ -10441,6 +11118,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector ValidationCacheEXT::getData() const { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetValidationCacheDataEXT && + "Function needs extension enabled!" ); + std::vector data; size_t dataSize; VULKAN_HPP_NAMESPACE::Result result; @@ -10476,6 +11156,9 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_INLINE void ValidationCacheEXT::merge( ArrayProxy const & srcCaches ) const { + VULKAN_HPP_ASSERT( getDispatcher()->vkMergeValidationCachesEXT && + "Function needs extension enabled!" ); + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkMergeValidationCachesEXT( static_cast( m_device ),