[Wayland-bugs] [Bug 106719] Blocking on wl_display_dispatch_queue when setting egl swap interval Zero

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed May 30 09:58:19 UTC 2018


https://bugs.freedesktop.org/show_bug.cgi?id=106719

            Bug ID: 106719
           Summary: Blocking on wl_display_dispatch_queue when setting egl
                    swap interval Zero
           Product: Wayland
           Version: unspecified
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: major
          Priority: medium
         Component: weston
          Assignee: wayland-bugs at lists.freedesktop.org
          Reporter: mohamed.sharaf-el-deen at bmw.de

Hello,
I am trying to run "weston-simple-egl" with command line parameter "-b Don't
sync to compositor redraw (eglSwapInterval 0)" on weston with command line
parameter "--use-pixman   Use the pixman (CPU) renderer".
This leads to the application "weston-simple-egl" blocking on
wl_display_dispatch_queue() inside eglSwapBuffers(). After that the applicaiton
stops updating forever.
>From observations (running the app several times) seems like the application
always blocks on the 4th call to eglSwapBuffers.

I can reproduce the problem with any program that uses eglSwapInterval(0).
I have strong feeling this should not happen especially because I am using egl
swap interval of Zero.

Is this normal behavior?
Please let me know if there is any more information I could provide.

If I run weston without "--use-pixman" or weston-simple-egl without "-b" the
problem does not happen.
Ubuntu version: 18.04 LTS (vanilla, with all updates installed)
Weston versions: 3.0.0 (the one I got installed using apt-get install)
                                 4.0.90 (latest master as of 29.05.2018)

Callstack of weston-simple-egl from GDB:
#0  0x00007ffff6d1bbf9 in __GI___poll (fds=0x7fffffffd7a0, nfds=1, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff75a33f9 in ?? () from
/usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#2  0x00007ffff75a4a3c in wl_display_dispatch_queue () from
/usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#3  0x00007ffff5f04a03 in dri2_wl_swrast_commit_backbuffer
(dri2_surf=0x5555558290d0) at
../../../src/egl/drivers/dri2/platform_wayland.c:1739
#4  dri2_wl_swrast_put_image2 (draw=0x555555968090, op=<optimized out>,
x=<optimized out>, y=0, w=<optimized out>, h=0, stride=1024,
data=0x7fffec5c2040 "", loaderPrivate=0x5555558290d0)
    at ../../../src/egl/drivers/dri2/platform_wayland.c:1869
#5  0x00007ffff5f04bed in dri2_wl_swrast_put_image (draw=<optimized out>,
op=<optimized out>, x=<optimized out>, y=<optimized out>, w=<optimized out>,
h=<optimized out>, data=0x7fffec5c2040 "", 
    loaderPrivate=0x5555558290d0) at
../../../src/egl/drivers/dri2/platform_wayland.c:1881
#6  0x00007ffff30d5066 in put_image (height=<optimized out>, width=<optimized
out>, data=<optimized out>, dPriv=<optimized out>) at
../../../../../src/gallium/state_trackers/dri/drisw.c:72
#7  drisw_put_image (drawable=<optimized out>, data=<optimized out>,
width=<optimized out>, height=<optimized out>) at
../../../../../src/gallium/state_trackers/dri/drisw.c:142
#8  0x00007ffff30d582a in drisw_present_texture (sub_box=0x0,
ptex=0x5555559c6410, dPriv=0x555555968090) at
../../../../../src/gallium/state_trackers/dri/drisw.c:165
#9  drisw_copy_to_front (ptex=0x5555559c6410, dPriv=0x555555968090) at
../../../../../src/gallium/state_trackers/dri/drisw.c:182
#10 drisw_swap_buffers (dPriv=0x555555968090) at
../../../../../src/gallium/state_trackers/dri/drisw.c:209
#11 0x00007ffff5f02706 in dri2_wl_swrast_swap_buffers (drv=<optimized out>,
disp=<optimized out>, draw=<optimized out>) at
../../../src/egl/drivers/dri2/platform_wayland.c:1891
#12 0x00007ffff5ef571e in eglSwapBuffers (dpy=0x555555767f90,
surface=<optimized out>) at ../../../src/egl/main/eglapi.c:1254
#13 0x00005555555580c9 in redraw (callback=0x0, time=0, data=0x7fffffffd960) at
clients/simple-egl.c:577
#14 main (argc=<optimized out>, argv=<optimized out>) at
clients/simple-egl.c:930


Output when running weston:
[09:14:16.337] weston 3.0.0
               http://wayland.freedesktop.org
               Bug reports to:
https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=weston&version=3.0.0
               Build: unknown (not built from git or tarball)
[09:14:16.338] Command line: weston --use-pixman
[09:14:16.338] OS: Linux, 4.15.0-22-generic, #24-Ubuntu SMP Wed May 16 12:15:17
UTC 2018, x86_64
[09:14:16.338] Starting with no config file.
[09:14:16.338] Output repaint window is 7 ms maximum.
[09:14:16.338] Loading module
'/usr/lib/x86_64-linux-gnu/libweston-3/x11-backend.so'
[09:14:16.347] Using pixman renderer
[09:14:16.370] Registered plugin API 'weston_windowed_output_api_v1' of size 16
[09:14:16.371] Found visual, bits per value: 8, red_mask: 00ff0000, green_mask:
0000ff00, blue_mask: 000000ff
[09:14:16.371] Visual depth is 24
[09:14:16.371] Found format for depth 24, bpp: 32
[09:14:16.371] Will use x8r8g8b8 format for SHM surfaces
[09:14:16.372] x11 output 1024x600, window id 44040197
[09:14:16.372] Compositor capabilities:
               arbitrary surface rotation: yes
               screen capture uses y-flip: yes
               presentation clock: CLOCK_MONOTONIC_RAW, id 4
               presentation clock resolution: 0.000000001 s
[09:14:16.372] Loading module
'/usr/lib/x86_64-linux-gnu/weston/desktop-shell.so'
[09:14:16.373] launching '/usr/lib/weston/weston-keyboard'
[09:14:16.373] launching '/usr/lib/weston/weston-desktop-shell'

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-bugs/attachments/20180530/ca88be63/attachment.html>


More information about the wayland-bugs mailing list