énumération D3D12DDI_VIDEO_DECODE_TIER_0020 (d3d12umddi.h)

Spécifie le niveau de décodage vidéo. Les niveaux vidéo de décodage définissent un ensemble de fonctionnalités matérielles. Plus le niveau est élevé, plus le matériel est capable.

Syntax

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
} ;

Constantes

 
D3D12DDI_VIDEO_DECODE_TIER_0020_NOT_SUPPORTED
Le profil de décodage n’est pas pris en charge.
D3D12DDI_VIDEO_DECODE_TIER_0020_1
Décodage vidéo de niveau 1. Dans le décodage vidéo de niveau 1, le matériel nécessite le décodage des textures de sortie et des textures de référence pour le décodage d’un flux afin d’être physiquement contigu lorsque les opérations vidéo les référencent.

Les ressources de référence sont allouées par l’application en tant que tableau de textureS D3D12. Le pilote ne reçoit pas d’indications explicites indiquant que l’allocation cible des scénarios vidéo et peut initialement allouer de la mémoire non contiguë physiquement. Les pilotes sont censés utiliser une nouvelle fonctionnalité Update Allocation Properties fournie par le gestionnaire de mémoire, pour planifier une conversion en contiguïs physiquement lors de la soumission du travail vidéo qui l’exige en fait d’être physiquement contiguë.

Caractéristiques matérielles qui placent le matériel dans le niveau 1 :

* Le décodage du matériel nécessite une mémoire contiguë physiquement pour décoder la sortie et les références. Les mémoires tampons d’entrée avec le flux de bits compressé peuvent également nécessiter une contiguïté physique.

* Le décodage du matériel peut avoir un format de mosaïque spécial ou une autre définition de disposition de mémoire incompatible avec d’autres moteurs ou opérations vidéo.

Configuration requise pour la mémoire tampon d’entrée compressée :

* Toutes les tranches d’un cadre donné doivent être placées dans l’ordre et contiguës (aucun intervalle entre les tranches).

* Les pilotes ne doivent pas effectuer de copies supplémentaires des données de flux de bits.

* La première tranche doit commencer sur une limite de 128 octets.

* Le matériel doit prendre en charge le décodage à partir d’une mémoire tampon allouée à partir de D3D12DDI_MEMORY_POOL_L0 (toujours la mémoire système).

* Le matériel doit prendre en charge le décodage à partir de D3D12DDI_MEMORY_POOL_L1 (pool par défaut) avec D3D12DDI_CPU_PAGE_PROPERTY_NOT_AVAILABLE.
D3D12DDI_VIDEO_DECODE_TIER_0020_2
Décodage vidéo niveau 2. Le décodage de niveau 2 permet à l’appelant d’allouer des textures de référence et de sortie en tant que ressources de texture 2D distinctes. L’application n’est plus nécessaire pour allouer des tableaux de textures, mais cela doit être pris en charge.

Le décodage de niveau 2 n’a pas d’exigences physiquement contiguës. Le matériel peut avoir des exigences va contiguë (accélération du décodage vidéo) dans ce niveau, et les applications sont nécessaires pour créer un tableau de textures pour prendre en charge cela.

Pour activer le niveau 2, les ressources réservées, également appelées ressources mosaïques ou éparses, doivent être prises en charge pour les formats de référence et de sortie pris en charge par le pilote. Cette opération peut être réalisée de deux manières :

* Si le matériel prend en charge l’VA GPU par processus et a un modèle de vignette qui prend en charge les exigences de forme de vignette des ressources réservées, le mécanisme de ressources en mosaïque D3D12 préexistant peut être utilisé.

* Si le matériel prend en charge l’va gpu par processus, mais que le modèle de vignette n’est pas conforme aux exigences de forme de vignette des ressources réservées, et que le matériel peut prendre en charge un mappage de vignettes qui mappe et démappe des vignettes pour une sous-ressource entière, pour chaque plan d’une ressource planaire qui est une sous-ressource distincte dans D3D12, le mécanisme exige qu’ils puissent être mappés en mosaïque et démapper les vignettes indépendamment. Notez que ce mécanisme est en cours de développement, mais qu’il obfusquera la forme de la vignette au niveau de l’API.

Caractéristiques matérielles qui placent le matériel au niveau 2 :

* Ne nécessite pas de mémoire contiguë physiquement.

* Le matériel a une exigence VA contiguë.

