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

See also

D3D12DDIARG_VIDEO_GETCAPS_0020

PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0