Sintaxe
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 | Descrição |
|---|---|
| D3D12_RESOURCE_STATE_COMMON | Os aplicativos devem fazer a transição para esse estado somente ao acessar um recurso entre diferentes tipos de mecanismos gráficos. Especificamente, um recurso deve estar nesse estado antes de ser usado em uma fila COPY (se foi usado anteriormente em uma fila DIRECT ou COMPUTE) ou em uma fila DIRECT ou COMPUTE (se foi usado anteriormente em uma fila COPY). Essa restrição não existe quando os dados estão sendo acessados entre filas DIRECT e COMPUTE. O estado COMMON pode ser usado em uma fila COPY sempre que as transições de estado implícitas forem usadas. Para obter mais informações, consulte a seção Multi-queue resource access em Synchronization and Multi-Engine. Além disso, para que o acesso da CPU seja válido, as texturas devem estar no estado COMMON, supondo que tenham sido criadas em um heap visível para a CPU. |
| D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER | Um sub-recurso deve estar nesse estado quando é acessado pelo pipeline 3D como um buffer de vértice ou buffer de constantes. Este é um estado somente leitura. |
| D3D12_RESOURCE_STATE_INDEX_BUFFER | Um sub-recurso deve estar nesse estado quando é acessado pelo pipeline 3D como um buffer de índice. Este é um estado somente leitura. |
| D3D12_RESOURCE_STATE_RENDER_TARGET | O recurso é usado como destino de renderização. Um sub-recurso deve estar nesse estado quando é renderizado ou quando é limpo com ClearRenderTargetView. Este é um estado somente gravação. Para ler de um destino de renderização como recurso de sombreador, o recurso deve estar em D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE ou D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. |
| D3D12_RESOURCE_STATE_UNORDERED_ACCESS | O recurso é usado para acesso não ordenado. Um sub-recurso deve estar nesse estado quando é acessado pelo pipeline 3D por meio de uma exibição de acesso não ordenado. Um sub-recurso também deve estar nesse estado quando é limpo chamando ClearUnorderedAccessViewInt ou ClearUnorderedAccessViewFloat. Este é um estado de leitura/gravação. |
| D3D12_RESOURCE_STATE_DEPTH_WRITE | O estado DEPTH_WRITE é mutuamente exclusivo com outros estados. Use-o para ClearDepthStencilView quando os sinalizadores (consulte D3D12_CLEAR_FLAGS) indicarem que um sub-recurso especificado deve ser limpo ou quando ele for usado em uma exibição de profundidade/estêncil gravável (consulte D3D12_DSV_FLAGS) quando o PSO tiver a gravação de profundidade habilitada (consulte D3D12_DEPTH_STENCIL_DESC). |
| D3D12_RESOURCE_STATE_DEPTH_READ | DEPTH_READ é um estado que pode ser combinado com outros estados. Use-o quando o sub-recurso estiver em uma exibição de profundidade/estêncil somente leitura ou quando o parâmetro DepthEnable de D3D12_DEPTH_STENCIL_DESC for false. Ele pode ser combinado com outros estados de leitura (como D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE, para permitir o uso do recurso para o teste de profundidade ou de estêncil) e acessado por um sombreador na mesma chamada de desenho. Usá-lo quando a profundidade for gravada por uma chamada de desenho ou por um comando de limpeza é inválido. |
| D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE | O recurso é usado com um sombreador diferente do sombreador de pixel. Um sub-recurso deve estar nesse estado antes de ser lido por qualquer estágio (exceto o estágio de sombreador de pixel) por meio de uma exibição de recurso de sombreador. Você ainda pode usar o recurso em um sombreador de pixel com esse sinalizador, desde que ele também tenha o sinalizador D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE definido. Este é um estado somente leitura. |
| D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE | O recurso é usado com um sombreador de pixel. Um sub-recurso deve estar nesse estado antes de ser lido pelo sombreador de pixel por meio de uma exibição de recurso de sombreador. Este é um estado somente leitura. |
| D3D12_RESOURCE_STATE_STREAM_OUT | O recurso é usado com saída de fluxo. Um sub-recurso deve estar nesse estado quando é acessado pelo pipeline 3D como destino de saída de fluxo. Este é um estado somente gravação. |
| D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT | O recurso é usado como argumento indireto. Os sub-recursos devem estar nesse estado quando são usados como o buffer de argumentos passado para o método de desenho indireto ID3D12GraphicsCommandList::ExecuteIndirect. Este é um estado somente leitura. |
| D3D12_RESOURCE_STATE_COPY_DEST | O recurso é usado como destino em uma operação de cópia. Os sub-recursos devem estar nesse estado quando são usados como destino de uma operação de cópia ou blt. Este é um estado somente gravação. |
| D3D12_RESOURCE_STATE_COPY_SOURCE | O recurso é usado como origem em uma operação de cópia. Os sub-recursos devem estar nesse estado quando são usados como origem de uma operação de cópia ou blt. Este é um estado somente leitura. |
| D3D12_RESOURCE_STATE_RESOLVE_DEST | O recurso é usado como destino em uma operação de resolução. |
| D3D12_RESOURCE_STATE_RESOLVE_SOURCE | O recurso é usado como origem em uma operação de resolução. |
| D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE | |
| D3D12_RESOURCE_STATE_GENERIC_READ | Este é o estado inicial obrigatório para heaps de upload. Os aplicativos devem evitar esse estado quando possível e, em vez disso, fazer a transição dos recursos apenas para os estados que são realmente usados. |
| D3D12_RESOURCE_STATE_PRESENT | Sinônimo de D3D12_RESOURCE_STATE_COMMON. |
| D3D12_RESOURCE_STATE_PREDICATION | Usado para predicação. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_COLOR | Preserva os dados de cor compactados. Veja alguns exemplos de como esse valor pode ser usado: {::nomarkdown}
|
| D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_DEPTH | Preserva os dados de profundidade compactados. Um exemplo de uso desse valor envolve ignorar a descompactação de profundidade quando uma textura é compactada em profundidade e também “compatível com textura”. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_STENCIL | Preserva os dados de estêncil compactados. Um exemplo de uso desse valor envolve ignorar a descompactação dos dados de estêncil quando apenas a descompactação dos dados de profundidade é necessária; em algum momento, o driver poderá fazer isso automaticamente. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_COMPRESSED_DEPTH_STENCIL | Preserva os dados de profundidade/estêncil compactados. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_INDIRECT_COLOR_CLEAR | Preserva os dados de cor de limpeza indireta. Veja um exemplo de como esse valor pode ser usado: uma textura passa por limpeza rápida de cmask e você deseja ignorar a eliminação da limpeza rápida e, em vez disso, verificar a cmask manualmente. Consulte Cmask decoding para obter mais detalhes. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_SCATTERED_COLOR_FMASK | Preserva os dados de fmask de cor dispersa. Veja um exemplo de como esse valor pode ser usado: uma textura MSAA usa uma fmask compactada, e a fmask foi criada como compatível com textura, para ignorar a descompactação da fmask. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_COLOR | Preserva os dados de cor expandidos. Ao fazer a transição para um destino de renderização, não reabilite a compactação. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_DEPTH | Preserva os dados de profundidade expandidos. Ao fazer a transição para um buffer de profundidade, não reabilite a compactação. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_STENCIL | Preserva os dados de estêncil expandidos. Ao fazer a transição para um buffer de estêncil, não reabilite a compactação. |
| D3D12XBOX_RESOURCE_STATE_PRESERVE_EXPANDED_DEPTH_STENCIL | Preserva os dados de profundidade e de estêncil expandidos. |
