D3D12_RESOURCE_FLAGS enumeração (d3d12.h)
Define constantes que especificam opções para trabalhar com recursos.
Sintaxe
typedef enum D3D12_RESOURCE_FLAGS {
D3D12_RESOURCE_FLAG_NONE = 0,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
} ;
Constantes
D3D12_RESOURCE_FLAG_NONE Valor: 0 Nenhuma opção é especificada. |
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET Valor: 0x1 Permite que uma exibição de destino de renderização seja criada para o recurso; e também permite que o recurso faça a transição para o estado de D3D12_RESOURCE_STATE_RENDER_TARGET. Algumas arquiteturas de adaptador alocam memória extra para texturas com esse sinalizador para reduzir a largura de banda efetiva durante a renderização comum. Essa característica pode não ser benéfica para texturas que nunca são renderizadas, nem está disponível para texturas compactadas com formatos BC. Seu aplicativo deve evitar definir esse sinalizador quando a renderização nunca ocorrer. As seguintes restrições e interações se aplicam:
|
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL Valor: 0x2 Permite que uma exibição de estêncil de profundidade seja criada para o recurso, bem como permite que o recurso faça a transição para o estado de D3D12_RESOURCE_STATE_DEPTH_WRITE e/ou D3D12_RESOURCE_STATE_DEPTH_READ. A maioria das arquiteturas de adaptador aloca memória extra para texturas com esse sinalizador para reduzir a largura de banda efetiva e maximizar otimizações para teste de profundidade precoce. Seu aplicativo deve evitar definir esse sinalizador quando as operações de profundidade nunca ocorrerem. As seguintes restrições e interações se aplicam:
|
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS Valor: 0x4 Permite que uma exibição de acesso não ordenado seja criada para o recurso, bem como permite que o recurso faça a transição para o estado de D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Algumas arquiteturas de adaptador devem recorrer a layouts de textura menos eficientes para fornecer essa funcionalidade. Se uma textura raramente for usada para acesso não ordenado, talvez valha a pena ter duas texturas ao redor e copiar entre elas. Uma textura teria esse sinalizador, enquanto a outra não. Seu aplicativo deve evitar definir esse sinalizador quando as operações de acesso não ordenadas nunca ocorrerem. As seguintes restrições e interações se aplicam:
|
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE Valor: 0x8 Não permite que uma exibição de recurso de sombreador seja criada para o recurso, bem como desabilita a transição do recurso para o estado de D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE ou D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. Algumas arquiteturas de adaptador ganham capacidade de largura de banda para texturas de estêncil de profundidade quando as exibições de recursos do sombreador são impedidas. Se uma textura raramente for usada para recursos de sombreador, talvez valha a pena ter duas texturas ao redor e copiar entre elas. Uma textura teria esse sinalizador, enquanto a outra não. Seu aplicativo deve definir esse sinalizador quando texturas de estêncil de profundidade nunca serão usadas de exibições de recurso de sombreador. As seguintes restrições e interações se aplicam:
|
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER Valor: 0x10 Permite que o recurso seja usado para dados entre adaptadores, bem como os recursos habilitados por D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS. Os recursos de adaptador cruzado geralmente impedem técnicas que reduzem a largura de banda de textura eficaz durante o uso, e algumas arquiteturas de adaptador podem exigir um comportamento de cache diferente. Seu aplicativo deve evitar definir esse sinalizador quando os dados do recurso nunca serão usados com outro adaptador. As seguintes restrições e interações se aplicam:
|
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS Valor: 0x20 Permite que um recurso seja acessado simultaneamente por várias filas, dispositivos ou processos diferentes (por exemplo, permite que um recurso seja usado com ResourceBarrier transições executadas em mais de uma lista de comandos em execução ao mesmo tempo). O acesso simultâneo permite vários leitores e um gravador, desde que o gravador não modifique simultaneamente os texels que outros leitores estão acessando. Algumas arquiteturas de adaptador não podem aproveitar técnicas para reduzir a largura de banda de textura eficaz durante o uso. No entanto, seu aplicativo deve evitar definir esse sinalizador quando vários leitores não são necessários durante gravações frequentes e não sobrepostas em texturas. O uso desse sinalizador pode comprometer as cercas de recursos para executar esperas e impedir que qualquer compactação seja usada com um recurso. As seguintes restrições e interações se aplicam:
|
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY Valor: 0x40 Especifica que esse recurso pode ser usado apenas como um quadro de referência de decodificação. Ele pode ser gravado ou lido apenas pela operação de decodificação de vídeo. D3D12_VIDEO_DECODE_TIER_1 e D3D12_VIDEO_DECODE_TIER_2 podem relatar D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED no sinalizador de configuração da estrutura D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT. Se isso acontecer, o aplicativo deverá alocar quadros de referência com o sinalizador de recurso D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY. D3D12_VIDEO_DECODE_TIER_3 não deve definir o [D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED] (.. O sinalizador de configuração /d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags) não deve exigir o uso desse sinalizador de recurso. |
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY Valor: 0x80 Especifica que esse recurso pode ser usado apenas como um quadro de referência de codificação. Ele pode ser gravado ou lido apenas pela operação de codificação de vídeo. |
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE Valor: 0x100 Requer o SDK de Agilidade do DirectX 12 1.608.0 ou posterior. Indica que um buffer deve ser usado como uma estrutura de aceleração de raytracing. Ao usar barreiras avançadas D3D12, esse sinalizador serve como uma substituição para D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE , já que os buffers não têm mais layouts/estados. |
Observações
Essa enumeração é usada pelo Flags membro do D3D12_RESOURCE_DESC.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | d3d12.h |
Consulte também
- enumerações do Core