> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_RESOURCE_STATES (famille XBOX One)

> Spécifie l'état d'une ressource en fonction de la façon dont elle est utilisée.

Spécifie l'état d'une ressource en fonction de la façon dont elle est utilisée.

## Syntaxe

```cpp theme={null}
typedef enum D3D12_RESOURCE_STATES
{  
    D3D12_RESOURCE_STATE_COMMON = 0,  
    D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x0001,  
    D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x0002,  
    D3D12_RESOURCE_STATE_RENDER_TARGET = 0x0004,  
    D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x0008,  
    D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x0010,  
    D3D12_RESOURCE_STATE_DEPTH_READ = 0x0020,  
    D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x0040,  
    D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x0080,  
    D3D12_RESOURCE_STATE_STREAM_OUT = 0x0100,  
    D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x0200,  
    D3D12_RESOURCE_STATE_COPY_DEST = 0x0400,  
    D3D12_RESOURCE_STATE_COPY_SOURCE = 0x0800,  
    D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,  
    D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,  
    D3D12_RESOURCE_STATE_GENERIC_READ = D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER | D3D12_RESOURCE_STATE_INDEX_BUFFER | D3D12_RESOURCE_STATE_COPY_SOURCE | D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE | D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE,  
    D3D12_RESOURCE_STATE_PRESENT = 0,  
    D3D12_RESOURCE_STATE_PREDICATION = D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT,  
    D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_COLOR = 0x00400000,  
    D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_DEPTH = 0x00400000,  
    D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_STENCIL = 0x00800000,  
    D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_DEPTH_STENCIL = D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_DEPTH | D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_STENCIL,  
    D3D12XBOX_RESOURCE_STATE_PRESERVE_INDIRECT_COLOR_CLEAR = 0x01000000,  
    D3D12XBOX_RESOURCE_STATE_PRESERVE_SCATTERED_COLOR_FMASK = 0x02000000,  
    D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_COLOR = 0x04000000,  
    D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_DEPTH = 0x04000000,  
    D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_STENCIL = 0x08000000,  
    D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_DEPTH_STENCIL = D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_DEPTH | D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_STENCIL,  
} D3D12_RESOURCE_STATES  
```

## Constantes

