Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance Wobject #331

Merged
merged 1 commit into from
Jun 4, 2024
Merged

Enhance Wobject #331

merged 1 commit into from
Jun 4, 2024

Conversation

zccrs
Copy link
Contributor

@zccrs zccrs commented May 21, 2024

No description provided.

@zccrs zccrs marked this pull request as draft May 21, 2024 06:58
@zccrs zccrs requested a review from wineee May 29, 2024 10:20
@zccrs zccrs changed the title WIP: Enhance Wobject May 29, 2024
@zccrs zccrs marked this pull request as ready for review May 29, 2024 10:20
@wineee
Copy link
Member

wineee commented May 29, 2024

have other bug

00:00:10.217 [GLES2] using glBufferSubData(buffer 14, offset 0, size 48) to update a GL_STATIC_DRAW buffer
00:00:10.236 [GLES2] using glBufferSubData(buffer 13, offset 0, size 64) to update a GL_STATIC_DRAW buffer
00:00:10.236 [GLES2] using glBufferSubData(buffer 14, offset 0, size 12) to update a GL_STATIC_DRAW buffer
00:00:10.236 [GLES2] using glBufferSubData(buffer 15, offset 0, size 64) to update a GL_STATIC_DRAW buffer
00:00:10.502 [types/wlr_text_input_v3.c:185] Text input commit received without focus
00:00:12.386 [GLES2] GL_INVALID_OPERATION in glBufferSubData(no buffer bound)
00:00:12.404 [GLES2] GL_INVALID_OPERATION in glBufferSubData(no buffer bound)
AddressSanitizer:DEADLYSIGNAL
=================================================================
==348151==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7f1aa5770dc9 bp 0x619000466480 sp 0x7ffc9d1498f8 T0)                                                                                              
==348151==The signal is caused by a READ memory access.                                                          
==348151==Hint: address points to the zero page.
    #0 0x7f1aa5770dc9 in __memmove_avx_unaligned_erms ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:265
    #1 0x7f1a9b681336 in u_vbuf_upload_buffers ../src/gallium/auxiliary/util/u_vbuf.c:1193
    #2 0x7f1a9b681336 in u_vbuf_draw_vbo ../src/gallium/auxiliary/util/u_vbuf.c:1750
    #3 0x7f1a9b301ce0 in _mesa_draw_arrays ../src/mesa/main/draw.c:1204
    #4 0x7f1aa6a142c9  (/lib/x86_64-linux-gnu/libQt6Gui.so.6+0x4142c9) (BuildId: 87048f57437eb774f4cd92a621e4f18846749371)
    #5 0x7f1aa6a160fb  (/lib/x86_64-linux-gnu/libQt6Gui.so.6+0x4160fb) (BuildId: 87048f57437eb774f4cd92a621e4f18846749371)
    #6 0x7f1aa76b4cc4 in QSGBatchRenderer::Renderer::renderRhiRenderNode(QSGBatchRenderer::Batch const*) (/lib/x86_64-linux-gnu/libQt6Quick.so.6+0x2b4cc4) (BuildId: 5a00e75dca8256e2755913f2f7f317ae53fccc4b)
    #7 0x7f1aa76a5e9a in QSGBatchRenderer::Renderer::recordRenderPass(QSGBatchRenderer::Renderer::RenderPassContext*) (/lib/x86_64-linux-gnu/libQt6Quick.so.6+0x2a5e9a) (BuildId: 5a00e75dca8256e2755913f2f7f317ae53fccc4b)
    #8 0x7f1aa76aae77 in QSGBatchRenderer::Renderer::render() (/lib/x86_64-linux-gnu/libQt6Quick.so.6+0x2aae77) (BuildId: 5a00e75dca8256e2755913f2f7f317ae53fccc4b)
    #9 0x7f1aa76bc080 in QSGRenderer::renderScene() (/lib/x86_64-linux-gnu/libQt6Quick.so.6+0x2bc080) (BuildId: 5a00e75dca8256e2755913f2f7f317ae53fccc4b)
    #10 0x7f1aa9636289 in Waylib::Server::WBufferRenderer::render(int, QMatrix4x4 const&, bool) /home/rewine/treeland/waylib/src/server/qtquick/private/wbufferrenderer.cpp:502
    #11 0x7f1aa94fb5c5 in Waylib::Server::OutputHelper::render(Waylib::Server::WBufferRenderer*, int, QMatrix4x4 const&, bool) (/home/rewine/treeland/build/waylib/src/server/libwaylibserver.so.0+0x6fb5c5) (BuildId: 0dfea8c1bee0bfab3e4923b57cf4cd1ccbfeb5c6)
    #12 0x7f1aa94ec1f1 in Waylib::Server::WOutputRenderWindowPrivate::doRenderOutputs() /home/rewine/treeland/waylib/src/server/qtquick/woutputrenderwindow.cpp:1023
    #13 0x7f1aa94ed0a7 in Waylib::Server::WOutputRenderWindowPrivate::doRender() /home/rewine/treeland/waylib/src/server/qtquick/woutputrenderwindow.cpp:1077
    #14 0x7f1aa94ef335 in Waylib::Server::WOutputRenderWindow::render() /home/rewine/treeland/waylib/src/server/qtquick/woutputrenderwindow.cpp:1284
    #15 0x7f1aa951d5eb in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (Waylib::Server::WOutputRenderWindow::*)()>::call(void (Waylib::Server::WOutputRenderWindow::*)(), Waylib::Server::WOutputRenderWindow*, void**) /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:145
    #16 0x7f1aa95176e1 in void QtPrivate::FunctionPointer<void (Waylib::Server::WOutputRenderWindow::*)()>::call<QtPrivate::List<>, void>(void (Waylib::Server::WOutputRenderWindow::*)(), Waylib::Server::WOutputRenderWindow*, void**) /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:182
    #17 0x7f1aa95115bd in QtPrivate::QCallableObject<void (Waylib::Server::WOutputRenderWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:520
    #18 0x7f1aa5daa927  (/lib/x86_64-linux-gnu/libQt6Core.so.6+0x1aa927) (BuildId: 7d91bdd2e518bfdae2e83afa3055d19790dd5541)
    #19 0x7f1aa94d6ce2 in Waylib::Server::WOutputHelper::requestRender() /home/rewine/treeland/build/waylib/src/server/waylibserver_autogen/include/moc_woutputhelper.cpp:267
    #20 0x7f1aa94d490e in Waylib::Server::WOutputHelperPrivate::on_frame() /home/rewine/treeland/waylib/src/server/qtquick/woutputhelper.cpp:135
    #21 0x7f1aa94d72a1 in Waylib::Server::WOutputHelperPrivate::WOutputHelperPrivate(Waylib::Server::WOutput*, Waylib::Server::WOutputHelper*)::{lambda()#1}::operator()() const /home/rewine/treeland/waylib/src/server/qtquick/woutputhelper.cpp:52
    #22 0x7f1aa94da7e4 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WOutputHelperPrivate::WOutputHelperPrivate(Waylib::Server::WOutput*, Waylib::Server::WOutputHelper*)::{lambda()#1}>::call(Waylib::Server::WOutputHelperPrivate::WOutputHelperPrivate(Waylib::Server::WOutput*, Waylib::Server::WOutputHelper*)::{lambda()#1}&, void**) (/home/rewine/treeland/build/waylib/src/server/libwaylibserver.so.0+0x6da7e4) (BuildId: 0dfea8c1bee0bfab3e4923b57cf4cd1ccbfeb5c6)
    #23 0x7f1aa94da634 in void QtPrivate::Functor<Waylib::Server::WOutputHelperPrivate::WOutputHelperPrivate(Waylib::Server::WOutput*, Waylib::Server::WOutputHelper*)::{lambda()#1}, 0>::call<QtPrivate::List<>, void>(Waylib::Server::WOutputHelperPrivate::WOutputHelperPrivate(Waylib::Server::WOutput*, Waylib::Server::WOutputHelper*)::{lambda()#1}&, void*, void**) /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:339
    #24 0x7f1aa94d9ea9 in QtPrivate::QCallableObject<Waylib::Server::WOutputHelperPrivate::WOutputHelperPrivate(Waylib::Server::WOutput*, Waylib::Server::WOutputHelper*)::{lambda()#1}, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (/home/rewine/treeland/build/waylib/src/server/libwaylibserver.so.0+0x6d9ea9) (BuildId: 0dfea8c1bee0bfab3e4923b57cf4cd1ccbfeb5c6)
    #25 0x7f1aa5daa927  (/lib/x86_64-linux-gnu/libQt6Core.so.6+0x1aa927) (BuildId: 7d91bdd2e518bfdae2e83afa3055d19790dd5541)
    #26 0x7f1aa88ae630 in QWLRoots::QWOutput::frame() /home/rewine/treeland/build/waylib/qwlroots/src/qwlroots_autogen/GZRP3O7STM/moc_qwoutput.cpp:370
    #27 0x7f1aa89a944b in QWLRoots::QWOutputPrivate::on_frame(void*) /home/rewine/treeland/waylib/qwlroots/src/types/qwoutput.cpp:80
    #28 0x7f1aa8ac19a3 in callSlot1 /home/rewine/treeland/waylib/qwlroots/src/util/qwsignalconnector.cpp:29
    #29 0x7f1aaa4cd9fb in wl_signal_emit_mutable (/lib/x86_64-linux-gnu/libwayland-server.so.0+0x99fb) (BuildId: fc01be5c783379fc68817c827d4d345da91647f1)
    #30 0x7f1aa9c53654 in wlr_output_send_frame ../types/output/output.c:881
    #31 0x7f1aa9c4160f in handle_x11_present_event ../backend/x11/output.c:770
    #32 0x7f1aa9c3d02b in handle_x11_event ../backend/x11/backend.c:108
    #33 0x7f1aa9c3d10e in x11_event ../backend/x11/backend.c:141
    #34 0x7f1aaa4cf8e1 in wl_event_loop_dispatch (/lib/x86_64-linux-gnu/libwayland-server.so.0+0xb8e1) (BuildId: fc01be5c783379fc68817c827d4d345da91647f1)
    #35 0x7f1aa9426ee1 in operator() /home/rewine/treeland/waylib/src/server/kernel/wserver.cpp:112
    #36 0x7f1aa942aeba in call /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:137
    #37 0x7f1aa942adf4 in call<QtPrivate::List<>, void> /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:339
    #38 0x7f1aa942ad0d in impl /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:522
    #39 0x7f1aa5daa927  (/lib/x86_64-linux-gnu/libQt6Core.so.6+0x1aa927) (BuildId: 7d91bdd2e518bfdae2e83afa3055d19790dd5541)
    #40 0x7f1aa5dacf72 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (/lib/x86_64-linux-gnu/libQt6Core.so.6+0x1acf72) (BuildId: 7d91bdd2e518bfdae2e83afa3055d19790dd5541)
    #41 0x7f1aa5dafcaa in QSocketNotifier::event(QEvent*) (/lib/x86_64-linux-gnu/libQt6Core.so.6+0x1afcaa) (BuildId: 7d91bdd2e518bfdae2e83afa3055d19790dd5541)
    #42 0x7f1aa5d5fc97 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/lib/x86_64-linux-gnu/libQt6Core.so.6+0x15fc97) (BuildId: 7d91bdd2e518bfdae2e83afa3055d19790dd5541)
    #43 0x7f1aa5f5776e  (/lib/x86_64-linux-gnu/libQt6Core.so.6+0x35776e) (BuildId: 7d91bdd2e518bfdae2e83afa3055d19790dd5541)
    #44 0x7f1aa54a5213  (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x57213) (BuildId: 02afc45b0dbf5aad076f7c1c7f18ab78de4ca65f)
    #45 0x7f1aa54a8336  (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5a336) (BuildId: 02afc45b0dbf5aad076f7c1c7f18ab78de4ca65f)
    #46 0x7f1aa54a894f in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5a94f) (BuildId: 02afc45b0dbf5aad076f7c1c7f18ab78de4ca65f)
    #47 0x7f1aa5f4f81f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/lib/x86_64-linux-gnu/libQt6Core.so.6+0x34f81f) (BuildId: 7d91bdd2e518bfdae2e83afa3055d19790dd5541)
    #48 0x7f1aa5d6a239 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/lib/x86_64-linux-gnu/libQt6Core.so.6+0x16a239) (BuildId: 7d91bdd2e518bfdae2e83afa3055d19790dd5541)
    #49 0x7f1aa5d636d9 in QCoreApplication::exec() (/lib/x86_64-linux-gnu/libQt6Core.so.6+0x1636d9) (BuildId: 7d91bdd2e518bfdae2e83afa3055d19790dd5541)
    #50 0x5575c96543fe in main /home/rewine/treeland/src/treeland/treeland.cpp:409
    #51 0x7f1aa5642c89 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #52 0x7f1aa5642d44 in __libc_start_main_impl ../csu/libc-start.c:360
    #53 0x5575c96453e0 in _start (/home/rewine/treeland/build/src/treeland/treeland+0xf53e0) (BuildId: feeaefca87094a365f10c2e83456d4a71dd52426)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:265 in __memmove_avx_unaligned_erms
