200 lines
6.5 KiB
Plaintext
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[]
|