D3D12DDICAPS_VIDEO_ENCODER_SUPPORT1_DATA_0096 structure (d3d12umddi.h)
The D3D12DDICAPS_VIDEO_ENCODER_SUPPORT1_DATA_0096 structure provides the driver's support details for the requested input configurations.
Syntax
typedef struct D3D12DDICAPS_VIDEO_ENCODER_SUPPORT1_DATA_0096 {
UINT NodeIndex;
D3D12DDI_VIDEO_ENCODER_CODEC_0080 Codec;
DXGI_FORMAT InputFormat;
D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_0082_0 CodecConfiguration;
D3D12DDI_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_0082_0 CodecGopSequence;
D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_0080_2 RateControl;
D3D12DDI_VIDEO_ENCODER_INTRA_REFRESH_MODE_0080 IntraRefresh;
D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0080 SubregionFrameEncoding;
UINT ResolutionsListCount;
const D3D12DDI_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC_0080 *pResolutionList;
UINT MaxReferenceFramesInDPB;
D3D12DDI_VIDEO_ENCODER_VALIDATION_FLAGS_0082_0 ValidationFlags;
D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAGS_0083_0 SupportFlags;
D3D12DDI_VIDEO_ENCODER_PROFILE_DESC_0080_2 SuggestedProfile;
D3D12DDI_VIDEO_ENCODER_LEVEL_SETTING_0080_2 SuggestedLevel;
D3D12DDI_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS_0080_2 *pResolutionDependentSupport;
D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_0080_2 SubregionFrameEncodingData;
UINT MaxQualityVsSpeed;
} D3D12DDICAPS_VIDEO_ENCODER_SUPPORT1_DATA_0096;
Members
NodeIndex
[in] In a multi-adapter operation, NodeIndex indicates which physical adapter of the device that the operation applies to.
Codec
[in] A D3D12DDI_VIDEO_ENCODER_CODEC_0080 value that specifies the encode codec to use.
InputFormat
[in] A DXGI_FORMAT value that specifies the input format of the input frames.
CodecConfiguration
[in] A D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_0082_0 structure that specifies the requested configuration for the selected codec. The codec-specific structure within this structure should match the codec type specified by Codec.
CodecGopSequence
[in] A D3D12DDI_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_0082_0 structure that specifies the requested group of pictures (GOP) configuration for the selected codec. The codec-specific structure within this structure should match the codec type specified by Codec.
RateControl
[in] A D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_0080_2 structure that specifies the requested rate control configuration.
IntraRefresh
[in] A D3D12DDI_VIDEO_ENCODER_INTRA_REFRESH_MODE_0080 value that specifies the requested intra refresh mode.
SubregionFrameEncoding
[in] A D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0080 value that specifies the requested subregion partitioning mode.
ResolutionsListCount
[in] Indicates the number of resolutions in the list that pResolutionList points to.
pResolutionList
[in] Pointer to an array of D3D12DDI_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC_0080 structures that specifies the list of resolutions requested to be supported.
MaxReferenceFramesInDPB
[in] The maximum number of previous reference frames to be used when calling EncodeFrame for inter-frames. This value is used to calculate the suggested level.
ValidationFlags
[out] A D3D12DDI_VIDEO_ENCODER_VALIDATION_FLAGS_0082_0 value
SupportFlags
[out] A D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAGS_0083_0 value that specifies the support details for the requested configuration.
SuggestedProfile
[out] A D3D12DDI_VIDEO_ENCODER_PROFILE_DESC_0080_2 structure in which the driver returns the matching profile for the requested configuration.
SuggestedLevel
[out] A D3D12DDI_VIDEO_ENCODER_PROFILE_DESC_0080_2 structure in which the driver returns the matching profile for the requested configuration.
pResolutionDependentSupport
[out] Pointer to a list of D3D12DDI_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS_0080_2 structures in which the driver returns the resolution-dependent support limits.
SubregionFrameEncodingData
[in] A D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_0080_2 structure that specifies the subregion layout data for the frame. The driver uses this value to calculate SuggestedLevel in codecs that have subregion constraints per level. It's also used for related validation with the D3D12DDI_VIDEO_ENCODER_VALIDATION_FLAG_0095_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED flag.
MaxQualityVsSpeed
[out] The maximum quality vs speed trade-off value that the driver supports. This value is used as the maximum value allowed for the QualityVsSpeed parameter in the rate control structures. This value must be reported as zero if the driver doesn't set D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAG_0096_RATE_CONTROL_QUALITY_VS_SPEED_AVAILABLE.
Remarks
D3D12DDICAPS_VIDEO_ENCODER_SUPPORT1_DATA_0096 extends on the previous D3D12DDICAPS_VIDEO_ENCODER_SUPPORT_DATA_0083_0 query, with new parameters added at the bottom of it. This new query can be used with all H264, HEVC and AV1 codecs and must behave exactly as D3D12DDICAPS_VIDEO_ENCODER_SUPPORT_DATA_0083_0's semantics.
The previous D3D12DDICAPS_VIDEO_ENCODER_SUPPORT_DATA_0083_0 structure doesn't work for AV1 codec input.
See D3D12 AV1 video encoding for more information.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 11, version 24H2 (WDDM 3.2) |
Header | d3d12umddi.h |