D3D12_RESOURCE_STATES enumeração (d3d12.h)
Define constantes que especificam o estado de um recurso sobre como o recurso está sendo usado.
Sintaxe
typedef enum D3D12_RESOURCE_STATES {
D3D12_RESOURCE_STATE_COMMON = 0,
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000,
D3D12_RESOURCE_STATE_GENERIC_READ,
D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE,
D3D12_RESOURCE_STATE_PRESENT = 0,
D3D12_RESOURCE_STATE_PREDICATION = 0x200,
D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
} ;
Constantes
D3D12_RESOURCE_STATE_COMMON Valor: 0 Seu aplicativo deve fazer a transição para esse estado apenas para acessar um recurso em diferentes tipos de mecanismo gráfico. Especificamente, um recurso deve estar no estado COMMON antes de ser usado em uma fila COPY (quando usado anteriormente em DIRECT/COMPUTE) e antes de ser usado em DIRECT/COMPUTE (quando usado anteriormente em COPY). Essa restrição não existe ao acessar dados entre filas DIRECT e COMPUTE. O estado COMMON pode ser usado para todos os usos em uma fila de Cópia usando as transições de estado implícitas. Para obter mais informações, em Sincronização de vários mecanismos, localize "comum". Além disso, as texturas devem estar no estado COMMON para que o acesso à CPU seja legal, supondo que a textura tenha sido criada em um heap visível para CPU em primeiro lugar. |
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER Valor: 0x1 Um sub-recurso deve estar nesse estado quando ele é acessado pela GPU como um buffer de vértice ou buffer constante. Esse é um estado somente leitura. |
D3D12_RESOURCE_STATE_INDEX_BUFFER Valor: 0x2 Um sub-recurso deve estar nesse estado quando ele é acessado pelo pipeline 3D como um buffer de índice. Esse é um estado somente leitura. |
D3D12_RESOURCE_STATE_RENDER_TARGET Valor: 0x4 O recurso é usado como um destino de renderização. Um sub-recurso deve estar nesse estado quando ele é renderizado ou quando é limpo com ID3D12GraphicsCommandList::ClearRenderTargetView. Esse é um estado somente gravação. Para ler de um destino de renderização como um 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 Valor: 0x8 O recurso é usado para acesso não ordenado. Um sub-recurso deve estar nesse estado quando ele é acessado pela GPU por meio de uma exibição de acesso não ordenada. Um sub-recurso também deve estar nesse estado quando for limpo com ID3D12GraphicsCommandList::ClearUnorderedAccessViewInt ou ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat. Esse é um estado de leitura/gravação. |
D3D12_RESOURCE_STATE_DEPTH_WRITE Valor: 0x10 D3D12_RESOURCE_STATE_DEPTH_WRITE é um estado mutuamente exclusivo com outros estados. Você deve usá-lo para ID3D12GraphicsCommandList::ClearDepthStencilView quando os sinalizadores (consulte D3D12_CLEAR_FLAGS) indicarem que um determinado sub-recurso deve ser limpo (caso contrário, o estado de sub-recurso não importa) ou ao usá-lo em uma exibição de estêncil de profundidade 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 Valor: 0x20 DEPTH_READ é um estado que pode ser combinado com outros estados. Ele deve ser usado quando o sub-recurso estiver em uma exibição de estêncil de profundidade somente leitura ou quando a gravação detalhada de D3D12_DEPTH_STENCIL_DESC estiver desabilitada. Ele pode ser combinado com outros estados de leitura (por exemplo, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE), de modo que o recurso possa ser usado para o teste de profundidade ou estêncil e acessado por um sombreador na mesma chamada de desenho. Usá-lo quando a profundidade será gravada por uma chamada de desenho ou um comando clear é inválido. |
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE Valor: 0x40 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 para o estágio do 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. Esse é um estado somente leitura. |
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE Valor: 0x80 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. Esse é um estado somente leitura. |
D3D12_RESOURCE_STATE_STREAM_OUT Valor: 0x100 O recurso é usado com saída de fluxo. Um sub-recurso deve estar nesse estado quando ele é acessado pelo pipeline 3D como um destino de stream-out. Esse é um estado somente gravação. |
D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT Valor: 0x200 O recurso é usado como um argumento indireto. Os sub-recursos devem estar nesse estado quando forem usados como o buffer de argumento passado para o método de desenho indireto ID3D12GraphicsCommandList::ExecuteIndirect. Esse é um estado somente leitura. |
D3D12_RESOURCE_STATE_COPY_DEST Valor: 0x400 O recurso é usado como o destino em uma operação de cópia. Os sub-recursos devem estar nesse estado quando forem usados como o destino da operação de cópia ou uma operação blt. Esse é um estado somente gravação. |
D3D12_RESOURCE_STATE_COPY_SOURCE Valor: 0x800 O recurso é usado como a origem em uma operação de cópia. Os sub-recursos devem estar nesse estado quando forem usados como a origem da operação de cópia ou uma operação blt. Esse é um estado somente leitura. |
D3D12_RESOURCE_STATE_RESOLVE_DEST Valor: 0x1000 O recurso é usado como o destino em uma operação de resolução. |
D3D12_RESOURCE_STATE_RESOLVE_SOURCE Valor: 0x2000 O recurso é usado como a origem em uma operação de resolução. |
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE Valor: 0x400000 Quando um buffer é criado com isso como seu estado inicial, indica que o recurso é uma estrutura de aceleração de raytracing, para uso em ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure, ID3D12GraphicsCommandList4::CopyRaytracingAccelerationStructure ou ID3D12Device::CreateShaderResourceView para a dimensão D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE . OBSERVAÇÃO Um recurso a ser usado para o estado D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE deve ser criado nesse estado e, em seguida, nunca fez a transição para fora dele. Nem um recurso que foi criado não nesse estado pode ser transferido para ele. Para obter mais informações, confira Restrições de memória da estrutura de aceleração na especificação funcional DXR (raytracing) do DirectX no GitHub. |
D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE Valor: 0x1000000 Começando com Windows 10, versão 1903 (10.0; Build 18362), indica que o recurso é uma imagem de taxa de sombreamento de espaço de tela para VRS (sombreamento de taxa variável). Para obter mais informações, consulte VRS (sombreamento de taxa variável). |
D3D12_RESOURCE_STATE_GENERIC_READ D3D12_RESOURCE_STATE_GENERIC_READ é uma combinação logicamente OR'd de outros bits de estado de leitura. Esse é o estado inicial necessário para um heap de upload. Seu aplicativo geralmente deve evitar a transição para D3D12_RESOURCE_STATE_GENERIC_READ quando possível, pois isso pode resultar em liberações prematuras de cache ou alterações de layout de recurso (por exemplo, compactar/descompactar), causando paralisações desnecessárias do pipeline. Em vez disso, você deve fazer a transição de recursos apenas para os estados realmente usados. |
D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE Equivalente a D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE | D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE . |
D3D12_RESOURCE_STATE_PRESENT Valor: 0 Sinônimo de D3D12_RESOURCE_STATE_COMMON. |
D3D12_RESOURCE_STATE_PREDICATION Valor: 0x200 O recurso é usado para Predication. |
D3D12_RESOURCE_STATE_VIDEO_DECODE_READ Valor: 0x10000 O recurso é usado como uma origem em uma operação de decodificação. Exemplos incluem a leitura do bitstream compactado e a leitura de referências de decodificação, |
D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE Valor: 0x20000 O recurso é usado como um destino na operação de decodificação. Esse estado é usado para decodificar a saída e os histogramas. |
D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ Valor: 0x40000 O recurso é usado para ler dados de vídeo durante o processamento de vídeo; ou seja, o recurso é usado como a origem em uma operação de processamento, como codificação de vídeo (compactação). |
D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE Valor: 0x80000 O recurso é usado para gravar dados de vídeo durante o processamento de vídeo; ou seja, o recurso é usado como destino em uma operação de processamento, como codificação de vídeo (compactação). |
D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ Valor: 0x200000 O recurso é usado como a origem em uma operação de codificação. Esse estado é usado para a entrada e referência da estimativa de movimento. |
D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE Valor: 0x800000 Esse recurso é usado como o destino em uma operação de codificação. Esse estado é usado para a textura de destino de uma operação de heap de vetor de movimento de resolução. |
Comentários
Essa enumeração é usada pelos seguintes métodos:
Requisitos
Cabeçalho | d3d12.h |