Améliorations des performances de rendu Direct3D
Les pilotes Windows Display Driver Model (WDDM) 1.3 et versions ultérieures peuvent prendre en charge les améliorations des performances de rendu Microsoft Direct3D qui permettent au matériel Direct3D 9 de mieux utiliser les mémoires tampons et compteurs de commandes matérielles et d’effectuer des copies efficaces de la mémoire système vers les sous-ressources. Ces fonctionnalités, qui miroir certaines des fonctionnalités disponibles pour le matériel Direct3D version 10, sont nouvelles à partir de Windows 8.1.
De nouvelles améliorations des performances par défaut des ressources Direct3D 11.1 sont également disponibles. Le scénario de carte par défaut est décrit dans la section Modifications de comportement ci-dessous.
Référence sur les performances de rendu
Cette section de référence décrit les interfaces de pilote de périphérique (DDIs) en mode utilisateur.
Fonctions de performances de rendu Direct3D implémentées par le pilote en mode utilisateur
Cette section contient les fonctions qu’un pilote d’affichage en mode utilisateur Windows (WDDM) 1.3 et versions ultérieures implémente afin de prendre en charge les améliorations des performances de rendu Microsoft Direct3D.
PFND3DDDI_FLUSH1 : PFND3DDDI_CHECKCOUNTERINFO
PFND3DDDI_CHECKCOUNTER : PFND3DDDI_UPDATESUBRESOURCEUP
Structures et énumérations de performances de rendu Direct3D
Ces structures et énumérations en mode utilisateur prennent en charge l’amélioration des performances de rendu et sont nouvelles ou mises à jour pour Windows 8.1. Tous s’appliquent aux pilotes Direct3D Level 9, à l’exception des D3D11_1_DDI_FLUSH_FLAGS.
- D3DDDI_FLUSH_FLAGS (nouveau)
- D3DDDIARG_COPYFLAGS (nouveau)
- D3DDDIARG_COUNTER_INFO (nouveau)
- D3DDDIARG_UPDATESUBRESOURCEUP (nouveau)
- D3DDDICAPS_SIMPLE_INSTANCING_SUPPORT (nouveau)
- CreateResource2 (les pilotes WDDM 1.3 et versions ultérieures Direct3D Level 9 doivent retourner le code d’erreur E_INVALIDARG si la valeur de l’indicateur CaptureBuffer est définie)
- D3D11_1_DDI_FLUSH_FLAGS (constante D3DWDDM1_3DDI_TRIM_MEMORY ajoutée)
- D3DDDI_DEVICEFUNCS (pfnFlush1, pfnCheckCounterInfo, pfnCheckCounter, pfnUpdateSubresourceUP membres ajoutés)
- D3DDDI_POOL (constante D3DDDIPOOL_STAGINGMEM ajoutée)
- D3DDDICAPS_TYPE (constante D3DDDICAPS_GET_SIMPLE_INSTANCING_SUPPORT ajoutée)
- GetCaps (nouvelles informations dans Remarques)
Exigences d’implémentation de DDI à partir de WDDM 1.3
À compter de WDDM 1.3, les fonctions suivantes sont requises ou facultatives pour les pilotes en mode utilisateur à implémenter.
Groupe de fonctions | Description |
---|---|
Fonctions Direct3D 9 facultatives antérieures à WDDM 1.3. Maintenant obligatoire : |
|
Fonctions Direct3D 9 disponibles à partir de WDDM 1.3. Un pilote doit implémenter toutes ces fonctions ou aucune d’entre elles : |
|
Lorsque les fonctions facultatives WDDM 1.3 et ultérieures immédiatement ci-dessus sont implémentées, ces fonctions ont des changements de comportement associés : |
Ces scénarios s’appliquent lorsque GetCaps est appelé :
|
Ces fonctions Direct3D 11 ont des changements de comportement associés : |
|
Changements de comportement pour les appels aux fonctions de création de ressources, de mappage et d’annulation de carte
Pour ces fonctions implémentées par les pilotes WDDM 1.3 et versions ultérieures, le runtime Direct3D fournit un ensemble restreint de valeurs d’entrée pour le scénario de carte par défaut. Ces valeurs restreintes s’appliquent uniquement aux pilotes qui prennent en charge le niveau de fonctionnalité 11.1 et versions ultérieures.
CreateResource(D3D11)function—
Ces entrées D3D11DDIARG_CREATERESOURCE membres de structure sont restreints :
Membre | Description |
---|---|
ResourceDimension et utilisation |
Ces modifications de comportement s’appliquent uniquement lorsque le runtime Direct3D fournit le type D3D10DDIRESOURCE_BUFFER pour ResourceDimension et le type D3D10_DDI_USAGE_DEFAULT pour l’utilisation. |
BindFlags |
Le runtime Direct3D définit uniquement les valeurs D3D10_DDI_BIND_SHADER_RESOURCE et D3D11_DDI_BIND_UNORDERED_ACCESS . |
MapFlags |
Si toutes les autres exigences de membre répertoriées ici sont remplies, le runtime peut définir D3D10_DDI_MAP_READ, D3D10_DDI_MAP_WRITE et D3D10_DDI_MAP_READWRITE valeurs. Le pilote doit prendre en charge ces valeurs. Les valeurs de D3D10_DDI_MAP_WRITE_DISCARD et D3D10_DDI_MAP_WRITE_NOOVERWRITE ne sont pas valides. |
MiscFlags |
Le runtime définit uniquement les valeurs D3D11_DDI_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS et D3D11_DDI_RESOURCE_MISC_BUFFER_STRUCTURED . |
Format |
Le runtime définit uniquement la valeur DXGI_FORMAT_UNKNOWN . |
SampleDesc |
Le runtime définit le DXGI_SAMPLE_DESC. Comptez le membre sur 1 et le membre Qualité sur zéro. |
MipLevels |
Le runtime définit la valeur 1. |
ArraySize |
Le runtime définit la valeur 1. |
pPrimaryDesc |
Le runtime définit la valeur NULL. |
Ces paramètres d’entrée dans ResourceMap sont restreints :
Paramètre | Description |
---|---|
hResource |
Le runtime Direct3D définit uniquement une ressource D3D10DDIRESOURCE_BUFFER lorsqu’une valeur différente de zéro pour MapFlags est définie dans l’appel de création à CreateResource(D3D11). |
Le runtime définit uniquement la valeur DXGI_FORMAT_UNKNOWN . |
|
Sous-ressource |
Le runtime définit uniquement la valeur 0. |
DDIMap |
Si toutes les autres exigences de membre répertoriées ici sont remplies, le runtime peut définir des valeurs D3D10_DDI_MAP_READ, D3D10_DDI_MAP_WRITE ou D3D10_DDI_MAP_READWRITE, correspondant à la valeur MapFlags définie dans l’appel de création à CreateResource(D3D11). |
Drapeaux |
Bien que la valeur d’entrée du runtime ne soit pas restreinte, le pilote doit être en mesure de prendre en charge la valeur D3D10_DDI_MAP_FLAG_DONOTWAIT . |
pMappedSubResource |
Bien que la valeur d’entrée du runtime ne soit pas restreinte, le pilote doit affecter un pointeur valide pouvant être mis en cache par le processeur vers le D3D10DDI_MAPPED_SUBRESOURCE. pData et doivent définir rowPitch et DepthPitch pour qu’ils correspondent à la taille de la mémoire tampon et aux données fournies dans pData. |
Ces paramètres d’entrée dans ResourceUnmap sont restreints :
Paramètre | Description |
---|---|
hDevice |
Bien que la valeur d’entrée du runtime Direct3D ne soit pas restreinte, la valeur qui correspond à la valeur hDevice de l’appel ResourceMap d’origine. |
hResource |
Le runtime définit uniquement une ressource D3D10DDIRESOURCE_BUFFER lorsqu’une valeur différente de zéro pour MapFlags est définie dans l’appel de création à CreateResource(D3D11). |
Sous-ressource |
Le runtime définit uniquement la valeur 0. |