Partager via


énumération D3D12DDI_VIDEO_DECODE_TIER_0020 (d3d12umddi.h)

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

Syntaxe

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 décoder un flux de manière 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’indicateurs explicites indiquant que les scénarios vidéo d’allocation ciblent et peuvent initialement allouer de la mémoire non contiguë physiquement. Les pilotes sont censés utiliser une nouvelle mettre à jour les propriétés d’allocation fonctionnalité fournie par le gestionnaire de mémoire pour planifier une conversion en contiguë physiquement lors de l’envoi du travail vidéo qui exige qu’elle soit physiquement contiguë.

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

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

* Le matériel de décodage 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 écart 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 de 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.

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

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 effectué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 annule les mosaïques pour une sous-source entière, pour chaque plan d’une ressource planaire qui est une sous-source distincte dans D3D12, le mécanisme exige qu’ils puissent être mappés en mosaïque et vignette non mappés indépendamment. Notez que ce mécanisme est en cours de développement, mais obfusque la forme de vignette sur l’API.

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

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

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

* Le matériel de décodage 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ées sont identiques au niveau 1.
D3D12DDI_VIDEO_DECODE_TIER_0020_3
Décodage vidéo de niveau 3. Ce niveau est pris en charge dans WDDM 2.3.

Décoder le 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.

Décoder le 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’elle est interrogée, le membre D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY de la structure D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 doit être défini sur 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 façons :

* 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 annule les mosaïques pour une sous-source entière, pour chaque plan d’une ressource planaire qui est une sous-source distincte dans D3D12, le mécanisme exige qu’ils puissent être mappés en mosaïque et vignette non mappés indépendamment. Notez que ce mécanisme est en cours de développement, mais obfusque la forme de vignette sur l’API.

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

Remarques

Si le matériel de décodage nécessite un format de mosaïques 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 présente les différentes fonctionnalités de chaque niveau :

Capacité Niveau 1 Niveau 2 Niveau 3
Prend en charge les images 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 sont requis pour fonctionner avec un indicateur présent, même s’il n’est pas obligatoire. Optionnel Optionnel Non
Prise en charge des références allouées avec REFERENCE_ONLY, même si les limites ne le nécessitent pas. Obligatoire Obligatoire Obligatoire
Prend en charge les ressources tiled/éparses pour les références, les entrées et les sorties. 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 principale) 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 seule allocation de mémoire tampon sans écart 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

Exigences

Exigence Valeur
d’en-tête d3d12umddi.h (include D3d12umddi.h)