* Le décodage du matériel peut avoir un format de mosaïque spécial ou une autre définition de disposition de mémoire incompatible avec d’autres moteurs ou opérations vidéo.

Les exigences de mémoire tampon d’entrée compressée sont identiques au niveau 1.
D3D12DDI_VIDEO_DECODE_TIER_0020_3
Décodage vidéo niveau 3. Ce niveau est pris en charge depuis WDDM 2.3.

Le décodage de niveau 3 permet à l’appelant d’allouer des textures de référence et de sortie en tant que ressources de texture 2D standard. L’application n’est plus nécessaire pour allouer des tableaux de textures, mais cela doit être pris en charge.

Le décodage de niveau 3 ne nécessite pas d’allocations contiguës physiquement. Le matériel ne doit plus nécessiter le D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY, mais doit toujours le prendre en charge. Lorsqu’il est interrogé, le membre D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY de la structure D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 doit avoir la valeur FALSE.

Pour activer le niveau 3, les ressources réservées (également appelées ressources mosaïques ou éparses) doivent être prises en charge pour les formats de référence et de sortie pris en charge par le pilote. Cela peut se produire de deux manières :

* Si le matériel prend en charge l’VA GPU par processus et a un modèle de vignette qui prend en charge les exigences de forme de vignette des ressources réservées, le mécanisme de ressources en mosaïque D3D12 préexistant peut être utilisé.

* Si le matériel prend en charge l’va gpu par processus, mais que le modèle de vignette n’est pas conforme aux exigences de forme de vignette des ressources réservées, et que le matériel peut prendre en charge un mappage de vignettes qui mappe et démappe des vignettes pour une sous-ressource entière, pour chaque plan d’une ressource planaire qui est une sous-ressource distincte dans D3D12, le mécanisme exige qu’ils puissent être mappés en mosaïque et démapper les vignettes indépendamment. Notez que ce mécanisme est en cours de développement, mais qu’il obfusquera la forme de la vignette au niveau de l’API.

Les exigences de mémoire tampon d’entrée compressée sont identiques au niveau 1.

Remarques

Si le matériel de décodage nécessite un format de mosaïcage unique qui n’est pas pris en charge pour les opérations sur d’autres moteurs ou différentes opérations vidéo, le décodeur peut définir D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY dans la structure D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 lors de l’interrogation de la prise en charge du profil. Cet indicateur indique que l’application doit allouer des références avec l’indicateur D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY. Si la sortie est nécessaire en tant que trame de référence future, la trame de sortie passée à PFND3D12DDI_VIDEO_DECODE_FRAME est une ressource D3D12 qui peut être consommée par d’autres parties du pipeline et ne doit pas avoir l’indicateur D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY.

Le tableau suivant montre les différentes fonctionnalités pour chaque niveau :

Fonctionnalité Niveau 1 Niveau 2 Niveau 3
Prend en charge les trames de référence et la sortie allouées individuellement. Non Non Obligatoire
Prend en charge les références et allouées en tant que tableau de textures. Obligatoire Obligatoire Obligatoire
Peut éventuellement exiger l’indicateur de ressource REFERENCE_ONLY. Notez que tous les niveaux doivent fonctionner avec l’indicateur présent, même si ce n’est pas obligatoire. Facultatif Facultatif Non
Prise en charge des références allouées avec REFERENCE_ONLY, même lorsque les majuscules ne l’exigent pas. Obligatoire Obligatoire Obligatoire
Prend en charge les ressources mosaïques/éparses pour les références, l’entrée et la sortie. Non Obligatoire Obligatoire
Les mémoires tampons d’entrée de flux de bits compressées peuvent être allouées en tant que L0 (mémoire système main) ou L1 (pour dGPU, mémoire vidéo). Obligatoire Obligatoire Obligatoire
Nécessite des données de flux de bits compressées pour que les tranches soient situées dans une allocation de mémoire tampon unique sans intervalles entre les tranches. Obligatoire Obligatoire Obligatoire
Le décalage vers la première tranche de la mémoire tampon d’entrée compressée doit être aligné sur 256 octets. Obligatoire Obligatoire Obligatoire
Les pilotes ne doivent pas effectuer de copies supplémentaires des données de flux de bits compressées. Obligatoire Obligatoire Obligatoire

Configuration requise

Condition requise Valeur
En-tête d3d12umddi.h (inclure D3d12umddi.h)