Crash with misbehaving wayland compositor that doesn't send wl_buffer.release
If the compositor doesn't send any wl_buffer.release
at all, swrast crashes. I didn't test this with other drivers.
Ideally mesa should report an error, or maybe just wait indefinitely.
Stack trace:
#0 0x00007fc74cfce619 in dri2_wl_swrast_get_backbuffer_data (dri2_surf=0x5559876b8f40)
at ../mesa-23.0.0/src/egl/drivers/dri2/platform_wayland.c:2437
#1 dri2_wl_swrast_put_image2 (draw=0x5559876aca30, op=<optimized out>, x=<optimized out>, y=0, w=<optimized out>,
h=320, stride=1792, data=0x7fc7380db040 "", loaderPrivate=0x5559876b8f40)
at ../mesa-23.0.0/src/egl/drivers/dri2/platform_wayland.c:2552
#2 0x00007fc74cfceab8 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=0x7fc7380db040 "", loaderPrivate=0x5559876b8f40)
at ../mesa-23.0.0/src/egl/drivers/dri2/platform_wayland.c:2588
#3 0x00007fc747dea125 in put_image (height=<optimized out>, width=<optimized out>, data=<optimized out>,
drawable=<optimized out>) at ../mesa-23.0.0/src/gallium/frontends/dri/drisw.c:63
#4 drisw_put_image (drawable=<optimized out>, data=<optimized out>, width=<optimized out>, height=<optimized out>)
at ../mesa-23.0.0/src/gallium/frontends/dri/drisw.c:166
#5 0x00007fc747dec98f in drisw_present_texture (sub_box=0x0, ptex=0x5559877d1090, drawable=0x5559876aca30,
pipe=<optimized out>) at ../mesa-23.0.0/src/gallium/frontends/dri/drisw.c:196
#6 drisw_copy_to_front (ptex=0x5559877d1090, drawable=0x5559876aca30, pipe=<optimized out>)
at ../mesa-23.0.0/src/gallium/frontends/dri/drisw.c:212
#7 drisw_swap_buffers (drawable=0x5559876aca30) at ../mesa-23.0.0/src/gallium/frontends/dri/drisw.c:258
#8 0x00007fc74cfd4c1b in dri2_wl_swrast_swap_buffers (disp=0x5559873d00f0, draw=0x5559876b8f40)
at ../mesa-23.0.0/src/egl/drivers/dri2/platform_wayland.c:2601
#9 0x00007fc74cfbd494 in dri2_swap_buffers (disp=0x5559873d00f0, surf=0x5559876b8f40)
at ../mesa-23.0.0/src/egl/drivers/dri2/egl_dri2.c:1842
#10 0x00007fc74cfaad32 in eglSwapBuffers (dpy=<optimized out>, surface=0x5559876b8f40)
at ../mesa-23.0.0/src/egl/main/eglapi.c:1468
#11 0x0000555987382e58 in draw (window=0x555987387400 <window>) at ../src/egl/eglut/eglut_wayland.c:240
#12 0x0000555987382f0f in _eglutNativeEventLoop () at ../src/egl/eglut/eglut_wayland.c:268
#13 0x0000555987381e3d in eglutMainLoop () at ../src/egl/eglut/eglut.c:267
#14 0x0000555987381479 in main (argc=1, argv=0x7fff283ceae8) at ../src/egl/opengl/eglgears.c:298
Edited by yshui