==348151==ABORTING
(EE) failed to read Wayland events: Broken pipe

@ZhongYic00
Copy link
Collaborator

have other bug

00:00:10.217 [GLES2] using glBufferSubData(buffer 14, offset 0, size 48) to update a GL_STATIC_DRAW buffer
00:00:10.236 [GLES2] using glBufferSubData(buffer 13, offset 0, size 64) to update a GL_STATIC_DRAW buffer
00:00:10.236 [GLES2] using glBufferSubData(buffer 14, offset 0, size 12) to update a GL_STATIC_DRAW buffer
00:00:10.236 [GLES2] using glBufferSubData(buffer 15, offset 0, size 64) to update a GL_STATIC_DRAW buffer
00:00:10.502 [types/wlr_text_input_v3.c:185] Text input commit received without focus
00:00:12.386 [GLES2] GL_INVALID_OPERATION in glBufferSubData(no buffer bound)
00:00:12.404 [GLES2] GL_INVALID_OPERATION in glBufferSubData(no buffer bound)
AddressSanitizer:DEADLYSIGNAL
=================================================================
==348151==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7f1aa5770dc9 bp 0x619000466480 sp 0x7ffc9d1498f8 T0)                                                                                              
==348151==The signal is caused by a READ memory access.                                                          
==348151==Hint: address points to the zero page.
    #0 0x7f1aa5770dc9 in __memmove_avx_unaligned_erms ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:265
    #1 0x7f1a9b681336 in u_vbuf_upload_buffers ../src/gallium/auxiliary/util/u_vbuf.c:1193
    #2 0x7f1a9b681336 in u_vbuf_draw_vbo ../src/gallium/auxiliary/util/u_vbuf.c:1750
    #3 0x7f1a9b301ce0 in _mesa_draw_arrays ../src/mesa/main/draw.c:1204
    #4 0x7f1aa6a142c9  (/lib/x86_64-linux-gnu/libQt6Gui.so.6+0x4142c9) (BuildId: 87048f57437eb774f4cd92a621e4f18846749371)
    #5 0x7f1aa6a160fb  (/lib/x86_64-linux-gnu/libQt6Gui.so.6+0x4160fb) (BuildId: 87048f57437eb774f4cd92a621e4f18846749371)
    #6 0x7f1aa76b4cc4 in QSGBatchRenderer::Renderer::renderRhiRenderNode(QSGBatchRenderer::Batch const*) (/lib/x86_64-linux-gnu/libQt6Quick.so.6+0x2b4cc4) (BuildId: 5a00e75dca8256e2755913f2f7f317ae53fccc4b)
    #7 0x7f1aa76a5e9a in QSGBatchRenderer::Renderer::recordRenderPass(QSGBatchRenderer::Renderer::RenderPassContext*) (/lib/x86_64-linux-gnu/libQt6Quick.so.6+0x2a5e9a) (BuildId: 5a00e75dca8256e2755913f2f7f317ae53fccc4b)
    #8 0x7f1aa76aae77 in QSGBatchRenderer::Renderer::render() (/lib/x86_64-linux-gnu/libQt6Quick.so.6+0x2aae77) (BuildId: 5a00e75dca8256e2755913f2f7f317ae53fccc4b)
    #9 0x7f1aa76bc080 in QSGRenderer::renderScene() (/lib/x86_64-linux-gnu/libQt6Quick.so.6+0x2bc080) (BuildId: 5a00e75dca8256e2755913f2f7f317ae53fccc4b)
    #10 0x7f1aa9636289 in Waylib::Server::WBufferRenderer::render(int, QMatrix4x4 const&, bool) /home/rewine/treeland/waylib/src/server/qtquick/private/wbufferrenderer.cpp:502
    #11 0x7f1aa94fb5c5 in Waylib::Server::OutputHelper::render(Waylib::Server::WBufferRenderer*, int, QMatrix4x4 const&, bool) (/home/rewine/treeland/build/waylib/src/server/libwaylibserver.so.0+0x6fb5c5) (BuildId: 0dfea8c1bee0bfab3e4923b57cf4cd1ccbfeb5c6)
    #12 0x7f1aa94ec1f1 in Waylib::Server::WOutputRenderWindowPrivate::doRenderOutputs() /home/rewine/treeland/waylib/src/server/qtquick/woutputrenderwindow.cpp:1023
    #13 0x7f1aa94ed0a7 in Waylib::Server::WOutputRenderWindowPrivate::doRender() /home/rewine/treeland/waylib/src/server/qtquick/woutputrenderwindow.cpp:1077
    #14 0x7f1aa94ef335 in Waylib::Server::WOutputRenderWindow::render() /home/rewine/treeland/waylib/src/server/qtquick/woutputrenderwindow.cpp:1284
    #15 0x7f1aa951d5eb in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (Waylib::Server::WOutputRenderWindow::*)()>::call(void (Waylib::Server::WOutputRenderWindow::*)(), Waylib::Server::WOutputRenderWindow*, void**) /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:145
    #16 0x7f1aa95176e1 in void QtPrivate::FunctionPointer<void (Waylib::Server::WOutputRenderWindow::*)()>::call<QtPrivate::List<>, void>(void (Waylib::Server::WOutputRenderWindow::*)(), Waylib::Server::WOutputRenderWindow*, void**) /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:182

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:265 in __memmove_avx_unaligned_erms

This is due to linuxdeepin/treeland#271

@zccrs zccrs force-pushed the master branch 3 times, most recently from 199dfbc to 8b0a2c1 Compare June 3, 2024 10:43
src/server/kernel/wglobal.h Outdated Show resolved Hide resolved
src/server/kernel/wglobal.h Outdated Show resolved Hide resolved
src/server/kernel/woutput.cpp Outdated Show resolved Hide resolved
also move QObject inheritance to WWrapObj to hide deleteLater;
remove QObject inheritance from WServerInterface;
WQuickInputMethod seperate init method since QObject is initialized late
@zccrs zccrs merged commit 3f90d97 into vioken:master Jun 4, 2024
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants