[PATCH xserver] dri3: Fix DRI3.2 support for drivers other than modesetting-ddx.

Mike Lothian mike at fireburn.co.uk
Mon Apr 30 10:36:45 UTC 2018


Hi

I'll get one raised just for that

After further testing the above patch with the intel ddx I notice vulkan
programs don't run, they exit with an assert in the mesa code something to
do with modifiers chain

I'll raise a separate bug for that, it happens with smoketest and Rise of
the Tomb Raider

On Mon, 30 Apr 2018 at 08:26 Mario Kleiner <mario.kleiner.de at gmail.com>
wrote:

> On Wed, Apr 25, 2018 at 2:23 AM, Mike Lothian <mike at fireburn.co.uk> wrote:
> >
> > The plasmashell & steam freezes aren't present with the Intel or AMDGPU
> > DDXs, only modesetting
> >
> > I'm quite happy to mark
> https://bugs.freedesktop.org/show_bug.cgi?id=105851
> > as resolved and look into the modesetting freezes seperately
> >
> > Cheers again
> >
> > Mike
>
> Mike, a bug report about those freezes would be good. I see the same
> annoying freezes of the KDE panel randomly on my old KUbuntu 16.04
> plasmashell, only with modesetting on server 1.20, but on all gpu's.
> So far i was mostly unsuccessful in finding the cause. The only thing
> i found so far is that Mesa's dri3 loader always gets stuck trying to
> get a new back buffer in dri3_find_back, apparently waiting for a
> reply from the server that it never receives, like in this stacktrace:
>
> plasmashell stuck, modesetting ddx, dri3, normal or with
> dmabuf_modifiers, raw or composited/egl - bt:
>
> #0  0x00007feb6f5f074d in poll () at ../sysdeps/unix/syscall-template.S:84
> #1  0x00007feb736b8172 in poll (__timeout=-1, __nfds=1,
> __fds=0x7ffdb6c2baf0) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
> #2  _xcb_conn_wait (c=c at entry=0xc25390, cond=cond at entry=0x36a40d8,
> vector=vector at entry=0x0, count=count at entry=0x0) at xcb_conn.c:479
> #3  0x00007feb736b9e69 in xcb_wait_for_special_event (c=0xc25390,
> se=0x36a40b0) at xcb_in.c:795
> #4  0x00007feb6b82b246 in dri3_wait_for_event_locked (draw=0x43d6358)
> at loader_dri3_helper.c:454
> #5  0x00007feb6b82b3b8 in dri3_find_back (draw=draw at entry=0x43d6358)
> at loader_dri3_helper.c:580
> #6  0x00007feb6b82c506 in dri3_get_buffer (format=format at entry=4107,
> buffer_type=buffer_type at entry=loader_dri3_buffer_back,
> draw=draw at entry=0x43d6358, driDrawable=0x405b4c0) at
> loader_dri3_helper.c:1656
> #7  0x00007feb6b82d291 in loader_dri3_get_buffers
> (driDrawable=driDrawable at entry=0x405b4c0, format=4107,
> stamp=stamp at entry=0x405b4f0,
> loaderPrivate=loaderPrivate at entry=0x43d6358, buffer_mask=<optimized
> out>, buffer_mask at entry=1, buffers=buffers at entry=0x7ffdb6c2bde0)
>     at loader_dri3_helper.c:1861
> #8  0x00007feb4b54681d in intel_update_image_buffers
> (drawable=0x405b4c0, brw=0x16aaec0) at brw_context.c:1753
> #9  intel_update_renderbuffers (context=context at entry=0x15bc840,
> drawable=drawable at entry=0x405b4c0) at brw_context.c:1429
> #10 0x00007feb4b546cf1 in intel_prepare_render
> (brw=brw at entry=0x16aaec0) at brw_context.c:1450
> #11 0x00007feb4b5419ea in brw_clear (ctx=0x16aaec0, mask=50) at
> brw_clear.c:300
> #12 0x00007feb72f4049a in QSGBatchRenderer::Renderer::renderBatches()
> () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
> #13 0x00007feb72f45e82 in QSGBatchRenderer::Renderer::render() () from
> /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
> #14 0x00007feb72f51b6f in QSGRenderer::renderScene(QSGBindable const&)
> () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
> #15 0x00007feb72f523bb in QSGRenderer::renderScene(unsigned int) ()
> from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
> #16 0x00007feb72f6287e in
> QSGRenderContext::renderNextFrame(QSGRenderer*, unsigned int) () from
> /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
> #17 0x00007feb72fad0db in QQuickWindowPrivate::renderSceneGraph(QSize
> const&) () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
> #18 0x00007feb72f7d19b in ?? () from
> /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
> #19 0x00007feb72f7e2a1 in ?? () from
> /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
> #20 0x00007feb709ca05c in QApplicationPrivate::notify_helper(QObject*,
> QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
> #21 0x00007feb709cf516 in QApplication::notify(QObject*, QEvent*) ()
> from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
> #22 0x00007feb6fec738b in QCoreApplication::notifyInternal(QObject*,
> QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #23 0x00007feb6ff1c5ed in QTimerInfoList::activateTimers() () from
> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #24 0x00007feb6ff1caf1 in ?? () from
> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #25 0x00007feb6c384197 in g_main_context_dispatch () from
> /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #26 0x00007feb6c3843f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #27 0x00007feb6c38449c in g_main_context_iteration () from
> /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #28 0x00007feb6ff1d7eb in
> QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
> () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #29 0x00007feb6fec4b4a in
> QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #30 0x00007feb6feccbec in QCoreApplication::exec() () from
> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> #31 0x0000000000432d4a in main ()
>
> Anyway this would need to go into that bug report of yours.
>
> thanks,
> -mario
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.x.org/archives/xorg-devel/attachments/20180430/916305f5/attachment-0001.html>


More information about the xorg-devel mailing list