diff --git a/src/gallium/drivers/d3d12/d3d12_video_enc.cpp b/src/gallium/drivers/d3d12/d3d12_video_enc.cpp index 51ee7f299d0..9d6094bf32f 100644 --- a/src/gallium/drivers/d3d12/d3d12_video_enc.cpp +++ b/src/gallium/drivers/d3d12/d3d12_video_enc.cpp @@ -5149,7 +5149,7 @@ int d3d12_video_encoder_get_encode_headers([[maybe_unused]] struct pipe_video_co [[maybe_unused]] void* bitstream_buf, [[maybe_unused]] unsigned *bitstream_buf_size) { -#if (VIDEO_CODEC_H264ENC || VIDEO_CODEC_H265ENC) +#if (VIDEO_CODEC_H264ENC || VIDEO_CODEC_H265ENC || VIDEO_CODEC_AV1ENC) struct d3d12_video_encoder *pD3D12Enc = (struct d3d12_video_encoder *) codec; D3D12_VIDEO_SAMPLE srcTextureDesc = {}; srcTextureDesc.Width = pD3D12Enc->base.width; @@ -5166,6 +5166,10 @@ int d3d12_video_encoder_get_encode_headers([[maybe_unused]] struct pipe_video_co #if VIDEO_CODEC_H265ENC if (u_reduce_video_profile(pD3D12Enc->base.profile) == PIPE_VIDEO_FORMAT_HEVC) pD3D12Enc->m_upBitstreamBuilder = std::make_unique(); +#endif +#if VIDEO_CODEC_AV1ENC + if (u_reduce_video_profile(pD3D12Enc->base.profile) == PIPE_VIDEO_FORMAT_AV1) + pD3D12Enc->m_upBitstreamBuilder = std::make_unique(); #endif } bool postEncodeHeadersNeeded = false; diff --git a/src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp b/src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp index ec3982ec554..984abb85fe4 100644 --- a/src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp +++ b/src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp @@ -1063,7 +1063,7 @@ d3d12_video_encoder_update_current_encoder_config_state_av1(struct d3d12_video_e pD3D12Enc->m_currentEncodeConfig.m_encoderCodecDesc = D3D12_VIDEO_ENCODER_CODEC_AV1; // Set input format - DXGI_FORMAT targetFmt = srcTextureDesc.Format.Format; + DXGI_FORMAT targetFmt = d3d12_convert_pipe_video_profile_to_dxgi_format(pD3D12Enc->base.profile); if (pD3D12Enc->m_currentEncodeConfig.m_encodeFormatInfo.Format != targetFmt) { pD3D12Enc->m_currentEncodeConfig.m_ConfigDirtyFlags |= d3d12_video_encoder_config_dirty_flag_input_format;