Vulkan-Docs/doc/specs/vulkan/man/VkPhysicalDeviceFeatures.txt

200 lines
6.5 KiB
Plaintext

VkPhysicalDeviceFeatures(3)
===========================
Name
----
VkPhysicalDeviceFeatures - Structure describing the fine-grained features that can be supported by an implementation.
C Specification
---------------
include::../structs/VkPhysicalDeviceFeatures.txt[]
Fields
------
pname:robustBufferAccess::
out of bounds buffer accesses are well defined
pname:fullDrawIndexUint32::
full 32-bit range of indices are supported for indexed draw calls using VK_INDEX_TYPE_UINT32.
pname:imageCubeArray::
image views which are arrays of cube maps are supported (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY)
pname:independentBlend::
blending operations are controlled independently per-attachment
pname:geometryShader::
geometry shader stage is supported
pname:tessellationShader::
tessellation control and evaluation shader stages are supported
pname:sampleRateShading::
per-sample shading and multisample interpolation are supported
pname:dualSrcBlend::
blend operations which take two sources are supported
pname:logicOp::
logic operations are supported
pname:multiDrawIndirect::
multi draw indirect is supported
pname:depthClamp::
depth clamping is supported
pname:depthBiasClamp::
depth bias clamping is supported
pname:fillModeNonSolid::
point and wireframe fill modes are supported
pname:depthBounds::
depth bounds test is supported
pname:wideLines::
lines with width greater than 1 are supported
pname:largePoints::
points with size greater than 1 are supported
pname:alphaToOne::
the implementation can replace the alpha value of the color fragment output to the maximum
representable alpha value for fixed-point colors or 1.0 for floating-point colors.
pname:multiViewport::
mulitple viewports are supported
pname:samplerAnisotropy::
Anisotropic filtering is supported
pname:textureCompressionETC2::
ETC and EAC texture compression formats are supported
pname:textureCompressionASTC_LDR::
ASTC LDR texture compression formats are supported
pname:textureCompressionBC::
BC1-7 texture compressed formats are supported
pname:pipelineStatisticsQuery::
pipeline statistics queries are supported
pname:vertexPipelineStoresAndAtomics::
storage buffers and images support stores and atomic operationscan in
the vertex, tessellation, and geometry shader stages.
pname:fragmentStoresAndAtomics::
storage buffers and images support stores and atomic operationscan in
the fragment shader stage.
pname:shaderTessellationAndGeometryPointSize::
the _PointSize_ shader builtin is available in the tessellation control,
tessellation evaluation, and geometry shader stages.
pname:shaderImageGatherExtended::
image gather with _non-constant offset_ and image gather with _offsets_ are supported
pname:shaderStorageImageExtendedFormats::
the extended set of image formats can be used for storage images
pname:shaderStorageImageMultisample::
multisample images can be used for storage images
pname:shaderUniformBufferArrayDynamicIndexing::
arrays of uniform buffers can be accessed with dynamically uniform indices
pname:shaderSampledImageArrayDynamicIndexing::
arrays of samplers and sampled images can be accessed with dynamically uniform indices
pname:shaderStorageBufferArrayDynamicIndexing::
arrays of storage buffers can be accessed with dynamically uniform indices
pname:shaderStorageImageArrayDynamicIndexing::
arrays of storage images can be accessed with dynamically uniform indices
pname:shaderClipDistance::
clip distance is supported in shader code
pname:shaderCullDistance::
cull distance is supported in shader code
pname:shaderFloat64::
64-bit floats (doubles) are supported in shader code
pname:shaderInt64::
64-bit integers are supported in shader code
pname:shaderInt16::
16-bit integers are supported in shader code
pname:shaderResourceResidency::
image operations that return resource residency information are supported in shader code
pname:shaderResourceMinLod::
image operations that specify minimum resource Lod are supported in shader code
pname:sparseBinding::
indicates whether resource memory can be managed at opaque page level
pname:shaderResourceResidency::
Sparse resources support: Resource memory can be managed at opaque page level rather than object level
pname:sparseResidencyBuffer::
Sparse resources support: physical device can access partially resident buffers
pname:sparseResidencyImage2D::
Sparse resources support: physical device can access partially resident 2D (non-MSAA non-DepthStencil) images
pname:sparseResidencyImage3D::
Sparse resources support: physical device can access partially resident 3D images
pname:sparseResidency2Samples::
Sparse resources support: physical device can access partially resident MSAA 2D images with 2 samples
pname:sparseResidency4Samples::
Sparse resources support: physical device can access partially resident MSAA 2D images with 4 samples
pname:sparseResidency8Samples::
Sparse resources support: physical device can access partially resident MSAA 2D images with 8 samples
pname:sparseResidency16Samples::
Sparse resources support: physical device can access partially resident MSAA 2D images with 16 samples
pname:sparseResidencyAliased::
Sparse resources support: physical device can correctly access data aliased into multiple locations (opt-in)
Description
-----------
The VkPhysicalDeviceFeatures structure contains a feature flag for each of
the fine-grained features that may be supported by an implementation.
When passed to flink:vkGetPhysicalDeviceFeatures as the ptext:pFeatures
parameter, the implementation will fill in each member of the structure
with ename:VK_TRUE if the indicated ptext:physicalDevice supports the feature,
or with ename:VK_FALSE if the physical device does not support the feature.
Fine-grained features must be enabled at slink:VkDevice creation time. This
is done by passing a pointer to a slink:VkPhysicalDeviceFeatures structure
in the ptext:pEnabledFeatures member of the slink:VkDeviceCreateInfo
structure that is passed to flink:vkCreateDevice. In this case, setting a
member of the structure to ename:VK_TRUE will enable support for the
feature on the indictated physical device, and setting a member to
ename:VK_FALSE will disable support for the feature.
include::../validity/structs/VkPhysicalDeviceFeatures .txt[]
See Also
--------
flink:vkGetPhysicalDeviceFeatures, flink:vkGetPhysicalDeviceProperties, flink:vkCreateDevice
include::footer.txt[]