énumération D3D12_HEAP_TYPE (d3d12.h)
Spécifie le type de tas. Lorsqu’ils sont résidents, les tas résident dans un pool de mémoire physique particulier avec certaines propriétés de cache du processeur.
Syntax
typedef enum D3D12_HEAP_TYPE {
D3D12_HEAP_TYPE_DEFAULT = 1,
D3D12_HEAP_TYPE_UPLOAD = 2,
D3D12_HEAP_TYPE_READBACK = 3,
D3D12_HEAP_TYPE_CUSTOM = 4,
D3D12_HEAP_TYPE_GPU_UPLOAD
} ;
Constantes
D3D12_HEAP_TYPE_DEFAULT Valeur : 1 Spécifie le tas par défaut. Ce type de tas présente la bande passante la plus élevée pour le GPU, mais ne peut pas fournir l’accès au processeur. Le GPU peut lire et écrire dans la mémoire à partir de ce pool, et les barrières de transition des ressources peuvent être modifiées. La majorité des tas et des ressources sont censés se trouver ici et sont généralement renseignés via des ressources dans des tas de chargement. |
D3D12_HEAP_TYPE_UPLOAD Valeur : 2 Spécifie un tas utilisé pour le chargement. Ce type de tas a un accès au processeur optimisé pour le chargement sur le GPU, mais ne bénéficie pas de la quantité maximale de bande passante pour le GPU. Ce type de tas est idéal pour les données CPU-write-once, GPU-read-once ; mais gpu-read-once est plus strict que nécessaire. Gpu-read-once-or-from-cache est un cas d’usage acceptable pour les données ; mais ces utilisations sont difficiles à juger en raison de conceptions et de tailles de cache GPU différentes. En cas de doute, respectez la définition gpu-read-once ou profilez la différence sur de nombreux GPU entre la copie des données dans un tas de _DEFAULT et la lecture des données à partir d’un tas de _UPLOAD. Les ressources de ce tas doivent être créées avec D3D12_RESOURCE_STATE_GENERIC_READ et ne peuvent pas être modifiées. L’adresse du processeur pour ces tas n’est généralement pas efficace pour les lectures du processeur. Voici les utilisations courantes pour les tas de _UPLOAD :
Les éléments suivants ne sont probablement pas bons pour les tas _UPLOAD :
|
D3D12_HEAP_TYPE_READBACK Valeur : 3 Spécifie un tas utilisé pour la lecture. Ce type de tas a un accès au processeur optimisé pour la lecture des données à partir du GPU, mais ne bénéficie pas de la quantité maximale de bande passante pour le GPU. Ce type de tas est idéal pour les données lisibles par l’UC en écriture par GPU. Le comportement du cache de l’UC est l’écriture différée, ce qui est propice à plusieurs lectures d’UC de sous-ligne de cache. Les ressources de ce tas doivent être créées avec D3D12_RESOURCE_STATE_COPY_DEST et ne peuvent pas être modifiées. |
D3D12_HEAP_TYPE_CUSTOM Valeur : 4 Spécifie un tas personnalisé. L’application peut spécifier directement les propriétés du pool de mémoire et du cache du processeur, ce qui peut être utile pour les optimisations UMA, le multi-moteur, le multi-adaptateur ou d’autres cas spéciaux. Pour ce faire, l’application doit comprendre l’architecture de l’adaptateur pour faire le bon choix. Pour plus d’informations, consultez D3D12_FEATURE_ARCHITECTURE, D3D12_FEATURE_DATA_ARCHITECTURE, et GetCustomHeapProperties. |
Remarques
Cette énumération est utilisée par les éléments d’API suivants :
Les types de tas se répartissent en deux catégories : les types de tas abstraits et les types de tas personnalisés.Voici les types de tas abstraits :
- D3D12_HEAP_TYPE_DEFAULT
- D3D12_HEAP_TYPE_UPLOAD
- D3D12_HEAP_TYPE_READBACK
- D3D12_HEAP_TYPE_CUSTOM
Notez que les textures (contrairement aux mémoires tampons) ne peuvent pas être de type TAS UPLOAD ou READBACK.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | d3d12.h |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour