d3d12: Implement cap for PIPE_VIDEO_CAP_ENC_INTRA_REFRESH

Fixes: c81967fa89 ("d3d12: Implement Intra Refresh for H264, HEVC, AV1")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27201>
(cherry picked from commit a3c91624f487ee7676dfce0f8ed4e4c87ce2c0a2)
This commit is contained in:
Sil Vilerino 2024-01-22 13:44:30 -05:00 committed by Eric Engestrom
parent 2e4623bd19
commit 8039f6a525
2 changed files with 10 additions and 1 deletions

View file

@ -244,7 +244,7 @@
"description": "d3d12: Implement cap for PIPE_VIDEO_CAP_ENC_INTRA_REFRESH", "description": "d3d12: Implement cap for PIPE_VIDEO_CAP_ENC_INTRA_REFRESH",
"nominated": true, "nominated": true,
"nomination_type": 1, "nomination_type": 1,
"resolution": 0, "resolution": 1,
"main_sha": null, "main_sha": null,
"because_sha": "c81967fa89d918e11107cc787ae70bf32cc56a56", "because_sha": "c81967fa89d918e11107cc787ae70bf32cc56a56",
"notes": null "notes": null

View file

@ -1718,6 +1718,7 @@ d3d12_screen_get_video_param_encode(struct pipe_screen *pscreen,
case PIPE_VIDEO_CAP_ENC_MAX_TILE_ROWS: case PIPE_VIDEO_CAP_ENC_MAX_TILE_ROWS:
case PIPE_VIDEO_CAP_ENC_MAX_TILE_COLS: case PIPE_VIDEO_CAP_ENC_MAX_TILE_COLS:
case PIPE_VIDEO_CAP_ENC_INTRA_REFRESH_MAX_DURATION: case PIPE_VIDEO_CAP_ENC_INTRA_REFRESH_MAX_DURATION:
case PIPE_VIDEO_CAP_ENC_INTRA_REFRESH:
case PIPE_VIDEO_CAP_ENC_H264_DISABLE_DBK_FILTER_MODES_SUPPORTED: case PIPE_VIDEO_CAP_ENC_H264_DISABLE_DBK_FILTER_MODES_SUPPORTED:
case PIPE_VIDEO_CAP_ENC_H264_SUPPORTS_CABAC_ENCODE: case PIPE_VIDEO_CAP_ENC_H264_SUPPORTS_CABAC_ENCODE:
case PIPE_VIDEO_CAP_ENC_ROI: case PIPE_VIDEO_CAP_ENC_ROI:
@ -1768,6 +1769,14 @@ d3d12_screen_get_video_param_encode(struct pipe_screen *pscreen,
return maxReferencesPerFrame; return maxReferencesPerFrame;
} else if (param == PIPE_VIDEO_CAP_ENC_INTRA_REFRESH_MAX_DURATION) { } else if (param == PIPE_VIDEO_CAP_ENC_INTRA_REFRESH_MAX_DURATION) {
return maxIRDuration; return maxIRDuration;
} else if (param == PIPE_VIDEO_CAP_ENC_INTRA_REFRESH) {
return (maxIRDuration == 0) ? 0 :
(PIPE_VIDEO_ENC_INTRA_REFRESH_ROW |
PIPE_VIDEO_ENC_INTRA_REFRESH_ADAPTIVE |
PIPE_VIDEO_ENC_INTRA_REFRESH_CYCLIC |
PIPE_VIDEO_ENC_INTRA_REFRESH_P_FRAME |
PIPE_VIDEO_ENC_INTRA_REFRESH_B_FRAME |
PIPE_VIDEO_ENC_INTRA_REFRESH_MULTI_REF);
} else if (param == PIPE_VIDEO_CAP_ENC_SUPPORTS_MAX_FRAME_SIZE) { } else if (param == PIPE_VIDEO_CAP_ENC_SUPPORTS_MAX_FRAME_SIZE) {
return isRCMaxFrameSizeSupported; return isRCMaxFrameSizeSupported;
} else if (param == PIPE_VIDEO_CAP_ENC_HEVC_FEATURE_FLAGS) { } else if (param == PIPE_VIDEO_CAP_ENC_HEVC_FEATURE_FLAGS) {