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[]