Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information