gtkglsink crashes with Wayland
gst-plugins-good/tests/examples/gtk/gtkglsink
crashes when I'm running it in Wayland. Usually when trying to resize the window but it crashes right away if I start it inside gdb
.
I'm using Fedora 31 on a Lenovo X230.
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
Subsystem: Lenovo Device 21fa
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 32
Region 0: Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 5000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: i915
Kernel modules: i915
Thread 8 "gstglcontext" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd69ab700 (LWP 5408)]
dri2InvalidateDrawable (drawable=0x0) at ../src/mesa/drivers/dri/common/dri_util.c:848
848 drawable->dri2.stamp++;
Missing separate debuginfos, use: dnf debuginfo-install libdrm-2.4.100-1.fc31.x86_64 libgpg-error-1.36-2.fc31.x86_64 libjpeg-turbo-2.0.2-5.fc31.x86_64 libxshmfence-1.3-5.fc31.x86_64 pcre2-10.33-16.fc31.x86_64 pixman-0.38.4-1.fc31.x86_64 systemd-libs-243.4-1.fc31.x86_64 zlib-1.2.11-20.fc31.x86_64
(gdb) bt
#0 dri2InvalidateDrawable (drawable=0x0) at ../src/mesa/drivers/dri/common/dri_util.c:848
#1 0x00007fffd73fa970 in intelDrawBuffer (ctx=0x7fffc8003830) at ../src/mesa/drivers/dri/i965/intel_buffers.c:45
#2 intelDrawBuffer (ctx=0x7fffc8003830) at ../src/mesa/drivers/dri/i965/intel_buffers.c:36
#3 0x00007fffd7674411 in draw_buffer (no_error=false, caller=0x7fffd7c6453e "glDrawBuffer", buffer=1029, fb=0x7fffd7f2e100 <IncompleteFramebuffer>, ctx=0x7fffc8003830) at ../src/mesa/main/buffers.c:325
#4 draw_buffer_error (ctx=0x7fffc8003830, fb=0x7fffd7f2e100 <IncompleteFramebuffer>, buffer=1029, caller=0x7fffd7c6453e "glDrawBuffer") at ../src/mesa/main/buffers.c:336
#5 0x00007fffecf40f32 in gst_gl_memory_copy_teximage (src=0x7fffe0028c00, tex_id=4, out_target=<optimized out>, out_tex_format=<optimized out>, out_width=640, out_height=480)
at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c:757
#6 0x00007fffecf41238 in _gl_tex_copy_thread (context=<optimized out>, data=0x7fffd69aa900) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c:807
#7 0x00007fffecf36d38 in gst_gl_context_thread_add (context=0x7fffe0009af0 [GstGLContextEGL], func=func@entry=0x7fffecf41210 <_gl_tex_copy_thread>, data=data@entry=0x7fffd69aa900)
at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c:1584
#8 0x00007fffecf412e1 in gst_gl_memory_copy_into (gl_mem=gl_mem@entry=0x7fffe0028c00, tex_id=<optimized out>, target=<optimized out>, tex_format=<optimized out>, width=<optimized out>, height=<optimized out>)
at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.c:1005
#9 0x00007fffecf42355 in _gl_mem_copy (src=0x7fffe0028c00, offset=0, size=1228800) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.c:129
#10 0x00007fffecf2c5b4 in _mem_copy_gl (context=<optimized out>, transfer=0x7fffeedc2000) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasememory.c:408
#11 0x00007fffecf55193 in _run_message_sync (message=0x7fffeedc1f80) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c:598
#12 0x00007fffecf55132 in _run_message_async (message=message@entry=0x7f8b80) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c:665
#13 0x00007ffff7d5cdcb in g_idle_dispatch (source=source@entry=0x7fffe0013530, callback=0x7fffecf55120 <_run_message_async>, user_data=0x7f8b80) at ../glib/gmain.c:5617
#14 0x00007ffff7d604a0 in g_main_dispatch (context=0xb8bb30) at ../glib/gmain.c:3179
#15 g_main_context_dispatch (context=context@entry=0xb8bb30) at ../glib/gmain.c:3844
#16 0x00007ffff7d60830 in g_main_context_iterate (context=0xb8bb30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:3917
#17 0x00007ffff7d60b23 in g_main_loop_run (loop=0xa26330) at ../glib/gmain.c:4111
#18 0x00007fffecf37cc7 in gst_gl_context_create_thread (context=0x7fffe0009af0 [GstGLContextEGL]) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c:1320
#19 0x00007ffff7d89f52 in g_thread_proxy (data=0x994400) at ../glib/gthread.c:805
#20 0x00007ffff70b24e2 in start_thread (arg=<optimized out>) at pthread_create.c:479
#21 0x00007ffff7390693 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Valgrind:
==5435== Thread 7 gstglcontext:
==5435== Invalid read of size 4
==5435== at 0x12E53104: dri2InvalidateDrawable (dri_util.c:848)
==5435== by 0x12DD396F: intelDrawBuffer (intel_buffers.c:45)
==5435== by 0x12DD396F: intelDrawBuffer (intel_buffers.c:36)
==5435== by 0x1304D410: draw_buffer (buffers.c:325)
==5435== by 0x1304D410: draw_buffer_error (buffers.c:336)
==5435== by 0x12458F31: gst_gl_memory_copy_teximage (gstglmemory.c:757)
==5435== by 0x12459237: _gl_tex_copy_thread (gstglmemory.c:807)
==5435== by 0x1244ED37: gst_gl_context_thread_add (gstglcontext.c:1584)
==5435== by 0x124592E0: gst_gl_memory_copy_into (gstglmemory.c:1005)
==5435== by 0x1245A354: _gl_mem_copy (gstglmemorypbo.c:579)
==5435== by 0x124445B3: _mem_copy_gl (gstglbasememory.c:409)
==5435== by 0x1246D192: _run_message_sync (gstglwindow.c:598)
==5435== by 0x1246D131: _run_message_async (gstglwindow.c:665)
==5435== by 0x4A29DCA: g_idle_dispatch (gmain.c:5617)
==5435== by 0x4A2D49F: g_main_dispatch (gmain.c:3179)
==5435== by 0x4A2D49F: g_main_context_dispatch (gmain.c:3844)
==5435== by 0x4A2D82F: g_main_context_iterate.isra.0 (gmain.c:3917)
==5435== by 0x4A2DB22: g_main_loop_run (gmain.c:4111)
==5435== by 0x1244FCC6: gst_gl_context_create_thread (gstglcontext.c:1320)
==5435== by 0x4A56F51: g_thread_proxy (gthread.c:805)
==5435== by 0x57534E1: start_thread (pthread_create.c:479)
==5435== by 0x54BE692: clone (clone.S:95)
==5435== Address 0x30 is not stack'd, malloc'd or (recently) free'd