Work around performance regression in mpv's osd
In mpv-player/mpv@0728726251, a strcmp on the previously displayed and the new text has been removed, causing excessive GPU usage especially on idle frames when playback was paused. I will submit a patch to upstream, but mpv versions 0.31 & 0.32 are already affected by this. See torque/mpv-progressbar#56 for a similar report to a different script.
This commit is contained in:
parent
23ca271ff9
commit
2d6d4b43ce
@ -133,6 +133,7 @@ function add_chat(chat_message, mood)
|
|||||||
chat_log[entry] = { xpos=CANVAS_WIDTH, timecreated=mp.get_time(), text=tostring(chat_message), row=row }
|
chat_log[entry] = { xpos=CANVAS_WIDTH, timecreated=mp.get_time(), text=tostring(chat_message), row=row }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local old_ass_text = ''
|
||||||
function chat_update()
|
function chat_update()
|
||||||
local ass = assdraw.ass_new()
|
local ass = assdraw.ass_new()
|
||||||
local chat_ass = ''
|
local chat_ass = ''
|
||||||
@ -179,7 +180,14 @@ function chat_update()
|
|||||||
ass:append(input_ass())
|
ass:append(input_ass())
|
||||||
ass:append(chat_ass)
|
ass:append(chat_ass)
|
||||||
end
|
end
|
||||||
mp.set_osd_ass(CANVAS_WIDTH,CANVAS_HEIGHT, ass.text)
|
|
||||||
|
-- The commit that introduced the new API removed the internal heuristics on whether a refresh is required,
|
||||||
|
-- so we check for changed text manually to not cause excessive GPU load
|
||||||
|
-- https://github.com/mpv-player/mpv/commit/07287262513c0d1ea46b7beaf100e73f2008295f#diff-d88d582039dea993b6229da9f61ba76cL530
|
||||||
|
if ass.text ~= old_ass_text then
|
||||||
|
mp.set_osd_ass(CANVAS_WIDTH,CANVAS_HEIGHT, ass.text)
|
||||||
|
old_ass_text = ass.text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function process_alert_osd()
|
function process_alert_osd()
|
||||||
@ -982,4 +990,4 @@ function set_syncplayintf_options(input)
|
|||||||
end
|
end
|
||||||
chat_format = get_output_style()
|
chat_format = get_output_style()
|
||||||
readyMpvAfterSettingsKnown()
|
readyMpvAfterSettingsKnown()
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user