Message ID | 20240121224052.1049989-1-neal@gompa.dev |
---|---|
Headers | show |
Series |
|
Related | show |
Hi Neal, Thank you for the patch. On Sun, Jan 21, 2024 at 05:39:52PM -0500, Neal Gompa via libcamera-devel wrote: > Open source Qt 5 has been effectively end of life since the release > of Qt 6, and Qt 6 has current LTS releases now. > > This change ports qcam to Qt 6.2 and drops some of the baggage related > to Qt 5 that is no longer applicable. > > Additionally, a couple of patches are included to update documentation > references from Qt 5 to Qt 6. I'll give this a try, I'm currently installing Qt 6, which is taking a bit of time as I'm running Gentoo :-) It seems that Debian bookworm and bullseye-backports both carry Qt 6, so we should be fine from that point of view. > === Changelog === > > v2: Bump Meson to v0.63 for Qt6 module > > v1: Initial patch set > > Neal Gompa (3): > apps: qcam: Port to Qt 6 > libcamera: base: signal: Update Qt documentation link to Qt 6 > Documentation: Update Qt documentation links to Qt 6 > > .../guides/application-developer.rst | 2 +- > Documentation/guides/pipeline-handler.rst | 2 +- > README.rst | 2 +- > meson.build | 2 +- > src/apps/qcam/meson.build | 45 ++++++------------- > src/libcamera/base/signal.cpp | 2 +- > 6 files changed, 18 insertions(+), 37 deletions(-)
On Mon, Jan 22, 2024 at 09:40:01AM +0200, Laurent Pinchart via libcamera-devel wrote: > On Sun, Jan 21, 2024 at 05:39:52PM -0500, Neal Gompa via libcamera-devel wrote: > > Open source Qt 5 has been effectively end of life since the release > > of Qt 6, and Qt 6 has current LTS releases now. > > > > This change ports qcam to Qt 6.2 and drops some of the baggage related > > to Qt 5 that is no longer applicable. > > > > Additionally, a couple of patches are included to update documentation > > references from Qt 5 to Qt 6. > > I'll give this a try, I'm currently installing Qt 6, which is taking a > bit of time as I'm running Gentoo :-) It seems that Debian bookworm and > bullseye-backports both carry Qt 6, so we should be fine from that point > of view. I gave this a quick try on Gentoo, and qcam seems to compile and run. It is however not displaying icons in the toolbar. Have you noticed that ? > > === Changelog === > > > > v2: Bump Meson to v0.63 for Qt6 module > > > > v1: Initial patch set > > > > Neal Gompa (3): > > apps: qcam: Port to Qt 6 > > libcamera: base: signal: Update Qt documentation link to Qt 6 > > Documentation: Update Qt documentation links to Qt 6 > > > > .../guides/application-developer.rst | 2 +- > > Documentation/guides/pipeline-handler.rst | 2 +- > > README.rst | 2 +- > > meson.build | 2 +- > > src/apps/qcam/meson.build | 45 ++++++------------- > > src/libcamera/base/signal.cpp | 2 +- > > 6 files changed, 18 insertions(+), 37 deletions(-)
Hi Neal, I realized today that the gles rendered in qcam is broken :-( Reverting back to qt5 works for me, so it's related to this patch series. Could you please test ('qcam -r gles') and investigate ? On Sun, Jan 21, 2024 at 05:39:52PM -0500, 📷-dev wrote: > Open source Qt 5 has been effectively end of life since the release > of Qt 6, and Qt 6 has current LTS releases now. > > This change ports qcam to Qt 6.2 and drops some of the baggage related > to Qt 5 that is no longer applicable. > > Additionally, a couple of patches are included to update documentation > references from Qt 5 to Qt 6. > > === Changelog === > > v2: Bump Meson to v0.63 for Qt6 module > > v1: Initial patch set > > Neal Gompa (3): > apps: qcam: Port to Qt 6 > libcamera: base: signal: Update Qt documentation link to Qt 6 > Documentation: Update Qt documentation links to Qt 6 > > .../guides/application-developer.rst | 2 +- > Documentation/guides/pipeline-handler.rst | 2 +- > README.rst | 2 +- > meson.build | 2 +- > src/apps/qcam/meson.build | 45 ++++++------------- > src/libcamera/base/signal.cpp | 2 +- > 6 files changed, 18 insertions(+), 37 deletions(-)
Quoting Laurent Pinchart (2024-09-09 14:07:50) > Hi Neal, > > I realized today that the gles rendered in qcam is broken :-( Reverting > back to qt5 works for me, so it's related to this patch series. Could > you please test ('qcam -r gles') and investigate ? I just tested this and have the following backtrace on Fedora Rawhide... (gdb) bt #0 0x0000ffffce368b3c in void st_update_array_templ<(util_popcnt)2, (st_fill_tc_set_vb)0, (st_use_vao_fast_path)1, (st_allow_zero_stride_attribs)0, (st_identity_attrib_mapping)0, (st_allow_user_buffers)0, (st_update_velems)1>(st_context*, unsigned int, unsigned int, unsigned int) () at /lib64/libgallium-24.2.1.so #1 0x0000ffffce0f9484 in st_prepare_draw () at /lib64/libgallium-24.2.1.so #2 0x0000ffffce294384 in _mesa_draw_arrays.part.0 () at /lib64/libgallium-24.2.1.so #3 0x0000000000454934 in QOpenGLFunctions::glDrawArrays (this=0x722d60, mode=6, first=0, count=4) at /usr/include/qt6/QtGui/qopenglfunctions.h:709 #4 0x000000000045438c in ViewFinderGL::paintGL (this=0x722d30) at ../../src/apps/qcam/viewfinder_gl.cpp:823 #5 0x0000fffff74e2f00 in QOpenGLWidgetPrivate::render() () at /lib64/libQt6OpenGLWidgets.so.6 #6 0x0000fffff5dceecc in QWidget::event(QEvent*) () at /lib64/libQt6Widgets.so.6 #7 0x0000fffff5d6ea18 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6 #8 0x0000fffff6f71d58 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6 #9 0x0000fffff5dc598c in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /lib64/libQt6Widgets.so.6 #10 0x0000fffff5ddba1c in QWidgetRepaintManager::paintAndFlush() () at /lib64/libQt6Widgets.so.6 #11 0x0000fffff5dcf64c in QWidget::event(QEvent*) () at /lib64/libQt6Widgets.so.6 #12 0x000000000043af30 in MainWindow::event (this=0x7c0440, e=0xffffd40042c0) at ../../src/apps/qcam/main_window.cpp:177 #13 0x0000fffff5d6ea18 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6 #14 0x0000fffff6f71d58 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6 #15 0x0000fffff6f76068 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt6Core.so.6 #16 0x0000fffff7272fd4 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt6Core.so.6 #17 0x0000fffff48d0b94 in g_main_context_dispatch_unlocked.lto_priv () at /lib64/libglib-2.0.so.0 #18 0x0000fffff49341d0 in g_main_context_iterate_unlocked.isra () at /lib64/libglib-2.0.so.0 #19 0x0000fffff48d2264 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #20 0x0000fffff7272658 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6 #21 0x0000fffff6f7f694 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6 #22 0x0000fffff6f7ac3c in QCoreApplication::exec() () at /lib64/libQt6Core.so.6 #23 0x0000000000439a24 in main (argc=3, argv=0xffffffffeeb8) at ../../src/apps/qcam/main.cpp:87 (gdb) quit A debugging session is active. -- Kieran > > On Sun, Jan 21, 2024 at 05:39:52PM -0500, 📷-dev wrote: > > Open source Qt 5 has been effectively end of life since the release > > of Qt 6, and Qt 6 has current LTS releases now. > > > > This change ports qcam to Qt 6.2 and drops some of the baggage related > > to Qt 5 that is no longer applicable. > > > > Additionally, a couple of patches are included to update documentation > > references from Qt 5 to Qt 6. > > > > === Changelog === > > > > v2: Bump Meson to v0.63 for Qt6 module > > > > v1: Initial patch set > > > > Neal Gompa (3): > > apps: qcam: Port to Qt 6 > > libcamera: base: signal: Update Qt documentation link to Qt 6 > > Documentation: Update Qt documentation links to Qt 6 > > > > .../guides/application-developer.rst | 2 +- > > Documentation/guides/pipeline-handler.rst | 2 +- > > README.rst | 2 +- > > meson.build | 2 +- > > src/apps/qcam/meson.build | 45 ++++++------------- > > src/libcamera/base/signal.cpp | 2 +- > > 6 files changed, 18 insertions(+), 37 deletions(-) > > -- > Regards, > > Laurent Pinchart
On Mon, Sep 09, 2024 at 05:13:20PM +0100, Kieran Bingham wrote: > Quoting Laurent Pinchart (2024-09-09 14:07:50) > > Hi Neal, > > > > I realized today that the gles rendered in qcam is broken :-( Reverting > > back to qt5 works for me, so it's related to this patch series. Could > > you please test ('qcam -r gles') and investigate ? > > I just tested this and have the following backtrace on Fedora Rawhide... > > (gdb) bt > #0 0x0000ffffce368b3c in void st_update_array_templ<(util_popcnt)2, (st_fill_tc_set_vb)0, (st_use_vao_fast_path)1, (st_allow_zero_stride_attribs)0, (st_identity_attrib_mapping)0, (st_allow_user_buffers)0, (st_update_velems)1>(st_context*, unsigned int, unsigned int, unsigned int) () at /lib64/libgallium-24.2.1.so > #1 0x0000ffffce0f9484 in st_prepare_draw () at /lib64/libgallium-24.2.1.so > #2 0x0000ffffce294384 in _mesa_draw_arrays.part.0 () at /lib64/libgallium-24.2.1.so > #3 0x0000000000454934 in QOpenGLFunctions::glDrawArrays (this=0x722d60, mode=6, first=0, count=4) at /usr/include/qt6/QtGui/qopenglfunctions.h:709 > #4 0x000000000045438c in ViewFinderGL::paintGL (this=0x722d30) at ../../src/apps/qcam/viewfinder_gl.cpp:823 > #5 0x0000fffff74e2f00 in QOpenGLWidgetPrivate::render() () at /lib64/libQt6OpenGLWidgets.so.6 > #6 0x0000fffff5dceecc in QWidget::event(QEvent*) () at /lib64/libQt6Widgets.so.6 > #7 0x0000fffff5d6ea18 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6 > #8 0x0000fffff6f71d58 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6 > #9 0x0000fffff5dc598c in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /lib64/libQt6Widgets.so.6 > #10 0x0000fffff5ddba1c in QWidgetRepaintManager::paintAndFlush() () at /lib64/libQt6Widgets.so.6 > #11 0x0000fffff5dcf64c in QWidget::event(QEvent*) () at /lib64/libQt6Widgets.so.6 > #12 0x000000000043af30 in MainWindow::event (this=0x7c0440, e=0xffffd40042c0) at ../../src/apps/qcam/main_window.cpp:177 > #13 0x0000fffff5d6ea18 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6 > #14 0x0000fffff6f71d58 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6 > #15 0x0000fffff6f76068 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt6Core.so.6 > #16 0x0000fffff7272fd4 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt6Core.so.6 > #17 0x0000fffff48d0b94 in g_main_context_dispatch_unlocked.lto_priv () at /lib64/libglib-2.0.so.0 > #18 0x0000fffff49341d0 in g_main_context_iterate_unlocked.isra () at /lib64/libglib-2.0.so.0 > #19 0x0000fffff48d2264 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 > #20 0x0000fffff7272658 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6 > #21 0x0000fffff6f7f694 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6 > #22 0x0000fffff6f7ac3c in QCoreApplication::exec() () at /lib64/libQt6Core.so.6 > #23 0x0000000000439a24 in main (argc=3, argv=0xffffffffeeb8) at ../../src/apps/qcam/main.cpp:87 > (gdb) quit > A debugging session is active. This patch fixes the crash: diff --git a/src/apps/qcam/viewfinder_gl.cpp b/src/apps/qcam/viewfinder_gl.cpp index 9d2a69600db1..789a45f3e314 100644 --- a/src/apps/qcam/viewfinder_gl.cpp +++ b/src/apps/qcam/viewfinder_gl.cpp @@ -809,6 +809,8 @@ void ViewFinderGL::doRender() void ViewFinderGL::paintGL() { + vertexBuffer_.bind(); + if (!fragmentShader_) if (!createFragmentShader()) { qWarning() << "[ViewFinderGL]:" The display is still wrong though, but "less wrong". It appears that the texture coordinates are not taken into account correctly. Any OpenGL expert who could have a quick look at qcam and check where we get binding of objects wrong ? > > On Sun, Jan 21, 2024 at 05:39:52PM -0500, 📷-dev wrote: > > > Open source Qt 5 has been effectively end of life since the release > > > of Qt 6, and Qt 6 has current LTS releases now. > > > > > > This change ports qcam to Qt 6.2 and drops some of the baggage related > > > to Qt 5 that is no longer applicable. > > > > > > Additionally, a couple of patches are included to update documentation > > > references from Qt 5 to Qt 6. > > > > > > === Changelog === > > > > > > v2: Bump Meson to v0.63 for Qt6 module > > > > > > v1: Initial patch set > > > > > > Neal Gompa (3): > > > apps: qcam: Port to Qt 6 > > > libcamera: base: signal: Update Qt documentation link to Qt 6 > > > Documentation: Update Qt documentation links to Qt 6 > > > > > > .../guides/application-developer.rst | 2 +- > > > Documentation/guides/pipeline-handler.rst | 2 +- > > > README.rst | 2 +- > > > meson.build | 2 +- > > > src/apps/qcam/meson.build | 45 ++++++------------- > > > src/libcamera/base/signal.cpp | 2 +- > > > 6 files changed, 18 insertions(+), 37 deletions(-)