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 :

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.

Direct3D 11 Direct3D 12
ConfigureAuthenticatedChannel Non implémenté
DecoderBeginFrame ID3D12VideoDecodeCommandList ::D ecodeframe, D3D12_VIDEO_DECODE_FRAME_ARGUMENT, D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM, D3D12_VIDEO_DECODE_REFERENCE_FRAMES
DecoderEndFrame ID3D12VideoDecodeCommandList
DecoderExtension Non implémenté.
DecryptionBlt Non implémenté.
EncryptionBlt Non implémenté.
FinishSessionKeyRefresh Non implémenté.
GetDecoderBuffer Non implémenté. Les mémoires tampons compressées sont gérées par l’application dans Direct3D 12.
GetEncryptionBltKey Non implémenté.
NegotiateAuthenticatedChannelKeyExchange Non implémenté.
NegotiateCryptoSessionKeyExchange Non implémenté.
QueryAuthenticatedChannel Non implémenté.
ReleaseDecoderBuffer Non implémenté. Les mémoires tampons compressées sont gérées par l’application dans Direct3D 12.
StartSessionKeyRefresh Non implémenté
SubmitDecoderBuffers ID3D12VideoDecodeCommandList ::D ecodeFrame
VideoProcessorBlt ID3D12VideoProcessCommandList1 ::P rocessFrames1
VideoProcessorGetOutputAlphaFillMode VideoProcessorSetOutputAlphaFillMode D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC. AlphaFillMode
VideoProcessorGetOutputBackgroundColor VideoProcessorSetOutputBackgroundColor D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC. BackgroundColor
VideoProcessorGetOutputColorSpace VideoProcessorSetOutputColorSpace D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC. ColorSpace
VideoProcessorGetOutputConstriction VideoProcessorSetOutputConstriction Non implémenté. Le logiciel DRM n’est pas pris en charge.
VideoProcessorGetOutputExtension VideoProcessorSetOutputExtension Non implémenté.
VideoProcessorGetOutputStereoMode VideoProcessorSetOutputStereoMode D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC. EnableStereo
VideoProcessorGetOutputTargetRect VideoProcessorSetOutputTargetRect D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS. TargetRectangle
VideoProcessorGetStreamAlpha VideoProcessorSetStreamAlpha D3D12_VIDEO_PROCESS_ALPHA_BLENDING. Lettres
VideoProcessorGetStreamAutoProcessingMode VideoProcessorSetStreamAutoProcessingMode D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC. EnableAutoProcessing
VideoProcessorGetStreamColorSpace VideoProcessorSetStreamColorSpace D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS. ColorSpace
VideoProcessorGetStreamDestRect VideoProcessorSetStreamDestRect D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS. DestinationRectangle
VideoProcessorGetStreamExtension VideoProcessorSetStreamExtension Non implémenté.
VideoProcessorGetStreamFilter VideoProcessorSetStreamFilter D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS. FilterFlags
VideoProcessorGetStreamFrameFormat VideoProcessorSetStreamFrameFormat D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS. Format
VideoProcessorGetStreamLumaKey VideoProcessorSetStreamLumaKey D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS. LumaKey
VideoProcessorGetStreamOutputRate VideoProcessorSetStreamOutputRate D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC. Fréquence
VideoProcessorGetStreamPalette VideoProcessorSetStreamPalette Non implémenté
VideoProcessorGetStreamPixelAspectRatio VideoProcessorSetStreamPixelAspectRatio D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS. Modifiez
VideoProcessorGetStreamRotation VideoProcessorSetStreamRotation D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS. Modifiez
VideoProcessorGetStreamSourceRect VideoProcessorSetStreamSourceRect D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS. Modifiez
VideoProcessorGetStreamStereoFormat VideoProcessorSetStreamStereoFormat D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS. Modifiez

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.

Direct3D 11 Direct3D 12
CheckCryptoSessionStatus TBD
DecoderEnableDownsampling D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS
DecoderUpdateDownsampling D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS
GetDataForNewHardwareKey TBD
SubmitDecoderBuffers1 ID3D12VideoDecodeCommandList ::D ecodeFrame
VideoProcessorGetBehaviorHints TBD
VideoProcessorGetOutputColorSpace1 VideoProcessorSetOutputColorSpace1 D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC. ColorSpace
VideoProcessorGetOutputShaderUsage VideoProcessorSetOutputShaderUsage TBD
VideoProcessorGetStreamColorSpace1 VideoProcessorSetStreamColorSpace1 D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC. ColorSpace
VideoProcessorGetStreamMirror VideoProcessorSetStreamMirror D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS. Modifiez

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.

Direct3D 11 Direct3D 12
CheckCryptoKeyExchange Non implémenté.
CheckVideoDecoderFormat D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS
CreateAuthenticatedChannel Non implémenté.
CreateCryptoSession Non implémenté.
CreateVideoDecoder ID3D12VideoDevice :: CreateVideoDecoder ID3D12VideoDevice :: CreateVideoDecoderHeap
CreateVideoDecoderOutputView ID3D12Texture2D
CreateVideoProcessor ID3D12VideoDevice::CreateVideoProcessor
CreateVideoProcessorEnumerator N/A
CreateVideoProcessorInputView ID3D12Texture2D
CreateVideoProcessorOutputView ID3D12Texture2D
GetContentProtectionCaps TBD
GetVideoDecoderConfig Seul le mode VLD est pris en charge dans Direct3D 12. D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS
GetVideoDecoderConfigCount N/A
GetVideoDecoderProfile D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES
GetVideoDecoderProfileCount D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES. ProfileCount
SetPrivateData ID3D12Object::SetPrivateData
SetPrivateDataInterface ID3D12Object::SetPrivateDataInterface

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.

Direct3D 11 Direct3D 12
CheckVideoDecoderDownsampling D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT
GetCryptoSessionPrivateDataSize TBD
GetVideoDecoderCaps D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT
RecommendVideoDecoderDownsampleParameters D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT

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.

API vidéo Direct3D 12