énumération D3D12_HEAP_TYPE (d3d12.h)
Spécifie le type de tas. Lorsque vous résidez, les segments de mémoire résident dans un pool de mémoire physique particulier avec certaines propriétés du cache du processeur.
Syntaxe
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 rencontre 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ées être situées ici et sont généralement remplies par le biais de ressources dans les tas de chargement. |
D3D12_HEAP_TYPE_UPLOAD Valeur : 2 Spécifie un tas utilisé pour le chargement. Ce type de tas dispose d’un accès processeur optimisé pour le chargement sur le GPU, mais ne connaît pas la quantité maximale de bande passante pour le GPU. Ce type de tas est idéal pour les données processeur-écriture-une seule fois, de lecture gpu ; mais la lecture par GPU est plus stricte que nécessaire. Le cache en lecture seule ou à partir du GPU est un cas d’usage acceptable pour les données ; mais ces utilisations sont difficiles à juger en raison de différentes conceptions et tailles de cache GPU. En cas de doute, tenez compte de la définition de gpu en lecture seule ou profilez la différence sur de nombreux GPU entre la copie des données dans un tas _DEFAULT et la lecture des données à partir d’un tas _UPLOAD. Les ressources de ce tas doivent être créées avec D3D12_RESOURCE_STATE_GENERIC_READ et ne peuvent pas être modifiées de cette manière. L’adresse du processeur pour ces tas n’est généralement pas efficace pour les lectures du processeur. Voici des utilisations courantes pour les tas _UPLOAD :
Les utilisations suivantes ne sont probablement pas bonnes pour _UPLOAD tas :
|
D3D12_HEAP_TYPE_READBACK Valeur : 3 Spécifie un tas utilisé pour la lecture en arrière. Ce type de tas dispose d’un accès processeur optimisé pour la lecture des données à partir du GPU, mais ne connaît pas la quantité maximale de bande passante pour le GPU. Ce type de tas est le meilleur pour les données accessibles en écriture par GPU une fois, lisibles par l’UC. Le comportement du cache du processeur est réécrit en écriture différée, ce qui est propice à plusieurs lectures du processeur de sous-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, les moteurs multiples, les multi-adaptateurs ou d’autres cas spéciaux. Pour ce faire, l’application est censée 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 sont répartis 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.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | d3d12.h |