unsigned int i, pipe_idx;
        struct pipe_ctx *pipe;
        uint32_t phantom_vactive, phantom_bp, pstate_width_fw_delay_lines;
+       unsigned int num_dpp;
        unsigned int vlevel = context->bw_ctx.dml.vba.VoltageLevel;
        unsigned int dcfclk = context->bw_ctx.dml.vba.DCFCLKState[vlevel][context->bw_ctx.dml.vba.maxMpcComb];
        unsigned int socclk = context->bw_ctx.dml.vba.SOCCLKPerState[vlevel];
+       struct vba_vars_st *vba = &context->bw_ctx.dml.vba;
 
        dc_assert_fp_enabled();
 
        phantom_vactive = get_subviewport_lines_needed_in_mall(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx) +
                                pstate_width_fw_delay_lines + dc->caps.subvp_swath_height_margin_lines;
 
+       // W/A for DCC corruption with certain high resolution timings.
+       // Determing if pipesplit is used. If so, add meta_row_height to the phantom vactive.
+       num_dpp = vba->NoOfDPP[vba->VoltageLevel][vba->maxMpcComb][vba->pipe_plane[pipe_idx]];
+       phantom_vactive += num_dpp > 1 ? vba->meta_row_height[vba->pipe_plane[pipe_idx]] : 0;
+
        // For backporch of phantom pipe, use vstartup of the main pipe
        phantom_bp = get_vstartup(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);