display lock starvation: non-responsive resizing, mouse, keyboard, 360
Hi,
The controls / mouse events are probably stalled and fighting for the display_lock.
Tested on wayland with xdg-shell and opengl display.
f1bf7ce5b4480a3d38d54c7ae1d1564f0670d83f is the first bad commit
commit f1bf7ce5b4480a3d38d54c7ae1d1564f0670d83f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date: Thu Jan 21 12:44:34 2021 +0100
video_output: only get the next decoded picture when the current one is late
If displayed.current is bound to be displayed late, we look for the next
decoded (+statically filtered) picture that is not late.
We do not preemptively store the next picture in displayed.next anymore. If we
get a new picture we will overwrite displayed.current with it.
The date_refresh (new deadline) is computed once we know if we are using a new
picture or program a redisplay of the current one.
src/video_output/video_output.c | 64 +++++++++++++++++++++--------------------
1 file changed, 33 insertions(+), 31 deletions(-)
╰─$ git bisect log 130 ↵
git bisect start
# bad: [66d3b37c179917179c0c696a20891f150dbdd7c3] viewpoint: use quaternion instead of euler angles
git bisect bad 66d3b37c179917179c0c696a20891f150dbdd7c3
# good: [e3ae28bcb236c51a3a1102354d93901b40e91e55] demux: adaptive: fix commands comparison
git bisect good e3ae28bcb236c51a3a1102354d93901b40e91e55
# bad: [f87fa614d50620a984841cdd4f036245b8ec08ac] qml: change spacing and margins in ControlBar
git bisect bad f87fa614d50620a984841cdd4f036245b8ec08ac
# good: [da986038c623a8979719d6f44ae71eeab4754a82] transcode: video: inline fps check
git bisect good da986038c623a8979719d6f44ae71eeab4754a82
# bad: [94ac0cb17c262a0f7f3ee1c929ac51da4abc3895] os2: thread: make VLC_THREAD_PRIORITY_XXX macros constant
git bisect bad 94ac0cb17c262a0f7f3ee1c929ac51da4abc3895
# good: [d0a49a87f82e5348e1e7d0bd94d319e73b9efc2b] ios: move caeagl implementation out of display
git bisect good d0a49a87f82e5348e1e7d0bd94d319e73b9efc2b
# good: [fe9013b3d4faed8d1af39dd41e5f9768b786a66a] video_output: the reuse of previously decoded picture is unlikely
git bisect good fe9013b3d4faed8d1af39dd41e5f9768b786a66a
# bad: [4ec95bb1668140f7022736ca0221e13c2cac98a8] video_output: remove always NULL displayed.next
git bisect bad 4ec95bb1668140f7022736ca0221e13c2cac98a8
# good: [e73099ccca6c453595f1038f42e089c9ad4d09fb] video_output: defactorize the first displayed.current filling
git bisect good e73099ccca6c453595f1038f42e089c9ad4d09fb
# bad: [f1bf7ce5b4480a3d38d54c7ae1d1564f0670d83f] video_output: only get the next decoded picture when the current one is late
git bisect bad f1bf7ce5b4480a3d38d54c7ae1d1564f0670d83f
# good: [8094e821e8feb5d16372b9fcae8d8d7dceecf4e5] video_output: rework the frame by frame mode picture picking
git bisect good 8094e821e8feb5d16372b9fcae8d8d7dceecf4e5
# first bad commit: [f1bf7ce5b4480a3d38d54c7ae1d1564f0670d83f] video_output: only get the next decoded picture when the current one is late
Edited by Alexandre Janniaux