diff --git a/src/gallium/drivers/radeonsi/radeon_vce.h b/src/gallium/drivers/radeonsi/radeon_vce.h index e57521b0487..7ab422e4d8f 100644 --- a/src/gallium/drivers/radeonsi/radeon_vce.h +++ b/src/gallium/drivers/radeonsi/radeon_vce.h @@ -173,8 +173,15 @@ struct rvce_enc_operation { uint32_t enc_input_pic_luma_pitch; uint32_t enc_input_pic_chroma_pitch; ; - uint32_t enc_input_pic_addr_array; - uint32_t enc_input_pic_addr_array_disable2pipe_disablemboffload; + union { + struct { + uint8_t enc_input_pic_addr_mode; + uint8_t enc_input_pic_swizzle_mode; + uint8_t enc_disable_two_pipe_mode; + uint8_t enc_disable_mb_offloading; + }; + uint32_t enc_input_pic_addr_array_disable2pipe_disablemboffload; + }; uint32_t enc_input_pic_tile_config; uint32_t enc_pic_type; uint32_t enc_idr_flag; diff --git a/src/gallium/drivers/radeonsi/radeon_vce_52.c b/src/gallium/drivers/radeonsi/radeon_vce_52.c index ea2d56f4e11..964c82477f2 100644 --- a/src/gallium/drivers/radeonsi/radeon_vce_52.c +++ b/src/gallium/drivers/radeonsi/radeon_vce_52.c @@ -372,12 +372,10 @@ static void encode(struct rvce_encoder *enc) RVCE_CS(align(enc->luma->u.gfx9.surf_height, 16)); // encInputFrameYPitch RVCE_CS(enc->luma->u.gfx9.surf_pitch * enc->luma->bpe); // encInputPicLumaPitch RVCE_CS(enc->chroma->u.gfx9.surf_pitch * enc->chroma->bpe); // encInputPicChromaPitch + enc->enc_pic.eo.enc_input_pic_swizzle_mode = enc->luma->u.gfx9.swizzle_mode; } - if (enc->dual_pipe) - enc->enc_pic.eo.enc_input_pic_addr_array_disable2pipe_disablemboffload = 0x00000000; - else - enc->enc_pic.eo.enc_input_pic_addr_array_disable2pipe_disablemboffload = 0x00010000; + enc->enc_pic.eo.enc_disable_two_pipe_mode = !enc->dual_pipe; RVCE_CS(enc->enc_pic.eo.enc_input_pic_addr_array_disable2pipe_disablemboffload); RVCE_CS(enc->enc_pic.eo.enc_input_pic_tile_config); RVCE_CS(enc->enc_pic.picture_type); // encPicType