From 5338f4ba70903e7517bbfc7881e10ff13a912ffc Mon Sep 17 00:00:00 2001 From: Dudemanguy Date: Tue, 25 Feb 2025 22:39:17 -0600 Subject: [PATCH] sub/osd: remove bogus osd redraw notification resetting Added in 56616b0b013cbeae69555ae95ff577482e82bb1f. Note that it was called osd_draw then and not osd_render. Anyways, this line doesn't make any sense today because vo_gpu_next in fact does not call osd_draw (or any similar API) after this. Resetting the bool here instead seems to cause redraws to be missed. For the other handful of VOs that use this, there is no difference. They all use the mp_draw_sub_overlay call and the playloop appropriately takes care of the redraw notification value. Fixes #15963. --- sub/osd.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sub/osd.c b/sub/osd.c index b261832efb..75fbf90675 100644 --- a/sub/osd.c +++ b/sub/osd.c @@ -414,13 +414,6 @@ struct sub_bitmap_list *osd_render(struct osd_state *osd, struct mp_osd_res res, talloc_free(imgs); } - // If this is called with OSD_DRAW_SUB_ONLY or OSD_DRAW_OSD_ONLY set, assume - // it will always draw the complete OSD by doing multiple osd_draw() calls. - // OSD_DRAW_SUB_FILTER on the other hand is an evil special-case, and we - // must not reset the flag when it happens. - if (!(draw_flags & OSD_DRAW_SUB_FILTER)) - osd->want_redraw_notification = false; - double elapsed = MP_TIME_NS_TO_MS(mp_time_ns() - start_time); bool slow = elapsed > 5; mp_msg(osd->log, slow ? MSGL_DEBUG : MSGL_TRACE, "Spent %.3f ms in %s%s\n",