Condividi tramite


enumerazione D3D12DDI_VIDEO_DECODE_TIER_0020 (d3d12umddi.h)

Specifica il livello di decodifica video. Decodificare i livelli video definisce un set di funzionalità hardware. Maggiore è il livello, maggiore sarà l'hardware.

Sintassi

typedef enum D3D12DDI_VIDEO_DECODE_TIER_0020 {
  D3D12DDI_VIDEO_DECODE_TIER_0020_NOT_SUPPORTED,
  D3D12DDI_VIDEO_DECODE_TIER_0020_1,
  D3D12DDI_VIDEO_DECODE_TIER_0020_2,
  D3D12DDI_VIDEO_DECODE_TIER_0020_3
} ;

Costanti

 
D3D12DDI_VIDEO_DECODE_TIER_0020_NOT_SUPPORTED
Il profilo di decodifica non è supportato.
D3D12DDI_VIDEO_DECODE_TIER_0020_1
Decodifica video livello 1. Nel livello di decodifica video 1, l'hardware richiede la decodifica delle trame di output e delle trame di riferimento per decodificare un flusso per essere fisicamente contiguo quando le operazioni video vi fanno riferimento.

Le risorse di riferimento vengono allocate dall'applicazione come matrice di trame D3D12. Il driver non riceve suggerimenti espliciti che l'allocazione è destinata agli scenari video e può inizialmente allocare memoria non fisicamente contigua. È previsto che i driver usino una nuova funzionalità Update Allocation Properties fornita dal gestore della memoria, per pianificare una conversione in fisicamente contigua all'invio del lavoro video che richiede effettivamente che sia fisicamente contiguo.

Caratteristiche hardware che inserisce l'hardware nel livello 1:

* Decodifica hardware richiede memoria fisicamente contigua per decodificare l'output e i riferimenti. Anche i buffer di input con bitstream compresso possono richiedere una contiguità fisica.

* Decodifica hardware può avere un formato speciale di tiling o un'altra definizione di layout di memoria che non è compatibile con altri motori o operazioni video.

Requisiti del buffer di input compresso:

* Tutte le sezioni per un determinato frame devono essere posizionate in ordine e contigue (senza spazi tra sezioni).

* I driver non devono eseguire copie aggiuntive dei dati bitstream.

* La prima sezione deve iniziare su un limite di 128 byte.

* L'hardware deve supportare la decodifica da un buffer allocato da D3D12DDI_MEMORY_POOL_L0 (memoria di sistema sempre).

* L'hardware deve supportare la decodifica da D3D12DDI_MEMORY_POOL_L1 (pool predefinito) con D3D12DDI_CPU_PAGE_PROPERTY_NOT_AVAILABLE.
D3D12DDI_VIDEO_DECODE_TIER_0020_2
Decodifica video di livello 2. Il livello 2 di decodifica consente al chiamante di allocare trame di riferimento e output come risorse di trama 2D separate. L'applicazione non è più necessaria per allocare matrici di trame, ma deve essere supportata.

Il decode tier 2 non ha requisiti fisicamente contigui. L'hardware può avere requisiti contigui di va (accelerazione di decodifica video) in questo livello e le applicazioni sono necessarie per creare una matrice di trame per supportarlo.

Per abilitare il livello 2, le risorse riservate, dette anche risorse affiancate o sparse, devono essere supportate per i formati di riferimento e output supportati dal driver. A questo scopo, è possibile eseguire una delle due operazioni seguenti:

* Se l'hardware dispone del supporto per LA GPU per processo e ha un modello di riquadro che supporta i requisiti di forma del riquadro delle risorse riservate, è possibile usare il meccanismo di risorsa affiancata D3D12 preesistente.

* Se l'hardware dispone del supporto per la GPU per processo, ma il modello di riquadro non è conforme ai requisiti di forma del riquadro delle risorse riservate e l'hardware può supportare un mapping di riquadri mappato e unmap per un'intera sottorisorsa, per ogni piano di una risorsa planare che è una sottorisorsa separata in D3D12, il meccanismo richiede che possano essere mappati e riquadri mappati in modo indipendente. Si noti che questo meccanismo è in fase di sviluppo, ma offusca la forma del riquadro nell'API.

