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 d’effectuer une transition vers l’état D3D12_RESOURCE_STATE_RENDER_TARGET. Pour réduire la bande passante effective lors du rendu courant, certaines architectures d’adaptateurs allouent de la mémoire supplémentaire aux textures qui ont 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’aura 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 d’effectuer une transition vers l’état D3D12_RESOURCE_STATE_DEPTH_WRITE ou D3D12_RESOURCE_STATE_DEPTH_READ. La plupart des architectures d’adaptateurs allouent de la mémoire supplémentaire aux textures qui ont cet indicateur, afin de réduire la bande passante effective et de maximiser les optimisations du test de profondeur anticipé. Les applications ne doivent pas définir cet indicateur si aucune opération de profondeur n’aura 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 d’effectuer une transition vers l’état D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Pour fournir cette fonctionnalité, certaines architectures d’adaptateurs doivent recourir à des dispositions de texture moins efficaces. Si une texture est rarement utilisée pour l’accès non ordonné, envisagez d’avoir deux textures et d’effectuer des copies entre elles; une texture aurait cet indicateur, et l’autre ne l’aurait pas. Les applications ne doivent pas définir cet indicateur si aucune opération d’accès non ordonné n’aura 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’adaptateurs 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’avoir deux textures et d’effectuer des copies entre elles; une texture aurait cet indicateur défini, et l’autre ne l’aurait pas. 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 effective des textures pendant l’utilisation, et certaines architectures d’adaptateurs 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 qui s’exécutent en même temps. L’accès simultané permet 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’adaptateurs ne peuvent pas tirer parti des techniques de réduction de la bande passante effective des textures pendant l’utilisation. Cependant, 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 ressources à effectuer des attentes, et empêche toute utilisation de la compression avec une 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 | Empêche la ressource d’utiliser des métadonnées de compression de tous types. Cet indicateur empêche la création des 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 | Empêche la ressource d’utiliser des données de compression des couleurs. Cet indicateur empêche la création des surfaces de métadonnées CMask et FMask pour les ressources de cible de rendu. |
| D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_DATA | Empêche 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 | Empêche 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 des couleurs delta (DCC) sur les ressources de cible de rendu de couleur prises en charge. Sur XBOX Series X|S, cela peut également s’appliquer aux ressources d’échange. S’applique à XBOX Series X|S et XBOX One X, mais n’est pas 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, y compris les ressources de cible de rendu de couleur et les ressources de cible de profondeur prises en charge. S’applique à XBOX Series X|S et XBOX One X, mais n’est pas 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! Empêche HTile d’utiliser la valeur « développé et effacé » pour le zMask. Cet indicateur permet d’utiliser la valeur zMask « 15 plans Z » dans HTile, ce qui peut procurer une légère économie de bande passante dans certains cas, au prix de temps de décompression plus longs lorsque de nombreuses tuiles ne sont pas écrites, mais sont déjà développées. Cet indicateur peut aider dans les scénarios d’aliasing de ressources de profondeur-gabarit où le contenu antérieur de la mémoire pourrait contenir le motif binaire « développé et effacé » et où ClearDepthStencilView ignorerait l’effacement des tuiles qui ont 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 | Empêche HTile de stocker des informations de plans Z dans le zMask. Les tuiles seront développées lors des écritures DB (autres que d’effacement). La décompression doit tout de même être utilisée pour écrire les tuiles qui n’ont pas été touchées depuis l’effacement lorsqu’elles ne sont pas dans un état expclear. |
| D3D12XBOX_RESOURCE_FLAG_DENY_STENCIL_COMPRESSION_SMEM | Empêche HTile de stocker des informations de gabarit dans sMem. Les tuiles seront développées lors des écritures DB (autres que d’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 en 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, puisque 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 mappeur de tons matériel est activé simplement en ne définissant pas cet indicateur. Le HDR n’est pas pris en charge sur XBOX One; cet indicateur s’applique donc uniquement à 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 pertinentes résident dans HTile. |
| D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_EXPCLEAR | Alias de D3D12XBOX_RESOURCE_FLAG_DENY_DEPTH_COMPRESSION_EXPCLEAR. |
