Syntaxe
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 ne doivent passer à cet état que lorsqu’elles accèdent à une ressource entre 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 a été précédemment utilisée sur une file d’attente DIRECT ou COMPUTE) ou sur une file d’attente DIRECT ou COMPUTE (si elle a été précédemment utilisée sur une file d’attente COPY). Cette restriction n’existe pas lorsque l’accès aux données s’effectue entre des files d’attente DIRECT et COMPUTE. 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 dans Synchronization and Multi-Engine. En outre, 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. |
| 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’elle fait l’objet d’un rendu ou lorsqu’elle est effacée avec 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 via une vue d’accès non ordonné. Une sous-ressource doit également être dans cet état lorsqu’elle est effacée en appelant ClearUnorderedAccessViewInt ou 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 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, tels que 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 une étape quelconque (autre que l’étape du nuanceur de pixels) via 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 via 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 transmise à 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 chargement. Les applications doivent éviter cet état lorsque cela est possible et faire plutôt passer les ressources uniquement aux é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 | Préserve les données de couleur compressées. Voici quelques exemples d’utilisation de cette valeur : {::nomarkdown}
|
| D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_DEPTH | Préserve 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 texture ». |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_STENCIL | Préserve 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 ; à terme, le pilote pourrait le faire automatiquement. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_DEPTH_STENCIL | Préserve les données de profondeur-gabarit compressées. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_INDIRECT_COLOR_CLEAR | Préserve 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 pour plutôt vérifier le cmask manuellement. Pour plus d’informations, consultez Cmask decoding. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_SCATTERED_COLOR_FMASK | Préserve 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 texture, afin d’ignorer la décompression du fmask. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_COLOR | Préserve 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 | Préserve 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 | Préserve 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 | Préserve les données de profondeur et de gabarit développées. |
