Syntaxe
typedef enum D3D12_RESOURCE_FLAGS
{
D3D12_RESOURCE_FLAG_NONE = 0,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
D3D12XBOX_RESOURCE_FLAG_PREFER_INDEX_BUFFER = 0x10000,
D3D12XBOX_RESOURCE_FLAG_ALLOW_INDIRECT_BUFFER = 0x20000,
D3D12XBOX_RESOURCE_FLAG_PREFER_INDIRECT_BUFFER = D3D12XBOX_RESOURCE_FLAG_ALLOW_INDIRECT_BUFFER,
D3D12XBOX_RESOURCE_FLAG_PREFER_PREDICATION_BUFFER = 0x40000,
D3D12XBOX_RESOURCE_FLAG_PREFER_STREAM_OUTPUT = 0x80000,
D3D12XBOX_RESOURCE_FLAG_DENY_COMPRESSION_DATA = 0x300000,
D3D12XBOX_RESOURCE_FLAG_DENY_COLOR_COMPRESSION_DATA = 0x100000,
D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_DATA = 0x100000,
D3D12XBOX_RESOURCE_FLAG_DENY_STENCIL_COMPRESSION_DATA = 0x200000,
D3D12XBOX_RESOURCE_FLAG_ALLOW_DCC = 0x400000,
D3D12XBOX_RESOURCE_FLAG_FORCE_TEXTURE_COMPATIBILITY = 0x00800000,
D3D12XBOX_RESOURCE_FLAG_FORCE_DCC_TEXTURE_COMPATIBILITY = 0x00000100,
D3D12XBOX_RESOURCE_FLAG_FORCE_HTILE_TEXTURE_COMPATIBILITY = 0x00000100,
D3D12XBOX_RESOURCE_FLAG_FORCE_FMASK_TEXTURE_COMPATIBILITY = 0x00000200,
D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_EXPCLEAR = 0x1000000,
D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_PLANES = 0x2000000,
D3D12XBOX_RESOURCE_FLAG_DENY_STENCIL_COMPRESSION_SMEM = 0x4000000,
D3D12XBOX_RESOURCE_FLAG_ALLOW_AUTOMATIC_GAMEDVR_TONE_MAP = 0x40000000,
D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_STENCIL_HTILE = 0x80000000,
D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_EXPCLEAR = D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_EXPCLEAR,
} D3D12_RESOURCE_FLAGS
Constantes
| Constante | Description |
|---|---|
| D3D12_RESOURCE_FLAG_NONE | Aucune option n’est spécifiée. |
| D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET | Permet de créer une vue de cible de rendu pour la ressource et permet à la ressource de passer à l’état D3D12_RESOURCE_STATE_RENDER_TARGET. Pour réduire la bande passante effective lors d’un rendu courant, certaines architectures d’adaptateur allouent de la mémoire supplémentaire pour les textures dotées de cet indicateur. Cette caractéristique peut ne pas être avantageuse pour les textures qui ne font jamais l’objet d’un rendu, et elle n’est pas disponible pour les textures compressées avec des formats BC. Les applications ne doivent pas définir cet indicateur si aucun rendu n’a jamais lieu. Les restrictions et interactions suivantes s’appliquent :
|
| D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL | Permet de créer une vue de profondeur-gabarit pour la ressource et permet à la ressource de passer à l’état D3D12_RESOURCE_STATE_DEPTH_WRITE ou D3D12_RESOURCE_STATE_DEPTH_READ. La plupart des architectures d’adaptateur allouent de la mémoire supplémentaire pour les textures dotées de cet indicateur, afin de réduire la bande passante effective et d’optimiser au maximum le test de profondeur anticipé. Les applications ne doivent pas définir cet indicateur si aucune opération de profondeur n’a jamais lieu. Les restrictions et interactions suivantes s’appliquent :
|
| D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS | Permet de créer une vue d’accès non ordonné pour la ressource et permet à la ressource de passer à l’état D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Pour fournir cette fonctionnalité, certaines architectures d’adaptateur doivent recourir à des dispositions de texture moins efficaces. Si une texture est rarement utilisée pour l’accès non ordonné, envisagez d’utiliser deux textures et d’effectuer des copies entre elles ; l’une des textures aurait cet indicateur et l’autre non. Les applications ne doivent pas définir cet indicateur si aucune opération d’accès non ordonné n’a jamais lieu. Les restrictions et interactions suivantes s’appliquent :
|
| D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE | Interdit la création d’une vue de ressource de nuanceur pour la ressource et désactive la transition de la ressource vers l’état D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE ou D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. Lorsque les vues de ressource de nuanceur sont exclues, certaines architectures d’adaptateur bénéficient d’une bande passante accrue pour les textures de profondeur-gabarit. Si une texture est rarement utilisée comme ressource de nuanceur, envisagez d’utiliser deux textures et d’effectuer des copies entre elles ; l’une des textures aurait cet indicateur défini et l’autre non. Les applications doivent définir cet indicateur lorsque les textures de profondeur-gabarit ne seront jamais utilisées à partir de vues de ressource de nuanceur. Cette constante doit être utilisée avec D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL. |
| D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER | Permet d’utiliser la ressource pour des données inter-adaptateurs et pour les fonctionnalités activées par ALLOW_SIMULTANEOUS_ACCESS. Les ressources inter-adaptateurs excluent généralement l’utilisation de techniques qui réduisent la bande passante de texture effective pendant l’utilisation, et certaines architectures d’adaptateur peuvent nécessiter un comportement de mise en cache différent. Les applications ne doivent pas définir cet indicateur si les données de la ressource ne seront jamais utilisées avec un autre adaptateur. Les restrictions et interactions suivantes s’appliquent :
|
| D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS | Permet à une ressource d’être accessible simultanément par plusieurs files d’attente, appareils ou processus différents. Par exemple, cette fonctionnalité permet d’utiliser une ressource avec des transitions ResourceBarrier effectuées dans plusieurs listes de commandes s’exécutant en même temps. L’accès simultané autorise plusieurs lecteurs et un seul rédacteur, à condition que le rédacteur ne modifie pas simultanément les texels auxquels les autres lecteurs accèdent. Certaines architectures d’adaptateur ne peuvent pas tirer parti des techniques de réduction de la bande passante de texture effective pendant l’utilisation. Toutefois, les applications ne doivent pas définir cet indicateur si plusieurs lecteurs ne sont pas nécessaires lors d’écritures fréquentes et sans chevauchement dans les textures. L’utilisation de cet indicateur peut compromettre la capacité des clôtures de ressource à effectuer des attentes, et empêche toute compression sur la ressource. Les restrictions et interactions suivantes s’appliquent :
|
| D3D12XBOX_RESOURCE_FLAG_PREFER_INDEX_BUFFER | Marque la ressource comme ayant une préférence pour être une mémoire tampon d’index. |
| D3D12XBOX_RESOURCE_FLAG_ALLOW_INDIRECT_BUFFER | Permet à la ressource d’être une mémoire tampon indirecte. Cet indicateur est requis pour créer des mémoires tampons indirectes. |
| D3D12XBOX_RESOURCE_FLAG_PREFER_INDIRECT_BUFFER | Marque la ressource comme ayant une préférence pour être une mémoire tampon indirecte. |
| D3D12XBOX_RESOURCE_FLAG_PREFER_PREDICATION_BUFFER | Marque la ressource comme ayant une préférence pour être une mémoire tampon de prédication. |
| D3D12XBOX_RESOURCE_FLAG_PREFER_STREAM_OUTPUT | Marque la ressource comme ayant une préférence pour être utilisée pour la sortie de flux (SO). |
| D3D12XBOX_RESOURCE_FLAG_DENY_COMPRESSION_DATA | Interdit à la ressource d’utiliser des métadonnées de compression de tous types. Cet indicateur empêche la création de surfaces de métadonnées CMask et FMask pour les ressources de cible de rendu. Cet indicateur n’empêche pas la création de la surface de métadonnées HTile pour les ressources de profondeur-gabarit. |
| D3D12XBOX_RESOURCE_FLAG_DENY_COLOR_COMPRESSION_DATA | Interdit à la ressource d’utiliser des données de compression des couleurs. Cet indicateur empêche la création de surfaces de métadonnées CMask et FMask pour les ressources de cible de rendu. |
| D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_DATA | Interdit à la ressource d’utiliser des métadonnées de compression de profondeur. Cet indicateur n’empêche pas la création de la surface de métadonnées HTile pour les ressources de profondeur-gabarit. Si l’un des indicateurs de création de ressource D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_DATA ou D3D12XBOX_RESOURCE_FLAG_DENY_STENCIL_COMPRESSION_DATA est spécifié, les effacements par calcul sont désactivés. Si les deux sont spécifiés, les effacements rapides sont désactivés. |
| D3D12XBOX_RESOURCE_FLAG_DENY_STENCIL_COMPRESSION_DATA | Interdit à la ressource d’utiliser des métadonnées de compression de gabarit. Cet indicateur n’empêche pas la création de la surface de métadonnées HTile pour les ressources de profondeur-gabarit. Si l’un des indicateurs de création de ressource D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_DATA ou D3D12XBOX_RESOURCE_FLAG_DENY_STENCIL_COMPRESSION_DATA est spécifié, les effacements par calcul sont désactivés. Si les deux sont spécifiés, les effacements rapides sont désactivés. |
| D3D12XBOX_RESOURCE_FLAG_ALLOW_DCC | Active la compression delta des couleurs (DCC) sur les ressources de cible de rendu couleur prises en charge. Sur XBOX Series X|S, cela peut également s’appliquer aux ressources d’échange. Applicable à XBOX Series X|S et XBOX One X, mais non pris en charge sur XBOX One ni XBOX One S. |
| D3D12XBOX_RESOURCE_FLAG_FORCE_TEXTURE_COMPATIBILITY | Active l’échantillonnage de texture des ressources compressées compatibles, notamment les ressources de cible de rendu couleur et les ressources de cible de profondeur prises en charge. Applicable à XBOX Series X|S et XBOX One X, mais non pris en charge sur XBOX One ni XBOX One S. |
| D3D12XBOX_RESOURCE_FLAG_FORCE_DCC_TEXTURE_COMPATIBILITY | À déterminer |
| D3D12XBOX_RESOURCE_FLAG_FORCE_HTILE_TEXTURE_COMPATIBILITY | À déterminer |
| D3D12XBOX_RESOURCE_FLAG_FORCE_FMASK_TEXTURE_COMPATIBILITY | À déterminer |
| D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_EXPCLEAR | Les mémoires tampons de profondeur qui seront aliasées par d’autres ressources doivent utiliser cet indicateur ! Interdit au HTile d’utiliser la valeur « développé et effacé » pour le zMask. Cet indicateur permet d’utiliser la valeur zMask « 15 plans Z » dans le HTile, ce qui peut offrir de légères économies de bande passante dans certains cas, au prix de temps de décompression plus longs lorsque de nombreuses vignettes ne sont pas écrites mais déjà développées. Cet indicateur peut être utile dans les scénarios d’aliasing de ressources de profondeur-gabarit où le contenu antérieur de la mémoire peut contenir le motif binaire « développé et effacé » et où ClearDepthStencilView ignorerait l’effacement des vignettes ayant cette valeur. Pour résoudre ce problème, appelez DiscardResource pour réinitialiser les métadonnées ou spécifiez cet indicateur. |
| D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_PLANES | Interdit au HTile de stocker les informations de plan z dans le zMask. Les vignettes seront développées lors des écritures DB (hors effacement). La décompression doit tout de même être utilisée pour écrire les vignettes non modifiées depuis l’effacement lorsqu’elles ne sont pas dans un état expclear. |
| D3D12XBOX_RESOURCE_FLAG_DENY_STENCIL_COMPRESSION_SMEM | Interdit au HTile de stocker les informations de gabarit dans sMem. Les vignettes seront développées lors des écritures DB (hors effacement). |
| D3D12XBOX_RESOURCE_FLAG_ALLOW_AUTOMATIC_GAMEDVR_TONE_MAP | Active le mappage de tons SDR automatique de la mémoire tampon d’échange HDR d’un jeu HDR. L’image SDR est utilisée pour enregistrer des clips Game DVR SDR ou pour la diffusion en continu vers des écrans SDR. Cela entraîne un coût supplémentaire en GPU et en mémoire, car le pilote graphique alloue automatiquement des mémoires tampons pour une chaîne d’échange supplémentaire et injecte un nuanceur de calcul juste avant l’appel de présentation. Cet indicateur ne s’applique pas aux consoles XBOX Series X|S. Sur XBOX Series X|S, le mappage de tons SDR automatique est effectué par le matériel d’affichage, ce qui n’entraîne aucun coût en GPU ni en mémoire. Pour XBOX Series X|S, le mappage de tons matériel est activé simplement en ne définissant pas cet indicateur. HDR n’est pas pris en charge sur XBOX One ; cet indicateur ne s’applique donc qu’à XBOX One S et XBOX One X. |
| D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_STENCIL_HTILE | Empêche la création d’une surface de métadonnées HTile avec une ressource de profondeur-gabarit. Cet indicateur implique de fait tous les indicateurs D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH et D3D12XBOX_RESOURCE_FLAG_DENY_STENCIL, puisque les données concernées résident dans le HTile. |
| D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_EXPCLEAR | Alias de D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_EXPCLEAR. |
