76 fDrawIndirectFirstInstance,
86 fTextureCompressionETC2,
87 fTextureCompressionASTC_LDR,
88 fTextureCompressionBC,
89 fOcclusionQueryPrecise,
90 fPipelineStatisticsQuery,
91 fVertexPipelineStoresAndAtomics,
92 fFragmentStoresAndAtomics,
93 fShaderTessellationAndGeometryPointSize,
94 fShaderImageGatherExtended,
95 fShaderStorageImageExtendedFormats,
96 fShaderStorageImageMultisample,
97 fShaderStorageImageReadWithoutFormat,
98 fShaderStorageImageWriteWithoutFormat,
99 fShaderUniformBufferArrayDynamicIndexing,
100 fShaderSampledImageArrayDynamicIndexing,
101 fShaderStorageBufferArrayDynamicIndexing,
102 fShaderStorageImageArrayDynamicIndexing,
108 fShaderResourceResidency,
109 fShaderResourceMinLod,
111 fSparseResidencyBuffer,
112 fSparseResidencyImage2D,
113 fSparseResidencyImage3D,
114 fSparseResidency2Samples,
115 fSparseResidency4Samples,
116 fSparseResidency8Samples,
117 fSparseResidency16Samples,
118 fSparseResidencyAliased,
119 fVariableMultisampleRate,
122 fMultiviewGeometryShader,
123 fMultiviewTessellationShader,
124 fVariablePointersStorageBuffer,
126 fStorageBuffer8BitAccess,
127 fUniformAndStorageBuffer8BitAccess,
128 fStoragePushConstant8,
129 fShaderBufferInt64Atomics,
130 fShaderSharedInt64Atomics,
131 fStorageBuffer16BitAccess,
132 fUniformAndStorageBuffer16BitAccess,
133 fStoragePushConstant16,
134 fStorageInputOutput16,
137 fSamplerYcbcrConversion,
139 fAdvancedBlendCoherentOperations,
140 fConditionalRendering,
141 fInheritedConditionalRendering,
142 fShaderDrawParameters,
143 fShaderInputAttachmentArrayDynamicIndexing,
144 fShaderUniformTexelBufferArrayDynamicIndexing,
145 fShaderStorageTexelBufferArrayDynamicIndexing,
146 fShaderUniformBufferArrayNonUniformIndexing,
147 fShaderSampledImageArrayNonUniformIndexing,
148 fShaderStorageBufferArrayNonUniformIndexing,
149 fShaderStorageImageArrayNonUniformIndexing,
150 fShaderInputAttachmentArrayNonUniformIndexing,
151 fShaderUniformTexelBufferArrayNonUniformIndexing,
152 fShaderStorageTexelBufferArrayNonUniformIndexing,
153 fDescriptorBindingUniformBufferUpdateAfterBind,
154 fDescriptorBindingSampledImageUpdateAfterBind,
155 fDescriptorBindingStorageImageUpdateAfterBind,
156 fDescriptorBindingStorageBufferUpdateAfterBind,
157 fDescriptorBindingUniformTexelBufferUpdateAfterBind,
158 fDescriptorBindingStorageTexelBufferUpdateAfterBind,
159 fDescriptorBindingUpdateUnusedWhilePending,
160 fDescriptorBindingPartiallyBound,
161 fDescriptorBindingVariableDescriptorCount,
162 fRuntimeDescriptorArray,
163 fDecodeModeSharedExponent,
164 fVertexAttributeInstanceRateDivisor,
165 fVertexAttributeInstanceRateZeroDivisor,
169 fVulkanMemoryModelDeviceScope,
170 fVulkanMemoryModelAvailabilityVisibilityChains,
172 fDescriptorBindingInlineUniformBlockUpdateAfterBind,
174 fFragmentDensityMapDynamic,
175 fFragmentDensityMapNonSubsampledImages,
179 fBufferDeviceAddress,
180 fBufferDeviceAddressCaptureReplay,
181 fBufferDeviceAddressMultiDevice,
182 fExtBlendOperationAdvanced,
183 fExtConditionalRendering,
184 fExtConservativeRasterization,
185 fExtDepthRangeUnrestricted,
186 fExtDescriptorIndexing,
187 fExtDiscardRectangles,
188 fExtExternalMemoryHost,
190 fExtInlineUniformBlock,
191 fExtPostDepthCoverage,
193 fExtSamplerFilterMinmax,
194 fExtScalarBlockLayout,
195 fExtShaderSubgroupBallot,
196 fExtShaderSubgroupVote,
197 fExtShaderViewportIndexLayer,
198 fExtTransformFeedback,
199 fExtVertexAttributeDivisor,
203 fExtCreateRenderpass2,
204 fExtDedicatedAllocation,
205 fExtDepthStencilResolve,
206 fExtDescriptorUpdateTemplate,
208 fExtDrawIndirectCount,
209 fExtDriverProperties,
211 fExtExternalFenceWin32,
213 fExtExternalMemoryWin32,
214 fExtExternalSemaphore,
215 fExtExternalSemaphoreWin32,
216 fExtGetMemoryRequirements2,
220 fExtRelaxedBlockLayout,
221 fExtSamplerMirrorClampToEdge,
222 fExtSamplerYcbcrConversion,
223 fExtShaderAtomicInt64,
224 fExtShaderDrawParameters,
225 fExtShaderFloat16Int8,
226 fExtShaderFloatControls,
227 fExtStorageBufferStorageClass,
229 fExtSwapchainMutableFormat,
230 fExtVariablePointers,
231 fExtVulkanMemoryModel,
233 fExtFragmentDensityMap,
237 fExtBufferDeviceAddress
268 operator bool()
const;
271 VkPhysicalDevice
handle()
const;
274 const VkPhysicalDeviceProperties&
properties()
const;
bool supportsSurface(const Surface &surface, size_t iFamily) const
Checks whether a queue family of this device supports presentation to a given surface.
VkResult enumerateExtensions(ExtensionProperties *pResult)
Gets a list of available Vulkan extensions for this device.
VkPhysicalDeviceMemoryProperties getMemoryProperties() const
Retrieves memory properties for this device.
VkFormatFeatureFlags supportsFormat(VkFormat fmt, EFormatUsage u=OPTIMAL_TILING) const
Checks whether this device supports specified usage of given format.
bool operator[](EFeature feature) const
Reads the status of specified feature or known extension.
The VPP namespace.
Definition: main.hpp:1
const VkQueueFamilyProperties & getQueueFamilyProperties(size_t iFamily) const
Retrieves properties for specified queue family.
Represents a surface visible on the screen.
Definition: vppSurface.hpp:59
const DeviceFeatures & operator=(const DeviceFeatures &rhs)
Makes a copy of specified feature list.
const DeviceFeatures & features() const
Retrieves features and extensions supported by the device.
const VkPhysicalDeviceProperties & properties() const
Retrieves device properties.
DeviceFeatures()
Constructs the empty feature list.
bool supportsDepthStencilFormat(VkFormat fmt) const
Checks whether this device supports specified depth/stencil format.
void getLimitValuesAsText(std::ostream &sst) const
Gets textual representation of limits section in device properties. Useful for diagnostic logs...
Utility class for dealing with device features and known extensions.
Definition: vppPhysicalDevice.hpp:362
Represents physical rendering device.
Definition: vppPhysicalDevice.hpp:258
Use the format in texel buffers.
Definition: vppPhysicalDevice.hpp:302
size_t queueFamilyCount() const
Retrieves number of queue families supported by this device.
Use the format in optimal tiling images.
Definition: vppPhysicalDevice.hpp:300
EFormatUsage
Enumeration of possible usages for data format.
Definition: vppPhysicalDevice.hpp:298
bool enableIfSupported(EFeature feature, const PhysicalDevice &hDevice)
Enables specified feature or known extension if supported by the device.
const char * getFeatureName(EFeature feature)
Retrieves the name of specified feature or known extension.
PhysicalDevice()
Constructs null reference.
std::vector< PhysicalDevice > PhysicalDevices
Array of physical devices.
Definition: vppPhysicalDevice.hpp:343
EFeature
Optional device feature enumeration.
Definition: vppPhysicalDevice.hpp:64
void readSupported(const PhysicalDevice &hDevice)
Reads supported features and known extensions from specified device.
VkPhysicalDevice handle() const
Retrieves Vulkan handle for this device.
Use the format in linear tiling images.
Definition: vppPhysicalDevice.hpp:301