Direct3D 11 video playback improvements
With wider adoption of Microsoft Direct3D 10 technologies in mainstream apps, some app developers want to treat all content the same. This is challenging to do with video on the Microsoft Direct3D 9 API when all 2-D and 3-D content is processed through the Direct3D 10 or 11 APIs. Because Windows 8 introduces video on Microsoft Direct3D 11, applications can use a single API to perform all graphical operations.
Minimum Windows Display Driver Model (WDDM) version | 1.2 |
Minimum Windows version | 8 |
Driver implementation—Full graphics and Render only | Mandatory for all WDDM 1.2 drivers with Microsoft Direct3D 10-, 10.1-, 11-, or 11.1-capable hardware (or later) |
WHCK requirements and tests | Device.Graphics ¦ DX11 Video Decode FeatureLevel 9 Device.Graphics ¦ DX11 VideoProcessing |
These are key benefits to using Direct3D 11:
- Direct3D 11 video simplifies interoperability between Microsoft Media Foundation and Microsoft DirectX technologies.
- Using multiple APIs is harder to program, so using video on Direct3D 11 simplifies the programming experience and makes the app more efficient. The API provides more flexibility in using decoded and processed video.
- The Direct3D 11 API for stereoscopic 3-D video unpacks stereo frames into left- and right-eye images.
- It has parity with DirectX Video Acceleration (DXVA) 2.0 and DXVA-HD in decoding and video processing capabilities.
- It works in Session 0 for transcoding scenarios.
Direct3D 11 video device driver interfaces (DDIs)
These device driver interfaces (DDIs) are new or updated for Windows 8:
- CalcPrivateCryptoSessionSize
- CalcPrivateAuthenticatedChannelSize
- CalcPrivateVideoDecoderOutputViewSize
- CalcPrivateVideoDecoderSize
- CalcPrivateVideoProcessorEnumSize
- CalcPrivateVideoProcessorInputViewSize
- CalcPrivateVideoProcessorOutputViewSize
- CalcPrivateVideoProcessorSize
- CheckFormatSupport
- CheckVideoDecoderFormat
- CheckVideoProcessorFormat
- ConfigureAuthenticatedChannel(D3D11_1)
- CreateAuthenticatedChannel(D3D11_1)
- CreateCryptoSession
- CreateResource2
- CreateVideoDecoder
- CreateVideoDecoderOutputView
- CreateVideoProcessor
- CreateVideoProcessorEnum
- CreateVideoProcessorInputView
- CreateVideoProcessorOutputView
- CryptoSessionGetHandle
- DecryptionBlt(D3D11_1)
- DestroyAuthenticatedChannel
- DestroyCryptoSession
- DestroyVideoDecoder
- DestroyVideoDecoderOutputView
- DestroyVideoProcessor
- DestroyVideoProcessorEnum
- DestroyVideoProcessorInputView
- DestroyVideoProcessorOutputView
- EncryptionBlt(D3D11_1)
- FinishSessionKeyRefresh
- GetCaptureHandle
- GetCertificate
- GetCertificateSize
- GetContentProtectionCaps
- GetCryptoKeyExchangeType
- GetEncryptionBltKey
- GetVideoDecoderBufferInfo
- GetVideoDecoderBufferTypeCount
- GetVideoDecoderConfig
- GetVideoDecoderConfigCount
- GetVideoDecoderProfile
- GetVideoDecoderProfileCount
- GetVideoProcessorCaps
- GetVideoProcessorCustomRate
- GetVideoProcessorFilterRange
- GetVideoProcessorRateConversionCaps
- NegotiateAuthenticatedChannelKeyExchange
- NegotiateCryptoSessionKeyExchange
- QueryAuthenticatedChannel(D3D11_1)
- RetrieveSubObject(D3D11_1)
- StartSessionKeyRefresh
- VideoDecoderBeginFrame
- VideoDecoderEndFrame
- VideoDecoderExtension
- VideoDecoderGetHandle
- VideoDecoderSubmitBuffers
- VideoProcessorBlt
- VideoProcessorGetOutputExtension
- VideoProcessorGetStreamExtension
- VideoProcessorInputViewReadAfterWriteHazard
- VideoProcessorSetOutputAlphaFillMode
- VideoProcessorSetOutputBackgroundColor
- VideoProcessorSetOutputColorSpace
- VideoProcessorSetOutputConstriction
- VideoProcessorSetOutputExtension
- VideoProcessorSetOutputStereoMode
- VideoProcessorSetOutputTargetRect
- VideoProcessorSetStreamAlpha
- VideoProcessorSetStreamAutoProcessingMode
- VideoProcessorSetStreamColorSpace
- VideoProcessorSetStreamDestRect
- VideoProcessorSetStreamExtension
- VideoProcessorSetStreamFilter
- VideoProcessorSetStreamFrameFormat
- VideoProcessorSetStreamLumaKey
- VideoProcessorSetStreamOutputRate
- VideoProcessorSetStreamPalette
- VideoProcessorSetStreamPixelAspectRatio
- VideoProcessorSetStreamRotation
- VideoProcessorSetStreamSourceRect
- VideoProcessorSetStreamStereoFormat
- D3D10_DDI_RESOURCE_BIND_FLAG
- D3D10_DDI_RESOURCE_MISC_FLAG
- D3D10DDIARG_CREATEDEVICE
- D3D11_1DDI_VIDEO_PROCESSOR_ALPHA_FILL_MODE
- D3D11_1DDI_VIDEO_PROCESSOR_AUTO_STREAM_CAPS
- D3D11_1DDI_VIDEO_PROCESSOR_CAPS
- D3D11_1DDI_VIDEO_PROCESSOR_COLOR_SPACE
- D3D11_1DDI_VIDEO_PROCESSOR_CONTENT_DESC
- D3D11_1DDI_VIDEO_PROCESSOR_CONVERSION_CAPS
- D3D11_1DDI_VIDEO_PROCESSOR_CUSTOM_RATE
- D3D11_1DDI_VIDEO_PROCESSOR_DEVICE_CAPS
- D3D11_1DDI_VIDEO_PROCESSOR_FEATURE_CAPS
- D3D11_1DDI_VIDEO_PROCESSOR_FILTER
- D3D11_1DDI_VIDEO_PROCESSOR_FILTER_CAPS
- D3D11_1DDI_VIDEO_PROCESSOR_FILTER_RANGE
- D3D11_1DDI_VIDEO_PROCESSOR_FORMAT_CAPS
- D3D11_1DDI_VIDEO_PROCESSOR_FORMAT_SUPPORT
- D3D11_1DDI_VIDEO_PROCESSOR_ITELECINE_CAPS
- D3D11_1DDI_VIDEO_PROCESSOR_OUTPUT_RATE
- D3D11_1DDI_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS
- D3D11_1DDI_VIDEO_PROCESSOR_ROTATION
- D3D11_1DDI_VIDEO_PROCESSOR_STEREO_CAPS
- D3D11_1DDI_VIDEO_PROCESSOR_STEREO_FLIP_MODE
- D3D11_1DDI_VIDEO_PROCESSOR_STEREO_FORMAT
- D3D11_1DDI_VIDEO_PROCESSOR_STREAM
- D3D11_1DDI_VIDEO_USAGE
- D3D11_1DDI_VIDEODEVICEFUNCS
- D3D11_1DDIARG_CREATEAUTHENTICATEDCHANNEL
- D3D11_1DDIARG_CREATECRYPTOSESSION
- D3D11_1DDIARG_CREATEVIDEODECODER
- D3D11_1DDIARG_CREATEVIDEODECODEROUTPUTVIEW
- D3D11_1DDIARG_CREATEVIDEOPROCESSOR
- D3D11_1DDIARG_CREATEVIDEOPROCESSORENUM
- D3D11_1DDIARG_CREATEVIDEOPROCESSORINPUTVIEW
- D3D11_1DDIARG_CREATEVIDEOPROCESSOROUTPUTVIEW
- D3D11_1DDIARG_SIGNATURE_ENTRY
- D3D11_1DDIARG_STAGE_IO_SIGNATURES
- D3D11_1DDIARG_TESSELLATION_IO_SIGNATURES
- D3D11_1DDIARG_VIDEODECODERBEGINFRAME
- D3D11_1DDIARG_VIDEODECODEREXTENSION
- D3D11_DDI_SHADER_MIN_PRECISION
- D3D11_DDI_SHADER_MIN_PRECISION_SUPPORT_DATA
- D3D11_DDI_VIDEO_DECODER_BUFFER_TYPE
- D3D11DDI_HANDLETYPE
- D3D11DDIARG_CREATEDEFERREDCONTEXT
- D3D11DDIARG_CREATERESOURCE
- D3DDDI_RESOURCEFLAGS2
- D3DDDIARG_CREATERESOURCE2
- DXVAHDDDI_ROTATION
- DXVAHDDDI_STREAM_STATE
- DXVAHDDDI_STREAM_STATE_ROTATION_DATA
- DXVAHDDDI_VPDEVCAPS
- FORMATOP
Hardware certification requirements
Direct3D 11 API support is required on all Windows 8 hardware.
For info on requirements that hardware devices must meet when they implement this feature, refer to the relevant WHCK documentation on Device.Graphics ¦ DX11 Video Decode FeatureLevel 9 and Device.Graphics ¦ DX11 VideoProcessing.
See WDDM 1.2 features for a review of features added with Windows 8.