VkCV Framework  0.0.1
CV Vulkan framework
vkcv::FeatureManager Class Reference

Public Member Functions

 FeatureManager (vk::PhysicalDevice &physicalDevice)
 
 FeatureManager (const FeatureManager &other)=delete
 
 FeatureManager (FeatureManager &&other) noexcept
 
FeatureManageroperator= (const FeatureManager &other)=delete
 
FeatureManageroperator= (FeatureManager &&other) noexcept
 
bool isExtensionSupported (const std::string &extension) const
 
bool useExtension (const std::string &extension, bool required=true)
 
bool isExtensionActive (const std::string &extension) const
 
const std::vector< const char * > & getActiveExtensions () const
 
bool useFeatures (const std::function< void(vk::PhysicalDeviceFeatures &)> &featureFunction, bool required=true)
 
template<typename T >
bool useFeatures (const std::function< void(T &)> &featureFunction, bool required=true)
 
const vk::PhysicalDeviceFeatures2 & getFeatures () const
 

Private Member Functions

bool checkSupport (const vk::PhysicalDeviceFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDevice16BitStorageFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDevice8BitStorageFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceBufferDeviceAddressFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceDescriptorIndexingFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceHostQueryResetFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceImagelessFramebufferFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceMultiviewFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceProtectedMemoryFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceSamplerYcbcrConversionFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceScalarBlockLayoutFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceSeparateDepthStencilLayoutsFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceShaderAtomicInt64Features &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceShaderFloat16Int8Features &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceShaderSubgroupExtendedTypesFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceTimelineSemaphoreFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceUniformBufferStandardLayoutFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceVariablePointersFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceVulkanMemoryModelFeatures &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceMeshShaderFeaturesNV &features, bool required) const
 
bool checkSupport (const vk::PhysicalDeviceVulkan12Features &features, bool required) const
 Currently used for RTX. Checks support of the vk::PhysicalDeviceVulkan12Features. More...
 
bool checkSupport (const vk::PhysicalDeviceVulkan11Features &features, bool required) const
 Currently used for RTX. Checks support of the vk::PhysicalDeviceVulkan11Features. More...
 
bool checkSupport (const vk::PhysicalDeviceAccelerationStructureFeaturesKHR &features, bool required) const
 Only used for RTX. Checks support of the vk::PhysicalDeviceAccelerationStructureFeaturesKHR. More...
 
bool checkSupport (const vk::PhysicalDeviceRayTracingPipelineFeaturesKHR &features, bool required) const
 Only used for RTX. Checks support of the vk::PhysicalDeviceRayTracingPipelineFeaturesKHR. More...
 
vk::BaseOutStructure * findFeatureStructure (vk::StructureType type) const
 

Private Attributes

vk::PhysicalDevice & m_physicalDevice
 
std::vector< const char * > m_supportedExtensions
 
std::vector< const char * > m_activeExtensions
 
vk::PhysicalDeviceFeatures2 m_featuresBase
 
std::vector< vk::BaseOutStructure * > m_featuresExtensions
 

Detailed Description

Member Function Documentation

◆ checkSupport() [1/4]

bool vkcv::FeatureManager::checkSupport ( const vk::PhysicalDeviceAccelerationStructureFeaturesKHR &  features,
bool  required 
) const
private

Only used for RTX. Checks support of the vk::PhysicalDeviceAccelerationStructureFeaturesKHR.

Parameters
featuresThe features.
requiredTrue, if the features are required, else false.
Returns
True, if the features are supported, else false.

◆ checkSupport() [2/4]

bool vkcv::FeatureManager::checkSupport ( const vk::PhysicalDeviceRayTracingPipelineFeaturesKHR &  features,
bool  required 
) const
private

Only used for RTX. Checks support of the vk::PhysicalDeviceRayTracingPipelineFeaturesKHR.

Parameters
featuresThe features.
requiredTrue, if the features are required, else false.
Returns
True, if the features are supported, else false.

◆ checkSupport() [3/4]

bool vkcv::FeatureManager::checkSupport ( const vk::PhysicalDeviceVulkan11Features &  features,
bool  required 
) const
private

Currently used for RTX. Checks support of the vk::PhysicalDeviceVulkan11Features.

Parameters
featuresThe features.
requiredTrue, if the features are required, else false.
Returns
True, if the features are supported, else false.

◆ checkSupport() [4/4]

bool vkcv::FeatureManager::checkSupport ( const vk::PhysicalDeviceVulkan12Features &  features,
bool  required 
) const
private

Currently used for RTX. Checks support of the vk::PhysicalDeviceVulkan12Features.

Parameters
featuresThe features.
requiredTrue, if the features are required, else false.
Returns
True, if the features are supported, else false.

The documentation for this class was generated from the following files: