Passer au contenu principal
Identifie l’utilisation prévue des ressources pendant le rendu. L’utilisation indique directement si une ressource est accessible par le processeur et/ou le GPU (processeur graphique).

Syntaxe

Constantes

Remarques

Une application indique la manière 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 XG_TEXTURE1D_DESC, XG_TEXTURE2D_DESC, XG_TEXTURE3D_DESC et XG_BUFFER_DESC. Une application ne spécifie pas le type de mémoire (le pool) dans lequel une ressource doit être créée. 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 offrira les meilleures performances.

Restrictions d’utilisation des ressources

Chaque utilisation impose un compromis entre l’accessibilité pour le processeur et/ou le GPU. En général, un accès plus performant pour l’un de ces deux processeurs implique un accès moins performant pour l’autre. Aux deux extrêmes se trouvent les utilisations XG_USAGE_DEFAULT et XG_USAGE_STAGING. XG_USAGE_DEFAULT restreint l’accès presque entièrement au GPU. XG_USAGE_STAGING restreint l’accès presque entièrement au processeur et n’autorise qu’un transfert de données (copie) d’une ressource entre le GPU et le processeur. L’utilisation XG_USAGE_DYNAMIC est un cas particulier qui optimise le flux de données du processeur vers le GPU lorsque le processeur génère ces données à la volée et les envoie à une fréquence élevée. XG_USAGE_DYNAMIC est généralement utilisée pour les ressources contenant des données de vertex et pour les mémoires tampons de constantes. L’utilisation XG_USAGE_IMMUTABLE est un autre cas particulier qui amène le GPU à générer les données une seule fois, lors de la création d’une ressource. XG_USAGE_IMMUTABLE convient bien aux données telles que les textures, car ces données sont généralement lues en mémoire à partir d’un format de fichier. Par conséquent, lorsque vous créez une texture avec XG_USAGE_IMMUTABLE, le GPU lit cette texture directement en mémoire. Utilisez le tableau suivant pour choisir l’utilisation qui décrit le mieux la manière dont le processeur et le GPU doivent accéder à la ressource. Des compromis de performances sont à prendre en compte. 1 : Les lectures et écritures GPU d’une ressource avec l’utilisation XG_USAGE_STAGING sont limitées aux opérations de copie. De plus, comme les formats de profondeur-stencil et les dispositions multi-échantillons sont des détails d’implémentation propres à la conception d’un GPU donné, le système d’exploitation ne peut en général pas exposer ces formats et dispositions au processeur. Par conséquent, les ressources intermédiaires ne peuvent pas être des mémoires tampons de profondeur-stencil ni des cibles de rendu multi-échantillonnées. Comme les ressources XG_USAGE_DYNAMIC consomment des capacités matérielles spécifiques, utilisez-les avec parcimonie. Le pilote d’affichage alloue généralement la mémoire des ressources XG_USAGE_DYNAMIC avec un algorithme de mise en cache qui favorise les écritures du processeur et pénalise ses lectures. Par conséquent, ne vous attendez pas à des lectures processeur performantes, ni même cohérentes, à partir des ressources XG_USAGE_DYNAMIC.

Options de liaison des ressources

Pour optimiser les performances, toutes les options d’utilisation des ressources ne peuvent pas servir de ressources d’entrée ou de sortie pour le pipeline. Ce tableau identifie ces limitations.
  • 2 : Si la ressource est liée en tant qu’entrée et sortie à l’aide de vues différentes, chaque vue doit utiliser des sous-ressources différentes.
  • 3 : La ressource ne peut être créée qu’avec une seule sous-ressource, ne peut pas être un tableau de textures et ne peut pas être une chaîne de mipmaps.

Configuration requise

En-tête : xg.h Bibliothèque : xg_x.lib Plateformes prises en charge : famille XBOX One

Voir aussi

Référence XG
Dernière modification le 6 octobre 2026