| Constante | Description |
| - | - |
| D3D12\_RESOURCE\_STATE\_COMMON | Les applications doivent effectuer une transition vers cet état uniquement lorsqu'elles accèdent à une ressource à travers différents types de moteurs graphiques. Plus précisément, une ressource doit être dans cet état avant d'être utilisée sur une file d'attente COPY (si elle était auparavant utilisée sur une file d'attente DIRECT ou COMPUTE) ou sur une file d'attente DIRECT ou COMPUTE (si elle était auparavant utilisée sur une file d'attente COPY). Cette restriction n'existe pas lorsque les données sont accédées entre des files d'attente DIRECT et COMPUTE.<br /><br />L'état COMMON peut être utilisé sur une file d'attente COPY partout où les transitions d'état implicites sont utilisées. Pour plus d'informations, consultez la section [Multi-queue resource access](https://learn.microsoft.com/en-us/windows/win32/direct3d12/user-mode-heap-synchronization#multi-queue-resource-access) de [Synchronization and Multi-Engine](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/user-mode-heap-synchronization#multi-queue-resource-access). De plus, pour que l'accès par le CPU soit valide, les textures doivent être dans l'état COMMON, à condition qu'elles aient été créées dans un tas visible par le CPU au départ. |
| D3D12\_RESOURCE\_STATE\_VERTEX\_AND\_CONSTANT\_BUFFER | Une sous-ressource doit être dans cet état lorsque le pipeline 3D y accède en tant que mémoire tampon de sommets ou mémoire tampon de constantes. Il s'agit d'un état en lecture seule. |
| D3D12\_RESOURCE\_STATE\_INDEX\_BUFFER | Une sous-ressource doit être dans cet état lorsque le pipeline 3D y accède en tant que mémoire tampon d'index. Il s'agit d'un état en lecture seule. |
| D3D12\_RESOURCE\_STATE\_RENDER\_TARGET | La ressource est utilisée comme cible de rendu. Une sous-ressource doit être dans cet état lorsqu'un rendu y est effectué ou lorsqu'elle est effacée avec [ClearRenderTargetView](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/nf-d3d12-id3d12graphicscommandlist-clearrendertargetview). Il s'agit d'un état en écriture seule. Pour lire une cible de rendu en tant que ressource de nuanceur, la ressource doit être dans l'état D3D12\_RESOURCE\_STATE\_NON\_PIXEL\_SHADER\_RESOURCE ou D3D12\_RESOURCE\_STATE\_PIXEL\_SHADER\_RESOURCE. |
| D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS | La ressource est utilisée pour l'accès non ordonné. Une sous-ressource doit être dans cet état lorsque le pipeline 3D y accède par l'intermédiaire d'une vue d'accès non ordonné. Une sous-ressource doit également être dans cet état lorsqu'elle est effacée en appelant [ClearUnorderedAccessViewInt](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/nf-d3d12-id3d12graphicscommandlist-clearunorderedaccessviewuint) ou [ClearUnorderedAccessViewFloat](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/nf-d3d12-id3d12graphicscommandlist-clearunorderedaccessviewfloat). Il s'agit d'un état en lecture/écriture. |
| D3D12\_RESOURCE\_STATE\_DEPTH\_WRITE | L'état DEPTH\_WRITE est mutuellement exclusif avec les autres états. Utilisez-le pour [ClearDepthStencilView](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/nf-d3d12-id3d12graphicscommandlist-cleardepthstencilview) lorsque les indicateurs (voir D3D12\_CLEAR\_FLAGS) indiquent qu'une sous-ressource spécifiée doit être effacée ou lorsqu'elle doit être utilisée dans une vue de profondeur-gabarit accessible en écriture (voir D3D12\_DSV\_FLAGS lorsque l'écriture de profondeur est activée dans le PSO (voir D3D12\_DEPTH\_STENCIL\_DESC). |
| D3D12\_RESOURCE\_STATE\_DEPTH\_READ | DEPTH\_READ est un état qui peut être combiné avec d'autres états. Utilisez-le lorsque la sous-ressource se trouve dans une vue de profondeur-gabarit en lecture seule ou lorsque le paramètre DepthEnable de D3D12\_DEPTH\_STENCIL\_DESC a la valeur false. Il peut être combiné avec d'autres états de lecture (comme D3D12\_RESOURCE\_STATE\_PIXEL\_SHADER\_RESOURCE, pour permettre l'utilisation de la ressource pour le test de profondeur ou de gabarit) et faire l'objet d'un accès par un nuanceur au sein du même appel de dessin. Il n'est pas valide de l'utiliser lorsque la profondeur sera écrite par un appel de dessin ou une commande d'effacement. |
| D3D12\_RESOURCE\_STATE\_NON\_PIXEL\_SHADER\_RESOURCE | La ressource est utilisée avec un nuanceur autre que le nuanceur de pixels. Une sous-ressource doit être dans cet état avant d'être lue par n'importe quelle étape (autre que l'étape du nuanceur de pixels) par l'intermédiaire d'une vue de ressource de nuanceur. Vous pouvez tout de même utiliser la ressource dans un nuanceur de pixels avec cet indicateur, à condition que l'indicateur D3D12\_RESOURCE\_STATE\_PIXEL\_SHADER\_RESOURCE soit également défini. Il s'agit d'un état en lecture seule. |
| D3D12\_RESOURCE\_STATE\_PIXEL\_SHADER\_RESOURCE | La ressource est utilisée avec un nuanceur de pixels. Une sous-ressource doit être dans cet état avant d'être lue par le nuanceur de pixels par l'intermédiaire d'une vue de ressource de nuanceur. Il s'agit d'un état en lecture seule. |
| D3D12\_RESOURCE\_STATE\_STREAM\_OUT | La ressource est utilisée avec la sortie de flux. Une sous-ressource doit être dans cet état lorsque le pipeline 3D y accède en tant que cible de sortie de flux. Il s'agit d'un état en écriture seule. |
| D3D12\_RESOURCE\_STATE\_INDIRECT\_ARGUMENT | La ressource est utilisée comme argument indirect. Les sous-ressources doivent être dans cet état lorsqu'elles sont utilisées comme mémoire tampon d'arguments passée à la méthode de dessin indirect ID3D12GraphicsCommandList::ExecuteIndirect. Il s'agit d'un état en lecture seule. |
| D3D12\_RESOURCE\_STATE\_COPY\_DEST | La ressource est utilisée comme destination d'une opération de copie. Les sous-ressources doivent être dans cet état lorsqu'elles sont utilisées comme destination d'une opération de copie ou de blt. Il s'agit d'un état en écriture seule. |
| D3D12\_RESOURCE\_STATE\_COPY\_SOURCE | La ressource est utilisée comme source d'une opération de copie. Les sous-ressources doivent être dans cet état lorsqu'elles sont utilisées comme source d'une opération de copie ou de blt. Il s'agit d'un état en lecture seule. |
| D3D12\_RESOURCE\_STATE\_RESOLVE\_DEST | La ressource est utilisée comme destination d'une opération de résolution. |
| D3D12\_RESOURCE\_STATE\_RESOLVE\_SOURCE | La ressource est utilisée comme source d'une opération de résolution. |
| D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE | |
| D3D12\_RESOURCE\_STATE\_GENERIC\_READ | Il s'agit de l'état de départ requis pour les tas de téléversement. Les applications doivent éviter cet état lorsque c'est possible et effectuer plutôt la transition des ressources uniquement vers les états réellement utilisés. |
| D3D12\_RESOURCE\_STATE\_PRESENT | Synonyme de D3D12\_RESOURCE\_STATE\_COMMON. |
| D3D12\_RESOURCE\_STATE\_PREDICATION | Utilisé pour la prédication. |
| D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_COMPRESSED\_COLOR | Conserve les données de couleur compressées. Voici quelques exemples d'utilisation de cette valeur : \{::nomarkdown}<ul><li>Vous souhaitez ignorer la DCC lorsqu'une texture est non seulement compressée en DCC, mais aussi « compatible avec les textures ».</li><li>Une texture MSAA est compressée en fmask, et vous souhaitez la résoudre manuellement.</li></ul> |
| D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_COMPRESSED\_DEPTH | Conserve les données de profondeur compressées. Un exemple d'utilisation de cette valeur consiste à ignorer la décompression de la profondeur lorsqu'une texture est compressée en profondeur et également « compatible avec les textures ». |
| D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_COMPRESSED\_STENCIL | Conserve les données de gabarit compressées. Un exemple d'utilisation de cette valeur consiste à ignorer la décompression des données de gabarit lorsque seule la décompression des données de profondeur est requise; à un moment donné, le pilote pourrait le faire automatiquement. |
| D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_COMPRESSED\_DEPTH\_STENCIL | Conserve les données de profondeur-gabarit compressées. |
| D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_INDIRECT\_COLOR\_CLEAR | Conserve les données de couleur d'effacement indirect. Voici un exemple d'utilisation possible de cette valeur : une texture fait l'objet d'un **effacement rapide** cmask, et vous souhaitez ignorer l'**élimination de l'effacement rapide** et plutôt vérifier le cmask manuellement. Consultez [Décodage Cmask](https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/graphics/overviews/cmask-decoding) pour plus de détails. |
| D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_SCATTERED\_COLOR\_FMASK | Conserve les données fmask de couleur dispersée. Voici un exemple d'utilisation possible de cette valeur : une texture MSAA utilise un fmask compressé, et le fmask a été créé comme **compatible avec les textures**, afin d'ignorer la décompression du fmask. |
| D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_EXPANDED\_COLOR | Conserve les données de couleur développées. Lors de la transition vers une cible de rendu, ne réactivez pas la compression. |
| D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_EXPANDED\_DEPTH | Conserve les données de profondeur développées. Lors de la transition vers une mémoire tampon de profondeur, ne réactivez pas la compression. |
| D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_EXPANDED\_STENCIL | Conserve les données de gabarit développées. Lors de la transition vers une mémoire tampon de gabarit, ne réactivez pas la compression. |
| D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_EXPANDED\_DEPTH\_STENCIL | Conserve les données de profondeur et de gabarit développées. |

## Remarques

Les fonctions suivantes utilisent cette énumération :

* [CreateCommittedResource](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/nf-d3d12-id3d12device-createcommittedresource)
* [CreatePlacedResource](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/nf-d3d12-id3d12device-createplacedresource)
* [CreateReservedResource](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/nf-d3d12-id3d12device-createreservedresource)

Le Microsoft Game Development Kit (GDK) pour XBOX One définit les membres d'extension de cette énumération, à commencer par D3D12XBOX\_RESOURCE\_STATE\_PRESERVE\_COMPRESSED\_COLOR. Pour la version de cette énumération qui n'est pas propre à XBOX, consultez [D3D12\_RESOURCE\_STATES](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/ne-d3d12-d3d12_resource_states).

## Configuration requise

**En-tête :** d3d12\_x.h

**Plateformes prises en charge :** famille XBOX One

## Voir aussi

[d3d12\_x](/fr-CA/reference/graphics/d3d12_x/d3d12_x_members)
[Décodage Cmask](https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/graphics/overviews/cmask-decoding)


## Related topics

- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr-CA/nda/nda-topic-directory.md)
- [D3D12_RESOURCE_TRANSITION_BARRIER](/reference/graphics/d3d12/structs/d3d12_resource_transition_barrier_public.md)
- [D3D12_META_COMMAND_PARAMETER_DESC](/reference/graphics/d3d12/structs/d3d12_meta_command_parameter_desc_public.md)
- [CreateReservedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public.md)
- [CreateReservedResource1 (XBOX Series consoles)](/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createreservedresource1_public.md)
