Segmentation fault with webgl platform

Charles peacech at gmail.com
Thu Feb 15 23:56:22 GMT 2024


WebGL streaming only works for QtQuick widgets (
https://www.qt.io/blog/2018/11/23/qt-quick-webgl-release-512).

On Fri, Feb 16, 2024 at 2:26 AM Valentin Valls <valentin.valls at esrf.fr>
wrote:

> Hi,
>
> I try to take a look at PyQt with webgl platform plugin.
>
> I have tested multiple version of PyQt but i always get the same
> segmentation fault.
>
> My operating system is a Debian 10, and i have tried with python 3.9 and
> 3.10 (from conda).
>
> Any idea if that could be a problem with PyQt or with my machine or env?
>
>
> Here is my app.py
> import sys
> from PyQt5 import Qt
> app = Qt.QApplication(sys.argv)
> w = Qt.QMainWindow()
> w.show()
> app.exec()
>
> Here is the last PyQt version i have tested
>
> $ pip install pyqt5
>
>   Downloading PyQt5-5.15.10-cp37-abi3-manylinux_2_17_x86_64.whl.metadata
> (2.1 kB)
>   Downloading
> PyQt5_sip-12.13.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata
> (504 bytes)
>   Downloading PyQt5_Qt5-5.15.2-py3-none-manylinux2014_x86_64.whl (59.9 MB)
>
> Here is the execution
>
> $ export QSG_INFO=1
> $ export QT_QPA_EGLFS_DEBUG=1
> $ export QT_LOGGING_RULES=qt.qpa.*=true
> $ python app.py -platform webgl:port=8081
>
> Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use
> QT_QPA_PLATFORM=wayland to run on Wayland anyway.
> qt.qpa.webgl: WebGL QPA Plugin created
> qt.qpa.input.methods.serialize: QIBusEngineDesc::fromDBusArgument()
> "(sa{sv}ssssssssussssssss)"
> qt.qpa.input.methods: socketWatcher.addPath
> "/home/valentin/.config/ibus/bus/ac70eafeeafc44c6af5896660704e451-unix-wayland-0"
> qt.qpa.webgl.httpserver: Listening in port 8081
> qt.qpa.webgl: Creating platform window for: 0x55d890722db0
> qt.qpa.webgl: WebGL QPA platform plugin: Raster surfaces are not supported
> Erreur de segmentation
>
> And here is the backtrace
>
> $ gdb --args python app.py -platform webgl:port=8081
>
> GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
> Copyright (C) 2021 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <
> http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Type "show copying" and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <https://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
>     <http://www.gnu.org/software/gdb/documentation/>.
>
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from python...
> (gdb) r
> Starting program: /home/valentin/Software/miniconda3/envs/qt/bin/python
> bbbb.py -platform webgl:port=8081
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use
> QT_QPA_PLATFORM=wayland to run on Wayland anyway.
> qt.qpa.webgl: WebGL QPA Plugin created
> [New Thread 0x7fffea466700 (LWP 10315)]
> qt.qpa.input.methods.serialize: QIBusEngineDesc::fromDBusArgument()
> "(sa{sv}ssssssssussssssss)"
> qt.qpa.input.methods: socketWatcher.addPath
> "/home/valentin/.config/ibus/bus/ac70eafeeafc44c6af5896660704e451-unix-wayland-0"
> qt.qpa.webgl.httpserver: Listening in port 8081
> [New Thread 0x7fffe9c65700 (LWP 10317)]
> qt.qpa.webgl: Creating platform window for: 0x555555cefd80
> qt.qpa.webgl: WebGL QPA platform plugin: Raster surfaces are not supported
>
> Thread 1 "python" received signal SIGSEGV, Segmentation fault.
> 0x00007ffff2e98ac0 in
> QPlatformBackingStore::setBackingStore(QBackingStore*) ()
>    from
> /home/valentin/Software/miniconda3/envs/qt/lib/python3.10/site-packages/PyQt5/Qt5/lib/libQt5Gui.so.5
> (gdb) bt
> #0  0x00007ffff2e98ac0 in
> QPlatformBackingStore::setBackingStore(QBackingStore*) ()
>    from
> /home/valentin/Software/miniconda3/envs/qt/lib/python3.10/site-packages/PyQt5/Qt5/lib/libQt5Gui.so.5
> #1  0x00007ffff2d5df6a in QBackingStore::handle() const ()
>    from
> /home/valentin/Software/miniconda3/envs/qt/lib/python3.10/site-packages/PyQt5/Qt5/lib/libQt5Gui.so.5
> #2  0x00007ffff1154cf8 in QWidgetPrivate::create() ()
>    from
> /home/valentin/Software/miniconda3/envs/qt/lib/python3.10/site-packages/PyQt5/Qt5/lib/libQt5Widgets.so.5
> #3  0x00007ffff1154e96 in QWidget::create(unsigned long long, bool, bool)
> ()
>    from
> /home/valentin/Software/miniconda3/envs/qt/lib/python3.10/site-packages/PyQt5/Qt5/lib/libQt5Widgets.so.5
> #4  0x00007ffff1160164 in QWidgetPrivate::setVisible(bool) ()
>    from
> /home/valentin/Software/miniconda3/envs/qt/lib/python3.10/site-packages/PyQt5/Qt5/lib/libQt5Widgets.so.5
> #5  0x00007ffff075e543 in sipQMainWindow::setVisible(bool) ()
>    from
> /home/valentin/Software/miniconda3/envs/qt/lib/python3.10/site-packages/PyQt5/
> QtWidgets.abi3.so
> #6  0x00007ffff06d9822 in meth_QWidget_show () from
> /home/valentin/Software/miniconda3/envs/qt/lib/python3.10/site-packages/PyQt5/
> QtWidgets.abi3.so
> #7  0x0000555555698468 in cfunction_call (func=0x7fffefad1ad0,
> args=<optimized out>, kwargs=<optimized out>)
>     at /usr/local/src/conda/python-3.10.13/Objects/methodobject.c:552
> #8  0x000055555569197b in _PyObject_MakeTpCall (tstate=0x555555909030,
> callable=0x7fffefad1ad0, args=<optimized out>, nargs=0, keywords=0x0)
>     at /usr/local/src/conda/python-3.10.13/Objects/call.c:215
> #9  0x000055555568d8c6 in _PyObject_VectorcallTstate (kwnames=0x0,
> nargsf=<optimized out>, args=<optimized out>, callable=0x7fffefad1ad0,
>     tstate=<optimized out>) at
> /usr/local/src/conda/python-3.10.13/Include/cpython/abstract.h:112
> #10 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>,
> args=0x7ffff7895bb0, callable=0x7fffefad1ad0, tstate=<optimized out>)
>     at /usr/local/src/conda/python-3.10.13/Include/cpython/abstract.h:99
> #11 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>,
> args=0x7ffff7895bb0, callable=0x7fffefad1ad0)
>     at /usr/local/src/conda/python-3.10.13/Include/cpython/abstract.h:123
> #12 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic
> pointer>, trace_info=0x7fffffffbf70, tstate=<optimized out>)
>     at /usr/local/src/conda/python-3.10.13/Python/ceval.c:5893
>
> Hope it can help for something.
>
> Regards,
>
> Valentin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20240216/a7c85a05/attachment-0001.htm>


More information about the PyQt mailing list