dxvaStructure.filter_level = pipe_vp9->picture_parameter.filter_level;
dxvaStructure.sharpness_level = pipe_vp9->picture_parameter.sharpness_level;
- bool use_last_frame_mvs = !pipe_vp9->picture_parameter.pic_fields.error_resilient_mode && pipe_vp9->picture_parameter.pic_fields.show_frame;
+ bool use_prev_in_find_mv_refs =
+ !pipe_vp9->picture_parameter.pic_fields.error_resilient_mode &&
+ !(pipe_vp9->picture_parameter.pic_fields.frame_type == 0 /*KEY_FRAME*/ || pipe_vp9->picture_parameter.pic_fields.intra_only) &&
+ pipe_vp9->picture_parameter.pic_fields.prev_show_frame &&
+ pipe_vp9->picture_parameter.frame_width == pipe_vp9->picture_parameter.prev_frame_width &&
+ pipe_vp9->picture_parameter.frame_height == pipe_vp9->picture_parameter.prev_frame_height;
+
dxvaStructure.wControlInfoFlags = (pipe_vp9->picture_parameter.mode_ref_delta_enabled << 0) |
(pipe_vp9->picture_parameter.mode_ref_delta_update << 1) |
- (use_last_frame_mvs << 2) |
+ (use_prev_in_find_mv_refs << 2) |
(0 << 3);
for (uint32_t i = 0; i < 4; i++)