diff --git a/include/vkcv/FeatureManager.hpp b/include/vkcv/FeatureManager.hpp index 9ccc9880e807529bb6eb392515973d51f3aa6e37..fa9f77befd4e36f6beef1a10cc95392463a0266e 100644 --- a/include/vkcv/FeatureManager.hpp +++ b/include/vkcv/FeatureManager.hpp @@ -354,6 +354,16 @@ namespace vkcv { */ [[nodiscard]] bool checkSupport(const vk::PhysicalDeviceIndexTypeUint8FeaturesEXT &features, bool required) const; + + /** + * @brief Checks support of the @p vk::PhysicalDeviceShaderTerminateInvocationFeatures. + * + * @param[in] features The features + * @param[in] required True, if the @p features are required, else false + * @return @p True, if the @p features are supported, else @p false + */ + [[nodiscard]] bool checkSupport(const vk::PhysicalDeviceShaderTerminateInvocationFeatures &features, + bool required) const; /** * @brief Searches for a base structure of a given structure type. diff --git a/src/vkcv/FeatureManager.cpp b/src/vkcv/FeatureManager.cpp index afb2ff8c2d91f290718fb9e53edf2c075f7ebe2b..ab8e20dd35b27d19655fb34174bc86fba6455857 100644 --- a/src/vkcv/FeatureManager.cpp +++ b/src/vkcv/FeatureManager.cpp @@ -504,6 +504,15 @@ namespace vkcv { return true; } + + bool FeatureManager::checkSupport(const vk::PhysicalDeviceShaderTerminateInvocationFeatures &features, + bool required) const { + vkcv_check_init_features2(vk::PhysicalDeviceShaderTerminateInvocationFeatures); + + vkcv_check_feature(shaderTerminateInvocation); + + return true; + } vk::BaseOutStructure* FeatureManager::findFeatureStructure(vk::StructureType type) const { for (auto &base : m_featuresExtensions) {