diff --git a/src/intel/vulkan_hasvk/genX_video.c b/src/intel/vulkan_hasvk/genX_video.c index ef04013..fcc7efd 100644 --- a/src/intel/vulkan_hasvk/genX_video.c +++ b/src/intel/vulkan_hasvk/genX_video.c @@ -212,10 +212,14 @@ anv_h264_decode_video(struct anv_cmd_buffer *cmd_buffer, } #endif + uint32_t pic_height = sps->pic_height_in_map_units_minus1 + 1; + if (!sps->flags.frame_mbs_only_flag) + pic_height *= 2; + anv_batch_emit(&cmd_buffer->batch, GENX(MFX_AVC_IMG_STATE), avc_img) { avc_img.FrameWidth = sps->pic_width_in_mbs_minus1; - avc_img.FrameHeight = sps->pic_height_in_map_units_minus1; - avc_img.FrameSize = (sps->pic_width_in_mbs_minus1 + 1) * (sps->pic_height_in_map_units_minus1 + 1); + avc_img.FrameHeight = pic_height - 1; + avc_img.FrameSize = (sps->pic_width_in_mbs_minus1 + 1) * pic_height; if (!h264_pic_info->pStdPictureInfo->flags.field_pic_flag) avc_img.ImageStructure = FramePicture;