Home -> IGraphicsDevice -> Feature
Description
The Feature enumeration defines optional capabilities which an IGraphicsDevice object may or may not support. Applications can query individual features with IsFeatureSupported, test a complete set with AreAllFeaturesSupported, or retrieve the complete supported set with GetAllSupportedFeatures.
Support and activation are separate. A feature must be reported by the device before it can be requested, and features that affect renderer creation must be included in the enabled feature set passed to CreateRenderer.
Important
If an application cannot function without a feature, filter devices before selection using FilterDevicesWithoutFeature or FilterDevicesWithoutAllFeatures.
Warning
Requesting a renderer without enabling a supported optional feature leaves that feature inactive for the lifetime of the renderer.
Members
| Name | Description | |
|---|---|---|
| AnisotropicFiltering |
Specifies whether samplers can use anisotropic texture filtering through SetAnisotropicFilterMode.
|
|
| GeometryShaders |
Specifies whether shader programs may include a geometry shader stage. Applications must only load geometry shader code when this feature is supported and enabled.
|
|
| ComputeShaders |
Specifies whether shader programs may include a compute shader stage and whether compute tasks may be configured on IStateGroupNode objects.
|
|
| MeshShaders |
Specifies whether the underlying device reports support for mesh shader style functionality. This flag describes device capability; mesh shader stages are not represented by IShaderProgram.ShaderStage in the current renderer interface.
|
|
| DepthBiasClamp |
Specifies whether the clamp parameter of SetDepthBias can be used. If this feature is not enabled, the clamp argument must remain at its default value.
|
|
| IndirectDraw |
Specifies whether SetIndirectDraw can source draw parameters from an IDataArray.
|
|
| IndirectMultiDrawNative |
Specifies whether indirect multi-draw is supported natively by the device and renderer. Renderers may emulate multi-draw when only IndirectDraw is available, but native support avoids issuing an equivalent CPU-side draw loop.
|
|
| InstanceOffset |
Specifies whether SetInstanceMode may use a non-zero instance offset. If this feature is not enabled, the instance offset argument must remain at its default value.
|
|
| PolygonWireframeFillMode |
Specifies whether SetPolygonFillMode may select wireframe rendering for polygon primitives.
|
|
| ResourceArrays |
Specifies whether IDataArray and ITexelArray resources can be created and bound to shaders.
|
|
| ShaderArraysOfArrays |
Specifies whether shader reflection and state binding can support array-of-array constructs in shader state data.
|
|
| SeparateBlendModePerTarget |
Specifies whether SetBlendMode can configure blend state separately for individual framebuffer color attachments.
|
|
| SeparateTextureSamplers |
Specifies whether textures and samplers may be represented as separate shader resources through GetSamplerId and BindSampler.
|
|
| TextureCubeArray |
Specifies whether cube map array texture buffers and samplers can be created and sampled by shaders.
|
|
| MipmapLevelBias |
Specifies whether a non-zero mipmap level bias may be supplied to SetMipmapLevelMapping. Some renderer back ends or portability layers do not expose this capability.
|