}
 }
 
+void dcn20_get_mpctree_visual_confirm_color(
+               struct pipe_ctx *pipe_ctx,
+               struct tg_color *color)
+{
+       const struct tg_color pipe_colors[6] = {
+                       {MAX_TG_COLOR_VALUE, 0, 0}, // red
+                       {MAX_TG_COLOR_VALUE, 0, MAX_TG_COLOR_VALUE}, // yellow
+                       {0, MAX_TG_COLOR_VALUE, 0}, // blue
+                       {MAX_TG_COLOR_VALUE / 2, 0, MAX_TG_COLOR_VALUE / 2}, // purple
+                       {0, 0, MAX_TG_COLOR_VALUE}, // green
+                       {MAX_TG_COLOR_VALUE, MAX_TG_COLOR_VALUE * 2 / 3, 0}, // orange
+       };
+
+       struct pipe_ctx *top_pipe = pipe_ctx;
+
+       while (top_pipe->top_pipe) {
+               top_pipe = top_pipe->top_pipe;
+       }
+
+       *color = pipe_colors[top_pipe->pipe_idx];
+}
+
 static void dcn20_update_mpcc(struct dc *dc, struct pipe_ctx *pipe_ctx)
 {
        struct hubp *hubp = pipe_ctx->plane_res.hubp;
        } else if (dc->debug.visual_confirm == VISUAL_CONFIRM_SURFACE) {
                dcn10_get_surface_visual_confirm_color(
                                pipe_ctx, &blnd_cfg.black_color);
+       } else if (dc->debug.visual_confirm == VISUAL_CONFIRM_MPCTREE) {
+               dcn20_get_mpctree_visual_confirm_color(
+                               pipe_ctx, &blnd_cfg.black_color);
        }
 
        if (per_pixel_alpha)
 
        struct pipe_ctx *pipe_ctx, const struct dc_plane_state *plane_state);
 bool dcn20_set_shaper_3dlut(
        struct pipe_ctx *pipe_ctx, const struct dc_plane_state *plane_state);
-
+void dcn20_get_mpctree_visual_confirm_color(
+               struct pipe_ctx *pipe_ctx,
+               struct tg_color *color);
 #endif /* __DC_HWSS_DCN20_H__ */