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 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. 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 de Synchronization and Multi-Engine. 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. 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 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 (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}
|
| 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 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. |
