Vidéo sur la migration vers Direct3D 12.
Cet article décrit les API vidéo Direct3D 12 utilisées pour implémenter les fonctionnalités disponibles dans les versions précédentes. Dans l’intérêt d’améliorer les performances et la convivialité des fonctionnalités vidéo de priorité la plus élevée, certaines fonctionnalités de Direct3D 11 sont entièrement ou partiellement non prises en charge dans Direct3D 12.
Notez que, bien que la plupart des fonctionnalités de Direct3D 11 soient disponibles dans Direct3D 12, la conception de l’API a changé. dans de nombreux cas, il n’y a pas de mappage un-à-un entre les deux ensembles d’API. Les tableaux ci-dessous visent à vous faire remonter aux API les plus pertinentes dans Direct3D 12 pour chaque API Direct3D 11, mais la façon dont vous utilisez les nouvelles API peut être très différente. Par exemple :
- Pour décoder une image vidéo, les API vidéo Direct3D 11 utilisent des appels à DecoderBeginFrame, GetDecoderBuffer, SubmitDecoderBufferset DecoderEndFrame. Avec Direct3D 12, une seule méthode est utilisée, ID3D12VideoDecodeCommandList ::D ecodeframe.
- Pour le traitement vidéo, Direct3D 11 a fourni des méthodes individuelles pour définir les différentes valeurs de configuration, telles que VideoProcessorSetOutputColorSpace et VideoProcessorSetOutputAlphaFillMode. Dans Direct3D 12, ces valeurs sont définies lorsque le processeur vidéo est créé, dans l’appel à ID3D12VideoDevice :: CreateVideoProcessor, ou lorsque le frame est traité avec un appel à ID3D12VideoProcessCommandList1 ::P rocessframes1.
ID3D11VideoContext
Fournit les fonctionnalités vidéo d’un appareil Direct3D 11, y compris le décodage vidéo, le traitement vidéo, la protection du contenu basé sur GPU et le chiffrement/déchiffrement vidéo. Cette fonctionnalité est partiellement implémentée pour Direct3D 12.
ID3D11VideoContext1
Fournit les fonctionnalités vidéo étendues d’un appareil Direct3D 11, y compris les fonctionnalités DRM matérielles, les améliorations de l’utilisation de la surface, ainsi que des fonctionnalités de traitement vidéo. Cette fonctionnalité est implémentée pour Direct3D 12 via de nouvelles interfaces.
ID3D11VideoDecoder
Représente un décodeur vidéo accéléré par le matériel pour Direct3D 11. Il s’agit d’une interface de wrapper autour de ID3D11VideoContext qui expose les fonctionnalités de décodage réelles. Il n’existe aucune API équivalente pour la vidéo Direct3D 12.
ID3D11VideoDecoderOutputView
Identifie les surfaces de sortie accessibles pendant le décodage vidéo. Dans Direct3D 12, l’interface ID3D12VideoProcessor utilise les objets ID3D12Resource directement.
ID3D11VideoDevice
Fournit le décodage vidéo et les fonctionnalités de traitement vidéo d’un appareil Direct3D 11. Il s’agit du point d’entrée principal pour créer l’appareil de décodage vidéo et la session de chiffrement, ainsi que pour le traitement vidéo, les fonctionnalités, les profils, etc. Cette fonctionnalité est partiellement implémentée pour Direct3D 12.
ID3D11VideoDevice1
Fournit des fonctionnalités étendues de traitement vidéo et de décodage vidéo d’un appareil Direct3D 11, y compris d’autres extensions, des fonctionnalités DRM matérielles, des sous-échantillonnages de décodage, des fonctionnalités de décodage vidéo, etc. Cette fonctionnalité est implémentée pour Direct3D 12.
ID3D11VideoProcessor
Représente un processeur vidéo pour Direct3D 11. Cette fonctionnalité est implémentée pour Direct3D 12 dans le ID3D12VideoProcessor
| Direct3D 11 | Direct3D 12 |
|---|---|
| GetContentDesc | Non implémenté |
| GetRateConversionCaps | Non implémenté |
ID3D11VideoProcessorEnumerator et ID3D11VideoProcessorEnumerator1
Énumère les fonctionnalités du processeur vidéo d’un appareil Direct3D 11. Dans Direct3D 12, la fonctionnalité d’énumération est remplacée par ID3D12VideoDevice :: CheckFeatureSupport.
ID3D11VideoProcessorInputView
Identifie les surfaces d’entrée accessibles pendant le traitement vidéo. Dans Direct3D 12, il est remplacé par ID3D12Texture2D.
ID3D11VideoProcessorOutputView
Identifie les surfaces de sortie accessibles pendant le traitement vidéo. Dans Direct3D 12, il est remplacé par ID3D12Texture2D.
ID3D11AuthenticatedChannel
Fournit un canal de communication sécurisé avec le pilote Graphics ou le runtime Microsoft Direct3D. Cette fonctionnalité n’est pas implémentée pour la vidéo Direct3D 12.
ID3D11CryptoSession
Représente une session de chiffrement. Utilisé pour les scénarios DRM logiciels et matériels. Il n’existe aucune API publique équivalente pour Direct3D 12 Video.