énumération D3D10_USAGE (d3d10.h)

Identifie l’utilisation attendue des ressources pendant le rendu. L’utilisation indique directement si une ressource est accessible par le processeur et/ou le GPU.

Syntax

typedef enum D3D10_USAGE {
  D3D10_USAGE_DEFAULT = 0,
  D3D10_USAGE_IMMUTABLE = 1,
  D3D10_USAGE_DYNAMIC = 2,
  D3D10_USAGE_STAGING = 3
} ;

Constantes

 
D3D10_USAGE_DEFAULT
Valeur : 0
Ressource qui nécessite un accès en lecture et en écriture par le GPU. Il s’agit probablement du choix d’utilisation le plus courant.
D3D10_USAGE_IMMUTABLE
Valeur : 1
Ressource qui ne peut être lue que par le GPU. Il ne peut pas être écrit par le GPU et n’est pas du tout accessible par le processeur. Ce type de ressource doit être initialisé lors de sa création, car il ne peut pas être modifié après sa création.
D3D10_USAGE_DYNAMIC
Valeur : 2
Ressource accessible à la fois par le GPU et le processeur (écriture uniquement). Une ressource dynamique est un bon choix pour une ressource qui sera mise à jour par le processeur au moins une fois par image. Pour écrire dans une ressource dynamique sur le processeur, utilisez une méthode Map . Vous pouvez écrire dans une ressource dynamique sur le GPU à l’aide de CopyResource ou CopySubresourceRegion.
D3D10_USAGE_STAGING
Valeur : 3
Ressource qui prend en charge le transfert de données (copie) du GPU vers le processeur.

Remarques

Une application identifie la façon dont une ressource est destinée à être utilisée (son utilisation) dans une description de ressource. Il existe plusieurs structures pour créer des ressources, notamment : D3D10_TEXTURE1D_DESC, D3D10_TEXTURE2D_DESC, D3D10_TEXTURE3D_DESC, D3D10_BUFFER_DESC et D3DX10_IMAGE_LOAD_INFO.

Différences entre Direct3D 9 et Direct3D 10 :

Dans Direct3D 9, vous spécifiez le type de mémoire dans lequel une ressource doit être créée au moment de la création de la ressource (à l’aide de D3DPOOL). C’était le travail d’une application de décider quel pool de mémoire fournirait la meilleure combinaison de fonctionnalités et de performances.

Dans Direct3D 10, une application ne spécifie plus le type de mémoire (le pool) dans lequel créer une ressource. Au lieu de cela, vous spécifiez l’utilisation prévue de la ressource et laissez le runtime (de concert avec le pilote et un gestionnaire de mémoire) choisir le type de mémoire qui obtiendra les meilleures performances.

 

Restrictions d’utilisation des ressources

Chaque utilisation dicte un compromis entre les fonctionnalités et les performances. En général, l’accès aux ressources s’effectue avec les API suivantes. Utilisez le tableau suivant pour choisir l’utilisation qui décrit le mieux comment la ressource doit être accessible par le processeur et/ou le GPU. Bien sûr, il y aura des compromis en matière de performance.
Utilisation des ressources Default Dynamique Non modifiable Staging
GPU-Read Oui oui¹ Oui oui1, 2
GPU-Write oui¹ oui1, 2
CPU-Read oui1, 2
CPU-Write oui oui1, 2
 

Options de liaison de ressources

Pour optimiser les performances, toutes les options d’utilisation des ressources ne peuvent pas être utilisées comme ressources d’entrée ou de sortie dans le pipeline. Ce tableau identifie ces limitations.
La ressource peut être liée en tant que Default Dynamique Non modifiable Staging
Entrée dans une étape oui 3 oui⁴ oui
Sortie à partir d’une étape oui 3
 
  • 3 - S’il est lié en tant qu’entrée et en sortie utilisant des vues différentes, chaque vue doit utiliser des sous-ressources différentes.
  • 4 - La ressource ne peut être créée qu’avec une seule sous-ressource. La ressource ne peut pas être un tableau de textures. La ressource ne peut pas être une chaîne mipmap.

Configuration requise

Condition requise Valeur
En-tête d3d10.h

Voir aussi

Énumérations de ressources