Compartilhar via


D3D12_VIDEO_DECODE_TIER enumeração (d3d12video.h)

Especifica a camada de decodificação de um decodificador de vídeo de hardware, que determina o formato necessário de texturas e buffers definidos pelo aplicativo.

Syntax

typedef enum D3D12_VIDEO_DECODE_TIER {
  D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED,
  D3D12_VIDEO_DECODE_TIER_1,
  D3D12_VIDEO_DECODE_TIER_2,
  D3D12_VIDEO_DECODE_TIER_3
} ;

Constantes

 
D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED
Não há suporte para decodificação de vídeo.
D3D12_VIDEO_DECODE_TIER_1
Na camada 1, o decodificador de hardware requer que o aplicativo aloque texturas de referência como uma matriz de textura. Isso é para acomodar os requisitos de hardware de que as texturas sejam "próximas" no espaço de endereço porque o hardware não dá suporte a um ponteiro de tamanho completo para cada buffer de imagem individual. Em vez disso, ele tem um ponteiro e um deslocamento de bits mais limitado. Para obter mais informações sobre matrizes de textura, consulte Introdução a texturas no Direct3D 11.

Se o hardware do decodificador exigir um layout de memória exclusivo que não tenha suporte para operações em outros mecanismos ou operações de vídeo diferentes, o decodificador poderá definir o sinalizador de configuração D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED na estrutura D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT quando consultado para obter suporte ao perfil. Esse sinalizador indica que o aplicativo deve alocar referências com o sinalizador D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY . O aplicativo deve usar a estrutura D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS para definir uma saída somente referência se a saída for necessária como um quadro de referência futuro. O quadro de saída passado para ID3D12VideoCommandList::D ecodeFrame é um recurso D3D12 que pode ser consumido por outras partes do pipeline e não deve ter o sinalizador D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY.

#### Requisitos de camada 1 para buffers de entrada compactados
- Todas as fatias de um determinado quadro devem ser colocadas em ordem e devem ser contíguas, ou seja, não deve haver lacunas entre fatias. Os buffers de controle de fatia devem especificar parâmetros de deslocamento e tamanho que atendam a esse requisito.
- A primeira fatia deve começar em um limite de 128 Bytes. O deslocamento definido na estrutura D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM deve ser um múltiplo de 128 Bytes.
– Há suporte para decodificação de buffers alocados com D3D12_MEMORY_POOL_L0. Essa é sempre a memória do sistema, mas ainda é um buffer D3D12.
– Há suporte para decodificação de buffers alocados com D3D12_MEMORY_POOL_L1, o pool padrão, incluindo aqueles alocados com D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE.
D3D12_VIDEO_DECODE_TIER_2
Na camada de decodificação 2, as texturas podem ser referenciadas como uma matriz de textura ou como uma matriz de recursos 2D de textura separados (cada recurso com tamanho de matriz de 1). Isso é mais flexível para o chamador e é importante em cenários em que a resolução muda com frequência, como no streaming de vídeo, porque uma matriz de textura só pode ser alocada e desalocada como uma única unidade, mas recursos 2D de textura separados podem ser alocados e desalocados individualmente.

Se o hardware de decodificação exigir um formato de bloco exclusivo que não tenha suporte para operações em outros mecanismos ou operações de vídeo diferentes, o decodificador poderá definir o sinalizador de configuração D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED na estrutura D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT quando consultado para obter suporte ao perfil. Esse sinalizador indica que o aplicativo deve alocar referências com o sinalizador D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY . O aplicativo deve usar a estrutura D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS para definir uma saída somente de referência se a saída for necessária como um quadro de referência futuro. O quadro de saída passado para ID3D12VideoCommandList::D ecodeFrame é um recurso D3D12 que pode ser consumido por outras partes do pipeline e não deve ter o sinalizador D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY.

#### Requisitos de camada 2 para buffers de entrada compactados

Esses requisitos são idênticos aos requisitos da camada 1.

- Todas as fatias de um determinado quadro devem ser colocadas em ordem e devem ser contíguas, ou seja, não deve haver lacunas entre fatias. Os buffers de controle de fatia devem especificar parâmetros de deslocamento e tamanho que atendam a esse requisito.
- A primeira fatia deve começar em um limite de 128 Bytes. O deslocamento definido na estrutura D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM deve ser um múltiplo de 128 Bytes.
– Há suporte para decodificação de buffers alocados com D3D12_MEMORY_POOL_L0. Essa é sempre a memória do sistema, mas ainda é um buffer D3D12.
– Há suporte para decodificação de buffers alocados com D3D12_MEMORY_POOL_L1, o pool padrão, incluindo aqueles alocados com D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE.
-
D3D12_VIDEO_DECODE_TIER_3
Este campo é reservado.

Requisitos

Requisito Valor
Cabeçalho d3d12video.h