Caratteristiche hardware che inserisce l'hardware nel livello 2:

* Non richiede memoria fisicamente contigua.

* L'hardware ha un requisito va contiguo.

* Decodifica hardware può avere un formato speciale di tiling o un'altra definizione di layout di memoria che non è compatibile con altri motori o operazioni video.

I requisiti del buffer di input compresso sono gli stessi del livello 1.
D3D12DDI_VIDEO_DECODE_TIER_0020_3
Decodifica video livello 3. Questo livello è supportato per l'avvio in WDDM 2.3.

Decode Tier 3 consente al chiamante di allocare trame di riferimento e output come risorse di trama 2D standard. L'applicazione non è più necessaria per allocare matrici di trame, ma deve essere supportata.

Decode Tier 3 non richiede allocazioni fisicamente contigue. L'hardware non deve più richiedere il D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY, ma deve comunque supportarlo. Quando viene eseguita una query, il membro D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY della struttura D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 deve essere impostato su FALSE.

Per abilitare il livello 3, le risorse riservate (dette anche risorse tiled o sparse) devono essere supportate per i formati di riferimento e di output supportati dal driver. Ciò può essere dovuto a due motivi:

* Se l'hardware dispone del supporto per LA GPU per processo e ha un modello di riquadro che supporta i requisiti di forma del riquadro delle risorse riservate, è possibile usare il meccanismo di risorsa affiancata D3D12 preesistente.

* Se l'hardware dispone del supporto per la GPU per processo, ma il modello di riquadro non è conforme ai requisiti di forma del riquadro delle risorse riservate e l'hardware può supportare un mapping di riquadri mappato e unmap per un'intera sottorisorsa, per ogni piano di una risorsa planare che è una sottorisorsa separata in D3D12, il meccanismo richiede che possano essere mappati e riquadri mappati in modo indipendente. Si noti che questo meccanismo è in fase di sviluppo, ma offusca la forma del riquadro nell'API.

I requisiti del buffer di input compresso sono gli stessi del livello 1.

Commenti

Se l'hardware di decodifica richiede un formato univoco non supportato per le operazioni su altri motori o operazioni video diverse, il decodificatore può impostare D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY nella struttura D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 durante l'esecuzione di query per il supporto del profilo. Questo flag indica che l'applicazione deve allocare riferimenti con il flag D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY. Se l'output è necessario come frame di riferimento futuro, il frame di output passato a PFND3D12DDI_VIDEO_DECODE_FRAME è una risorsa D3D12 che può essere utilizzata da altre parti della pipeline e non deve avere il flag D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY.

La tabella seguente illustra le diverse funzionalità per ogni livello:

Funzionalità Livello 1 Livello 2 Livello 3
Supporta frame di riferimento e output allocati singolarmente. No No Necessario
Supporta i riferimenti e allocati come matrice di trame. Obbligatoria Obbligatoria Obbligatoria
Facoltativamente, può richiedere il flag di risorsa REFERENCE_ONLY. Si noti che tutti i livelli sono necessari per funzionare con il flag presente, anche quando non è necessario. Facoltativo Facoltativo No
Supporto per i riferimenti allocati con REFERENCE_ONLY, anche quando i limiti non lo richiedono. Obbligatoria Obbligatoria Obbligatoria
Supporta le risorse tiled/sparse per riferimenti, input e output. No Obbligatoria Obbligatoria
I buffer di input del flusso di bit compressi possono essere allocati come L0 (memoria di sistema principale) o L1 (per dGPU, memoria video). Obbligatoria Obbligatoria Obbligatoria
Richiede che i dati bitstream compressi per le sezioni si trovino in un'allocazione di buffer singola senza spazi tra le sezioni. Obbligatoria Obbligatoria Obbligatoria
L'offset alla prima sezione nel buffer di input compresso deve essere allineato a 256 byte. Obbligatoria Obbligatoria Obbligatoria
I driver non devono eseguire copie aggiuntive dei dati bitstream compressi. Obbligatoria Obbligatoria Obbligatoria

Requisiti

Requisito Valore
Intestazione d3d12umddi.h (include D3d12umddi.h)