Copie de descripteurs
Les méthodes ID3D12Device :: CopyDescriptors et ID3D12Device :: CopyDescriptorsSimple sur l’interface de l’appareil utilisent le processeur pour copier immédiatement les descripteurs. Ils peuvent être appelés thread libre, à condition que plusieurs threads sur le processeur ou le GPU n’effectuent pas d’écriture potentiellement conflictuelle.
Copie immédiate des descripteurs (chronologie de l’UC)
Le nombre de descripteurs de code source (à copier à partir de), spécifié sous la forme d’un ensemble de plages de descripteur, doit être égal au nombre de descripteurs de destination (à copier), spécifié sous la forme d’un ensemble distinct de plages de descripteurs. Dans le cas contraire, les plages source et de destination ne doivent pas être alignées. Par exemple, un ensemble de descripteurs éparpillés peut être copié vers une destination contiguë, vice versa, ou dans une combinaison.
Plusieurs tas de descripteurs peuvent être impliqués dans l’opération de copie, à la fois en tant que source et destination. L’utilisation de handles de descripteur en tant que paramètres signifie que les méthodes de copie ne s’intéressent pas aux tas figurant dans un descripteur donné. il s’agit uniquement de la mémoire.
Les types de tas de descripteur copiés à partir de et à doivent correspondre, donc les méthodes prennent un type de tas de descripteur unique comme entrée. Le pilote doit connaître le type de segment de mémoire de tous les descripteurs dans l’opération de copie donnée. il sait donc quelle taille de données est impliquée dans l’opération de copie. Le pilote peut également avoir besoin d’effectuer une copie personnalisée si un type de tas de descripteur donné le justifie, un détail d’implémentation. Notez que les handles de descripteur eux-mêmes n’identifient pas le type auquel ils pointent. par conséquent, un paramètre supplémentaire est requis pour l’opération de copie.
Une autre API pour CopyDescriptors est fournie dans le cas simple de la copie d’une plage unique de descripteurs d’un emplacement à un autre – CopyDescriptorsSimple.
Pour ces méthodes de copie du descripteur basé sur un appareil (chronologie), les descripteurs de source doivent provenir d’un tas de descripteur visible sans nuanceur. Les descripteurs de destination peuvent se trouver dans n’importe quel tas de descripteur visible par l’UC (nuanceur visible ou non).