From 0577c77a4c5c968673eed8186087df0f3b417c00 Mon Sep 17 00:00:00 2001 From: Sil Vilerino Date: Thu, 16 Jan 2025 09:59:42 -0500 Subject: [PATCH] d3d12: Report pipe_enc_cap_roi.log2_roi_min_block_pixel_size Reviewed-By: Pohsiang Hsu Part-of: --- src/gallium/drivers/d3d12/d3d12_video_screen.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/d3d12/d3d12_video_screen.cpp b/src/gallium/drivers/d3d12/d3d12_video_screen.cpp index 23f6c3d7620..0135e3d147b 100644 --- a/src/gallium/drivers/d3d12/d3d12_video_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_video_screen.cpp @@ -965,6 +965,7 @@ d3d12_has_video_encode_support(struct pipe_screen *pscreen, memset(&roi_support, 0, sizeof(roi_support)); roi_support.bits.roi_rc_qp_delta_support = ((capEncoderSupportData1.SupportFlags & D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE) != 0) ? 1 : 0; roi_support.bits.num_roi_regions = roi_support.bits.roi_rc_qp_delta_support ? PIPE_ENC_ROI_REGION_NUM_MAX : 0; + roi_support.bits.log2_roi_min_block_pixel_size = static_cast(std::log2(capEncoderSupportData1.pResolutionDependentSupport[0].QPMapRegionPixelsSize)); supportsProfile = d3d12_video_encode_get_h264_codec_support(profDesc, spD3D12VideoDevice.Get(), @@ -1242,6 +1243,7 @@ d3d12_has_video_encode_support(struct pipe_screen *pscreen, memset(&roi_support, 0, sizeof(roi_support)); roi_support.bits.roi_rc_qp_delta_support = ((capEncoderSupportData1.SupportFlags & D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE) != 0) ? 1 : 0; roi_support.bits.num_roi_regions = roi_support.bits.roi_rc_qp_delta_support ? PIPE_ENC_ROI_REGION_NUM_MAX : 0; + roi_support.bits.log2_roi_min_block_pixel_size = static_cast(std::log2(capEncoderSupportData1.pResolutionDependentSupport[0].QPMapRegionPixelsSize)); } } } break; @@ -1507,6 +1509,7 @@ d3d12_has_video_encode_support(struct pipe_screen *pscreen, memset(&roi_support, 0, sizeof(roi_support)); roi_support.bits.roi_rc_qp_delta_support = ((capEncoderSupportData1.SupportFlags & D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE) != 0) ? 1 : 0; roi_support.bits.num_roi_regions = roi_support.bits.roi_rc_qp_delta_support ? PIPE_ENC_ROI_REGION_NUM_MAX : 0; + roi_support.bits.log2_roi_min_block_pixel_size = static_cast(std::log2(capEncoderSupportData1.pResolutionDependentSupport[0].QPMapRegionPixelsSize)); } } } break;