D3D12_FEATURE_DATA_D3D12_OPTIONS structure (d3d12.h)
Décrit les options de fonctionnalité Direct3D 12 dans le pilote graphique actuel.
Syntaxe
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS {
BOOL DoublePrecisionFloatShaderOps;
BOOL OutputMergerLogicOp;
D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
BOOL PSSpecifiedStencilRefSupported;
BOOL TypedUAVLoadAdditionalFormats;
BOOL ROVsSupported;
D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
UINT MaxGPUVirtualAddressBitsPerResource;
BOOL StandardSwizzle64KBSupported;
D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
BOOL CrossAdapterRowMajorTextureSupported;
BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS;
Membres
DoublePrecisionFloatShaderOps
Spécifie si les types doubles sont autorisés pour les opérations de nuanceur. Si la valeur est TRUE, les types doubles sont autorisés ; sinon , FALSE. Les opérations prises en charge sont équivalentes au membre ExtendedDoublesShaderInstructions de Direct3D 11 de la structure D3D11_FEATURE_DATA_D3D11_OPTIONS .
Pour utiliser un nuanceur HLSL compilé avec un type double , le runtime doit définir DoublePrecisionFloatShaderOps sur TRUE.
OutputMergerLogicOp
Spécifie si les opérations logiques sont disponibles dans l’état de fusion. Le runtime définit ce membre sur TRUE si les opérations logiques sont disponibles dans l’état de fusion et FALSE dans le cas contraire. Ce membre a la valeur FALSE pour les niveaux de fonctionnalité 9.1, 9.2 et 9.3. Ce membre est facultatif pour les niveaux de fonctionnalité 10, 10.1 et 11. Ce membre est TRUE pour les niveaux de fonctionnalité 11.1 et 12.
MinPrecisionSupport
Combinaison de valeurs D3D12_SHADER_MIN_PRECISION_SUPPORT typées qui sont combinées à l’aide d’une opération OR au niveau du bit. La valeur résultante spécifie les niveaux de précision minimaux que le pilote prend en charge pour les étapes du nuanceur. La valeur zéro indique que le pilote ne prend en charge que la précision complète 32 bits pour toutes les étapes du nuanceur.
TiledResourcesTier
Spécifie si le matériel et le pilote prennent en charge les ressources en mosaïque. Le runtime définit ce membre sur une valeur de type D3D12_TILED_RESOURCES_TIER qui indique si le matériel et le pilote prennent en charge les ressources en mosaïques et à quel niveau.
ResourceBindingTier
Spécifie le niveau auquel le matériel et le pilote prennent en charge la liaison de ressources. Le runtime définit ce membre sur une valeur de type D3D12_RESOURCE_BINDING_TIER qui indique le niveau.
PSSpecifiedStencilRefSupported
Spécifie si la référence de gabarit de nuanceur de pixels est prise en charge. Si la valeur est TRUE, elle est prise en charge ; sinon , FALSE.
TypedUAVLoadAdditionalFormats
Spécifie si le chargement de formats supplémentaires pour les vues d’accès non ordonné (UAV) typées est pris en charge. Si la valeur est TRUE, elle est prise en charge ; sinon , FALSE.
ROVsSupported
Spécifie si les vues d’ordre de rastériseur (ROV) sont prises en charge. Si la valeur est TRUE, elles sont prises en charge ; sinon , FALSE.
ConservativeRasterizationTier
Spécifie le niveau auquel le matériel et le pilote prennent en charge la rastérisation conservatrice. Le runtime définit ce membre sur une valeur de type D3D12_CONSERVATIVE_RASTERIZATION_TIER qui indique le niveau.
MaxGPUVirtualAddressBitsPerResource
N’utilisez pas ce champ ; utilisez plutôt la requête D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT (structure avec un membre MaxGPUVirtualAddressBitsPerResource ), ce qui est plus précis.
StandardSwizzle64KBSupported
TRUE si le matériel prend en charge les textures avec le modèle swizzle standard de 64 Ko. La prise en charge de ce modèle permet d’optimiser la texture de copie zéro tout en fournissant une localité quasi équilatérale pour chaque dimension au sein de la texture. Pour connaître les options et restrictions relatives aux textures, consultez D3D12_TEXTURE_LAYOUT.
CrossNodeSharingTier
Constante d’énumération D3D12_CROSS_NODE_SHARING_TIER qui spécifie le niveau de partage entre les nœuds d’un adaptateur qui a plusieurs nœuds, comme le niveau 1 émulé, le niveau 1 ou le niveau 2.
CrossAdapterRowMajorTextureSupported
FALSE signifie que l’appareil prend uniquement en charge les opérations de copie vers et à partir de textures principales de ligne inter-adaptateurs. TRUE signifie que l’appareil prend en charge les vues de ressources du nuanceur, les vues d’accès non ordonnées et le rendu des vues cibles des textures principales de ligne inter-adaptateurs. Le terme « adaptateur croisé » signifie entre plusieurs adaptateurs (même à partir de différents IHV).
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation
Indique si l’index de tableau de la fenêtre d’affichage (VP) et de la cible de rendu (RT) de n’importe quel nuanceur alimentant le rastériseur sont pris en charge sans émulation de nuanceur géométrique. Comparez le membre VPAndRTArrayIndexFromAnyShaderFeedingRasterizer de la structure D3D11_FEATURE_DATA_D3D11_OPTIONS3 . Dans ID3D12ShaderReflection ::GetRequiresFlags, consultez la #define D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER.
ResourceHeapTier
Spécifie le niveau auquel le matériel et le pilote nécessitent une attribution de tas liée au type de ressource. Le runtime définit ce membre sur une constante d’énumération D3D12_RESOURCE_HEAP_TIER .
Remarques
Voir D3D12_FEATURE.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | d3d12.h |