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

Mike Lothian mike at fireburn.co.uk
Mon Apr 30 10:39:59 UTC 2018


Also with the intel DDX I was seeing a black screen after the monitor
switches itself off (I can still see the cursor) VT switching away and back
again fixes the issue

I'm going to ask again that 1.20 isn't cut until at least some of these
issues are resolved

On Mon, 30 Apr 2018 at 11:36 Mike Lothian <mike at fireburn.co.uk> wrote:

> 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/d1138a71/attachment.html>


More information about the xorg-devel mailing list