Bug 96953 - dri2_wl_swrast crashes on 64 bit, but not on 32 bit
Summary: dri2_wl_swrast crashes on 64 bit, but not on 32 bit
Status: RESOLVED MOVED
Alias: None
Product: Mesa
Classification: Unclassified
Component: EGL/Wayland (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Wayland bug list
QA Contact: mesa-dev
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-07-16 02:47 UTC by n3rdopolis
Modified: 2019-09-18 18:08 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description n3rdopolis 2016-07-16 02:47:39 UTC
I am not sure if this is because of qtwayland or because of mesa, but it seems I am getting a crash with git master
I have a stack trace, let me know if running it with any variables exported

I am building mesa with
./autogen.sh --prefix=$INSTALLDIR --enable-driglx-direct --enable-dri --with-dri-drivers=r200,radeon,nouveau,i915,i965,swrast --enable-osmesa --enable-xa --enable-glx-tls --enable-shared-dricore --enable-gles1 --enable-gles2  --with-gallium-drivers=nouveau,svga,r300,r600,swrast,radeonsi,virgl  --with-egl-platforms=x11,wayland,drm --enable-gbm --enable-shared-glapi --enable-gallium-egl --with-llvm-prefix=/usr/lib/llvm-3.6/ --with-llvm-shared-libs --libdir=$INSTALLDIR/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH) 

0  dri2_wl_swrast_put_image2 (draw=0x300c240, op=<optimized out>,
    x=<optimized out>, y=0, w=<optimized out>, h=0, stride=64,
    data=0x3012b40 "", loaderPrivate=0x3012240)
    at drivers/dri2/platform_wayland.c:1642
        dri2_surf = 0x3012240
        copy_width = -4
        src = 0x36d4000 <error: Cannot access memory at address 0x36d4000>
        dst = 0x7fffcd4f4ffc <error: Cannot access memory at address 0x7fffcd4f4ffc>
        __PRETTY_FUNCTION__ = "dri2_wl_swrast_put_image2"
#1  0x00007fffed28ed26 in dri2_wl_swrast_put_image (
    draw=<optimized out>, op=<optimized out>, x=<optimized out>,
    y=<optimized out>, w=<optimized out>, h=<optimized out>,
    data=0x3012b40 "", loaderPrivate=0x3012240)
    at drivers/dri2/platform_wayland.c:1658
        dri2_surf = 0x3012240
#2  0x00007fffea1bbd38 in put_image (height=<optimized out>,
    width=<optimized out>, data=<optimized out>,
    dPriv=<optimized out>) at drisw.c:71
        sPriv = <optimized out>
        loader = <optimized out>
#3  drisw_put_image (drawable=<optimized out>, data=<optimized out>,
    width=<optimized out>, height=<optimized out>) at drisw.c:141
        dPriv = <optimized out>
#4  0x00007fffea1bc1dd in drisw_copy_to_front (ptex=0x300c0d0,
    dPriv=0x300c240) at drisw.c:181
No locals.
#5  drisw_swap_buffers (dPriv=0x300c240) at drisw.c:208
        ctx = 0x2e2ac20
        ptex = 0x300c0d0
#6  0x00007fffed28d0b9 in dri2_wl_swrast_swap_buffers (
    drv=<optimized out>, disp=<optimized out>, draw=<optimized out>)
    at drivers/dri2/platform_wayland.c:1729
No locals.
#7  0x00007fffed2839e2 in eglSwapBuffers (dpy=0x710400,
    surface=surface@entry=0x3012240) at main/eglapi.c:1008
        ctx = 0x2e7ef00
        disp = 0x710400
        surf = 0x3012240
        drv = <optimized out>
        ret = <optimized out>
        __func__ = "eglSwapBuffers"
#8  0x00007ffff7e57b7a in QtWaylandClient::QWaylandGLContext::swapBuffers (this=0x2e7eb90, surface=0x2dd1a00)
    at ../../../hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:553
        window = 0x2dd19f0
        eglSurface = 0x3012240
        sub = 0x0
#9  0x00007ffff6854238 in QOpenGLContext::swapBuffers (
    this=this@entry=0x2d91790, surface=surface@entry=0x2dd0650)
    at /srcbuild/qtbase/src/gui/kernel/qopenglcontext.cpp:1063
        __PRETTY_FUNCTION__ = "void QOpenGLContext::swapBuffers(QSurface*)"
        surfaceHandle = 0x2dd1a00
#10 0x00007ffff69a4c8a in QPlatformBackingStore::composeAndFlush (
    this=this@entry=0x2dd1550, window=window@entry=0x2dd0640,
    region=..., offset=..., textures=<optimized out>,
    context=<optimized out>, translucentBackground=false)
    at /srcbuild/qtbase/src/gui/painting/qplatformbackingstore.cpp:414
        funcs = 0x3012080
        deviceWindowRect = {x1 = 0, y1 = 0, x2 = 1009, y2 = 575}
        textureId = <optimized out>
        origin = <optimized out>
#11 0x00007ffff69a4d8b in QPlatformBackingStore::composeAndFlush (
    this=this@entry=0x2dd1550, window=0x2dd0640, region=...,
    offset=...,
    textures=textures@entry=0x7ffff745cf40 <(anonymous namespace)::Q_QGS_qt_dummy_platformTextureList::innerFunction()::holder>,
    context=context@entry=0x2d91790, translucentBackground=false)
    at /srcbuild/qtbase/src/gui/painting/qplatformbackingstore.cpp:317
No locals.
#12 0x00007ffff7049590 in QWidgetBackingStore::qt_flush (
    widget=widget@entry=0x83d880, region=...,
    backingStore=<optimized out>, tlw=0x83d880, tlwOffset=...,
    widgetTextures=0x7ffff745cf40 <(anonymous namespace)::Q_QGS_qt_dummy_platformTextureList::innerFunction()::holder>,
    widgetBackingStore=0x2dd1b30)
    at /srcbuild/qtbase/src/widgets/kernel/qwidgetbackingstore.cpp:138
        translucentBackground = false
        flushUpdate = 0
        fpsDebug = false
        __PRETTY_FUNCTION__ = "static void QWidgetBackingStore::qt_flush(QWidget*, const QRegion&, QBackingStore*, QWidget*, const QPoint&, QPlatformTextureList*, QWidgetBackingStore*)"
        offset = {xp = 0, yp = 0}
        compositionWasActive = <optimized out>
#13 0x00007ffff7049ed3 in QWidgetBackingStore::flush (
    this=this@entry=0x2dd1b30, widget=widget@entry=0x0)
    at /srcbuild/qtbase/src/widgets/kernel/qwidgetbackingstore.cpp:1415
        target = 0x83d880
        hasDirtyOnScreenWidgets = false
        flushed = false
#14 0x00007ffff704a076 in QWidgetBackingStore::endPaint (
    this=this@entry=0x2dd1b30, cleaned=...,
    backingStore=<optimized out>,
    beginPaintInfo=beginPaintInfo@entry=0x7fffffffd514)
    at /srcbuild/qtbase/src/widgets/kernel/qwidgetbackingstore.cpp:359
No locals.
#15 0x00007ffff704b329 in QWidgetBackingStore::doSync (
    this=this@entry=0x2dd1b30)
    at /srcbuild/qtbase/src/widgets/kernel/qwidgetbackingstore.cpp:1399
        updatesDisabled = <optimized out>
        repaintAllWidgets = <optimized out>
        inTopLevelResize = <optimized out>
        tlwRect = {x1 = 7, y1 = 96, x2 = 1016, y2 = 671}
        surfaceGeometry = {x1 = 7, y1 = 96, x2 = 5, y2 = 94}
        toClean = {d = 0x989580, static shared_empty = {ref = {
              atomic = {_q_value = {<std::__atomic_base<int>> = {
                    static _S_alignment = 4,
                    _M_i = -1}, <No data fields>}}},
            qt_rgn = 0x7ffff6b0d0c0 <qrp>}}
        opaqueNonOverlappedWidgets = {a = 32, s = 0,
          ptr = 0x7fffffffd600, {
            array = "\000\000\000\000\000\000\000\000@\206\344\002\000\000\000\000\220\210\344\002", '\000' <repeats 12 times>, "\240\247\344\002\000\000\000\000P\246\344\002", '\000' <repeats 12 times>, "\200\000\000\000\000\000P\225\342\002", '\000' <repeats 12 times>, "`\327\377\377\377\177\000\000_\356\336\367\377\177\000\000\000\000\000\000\000\000\360?", '\000' <repeats 24 times>, "\021\352-\201\231\227q=", '\000' <repeats 16 times>, "@0\222\000\000\000\000\000\000\000\000@\000\000\000\000 \332\377\377\377\177\000\000\070\033\335\002\000\000\000\000q\344\201\366\377\177\000\000\070\033\335\002\000\000\000\000\035"..., q_for_alignment_1 = 0, q_for_alignment_2 = 0}}
        beginPaintInfo = {wasFlushed = 0, nothingToPaint = 0,
          backingStoreRecreated = 0}
        dirtyCopy = {d = 0x989580, static shared_empty = {ref = {
              atomic = {_q_value = {<std::__atomic_base<int>> = {
                    static _S_alignment = 4,
                    _M_i = -1}, <No data fields>}}},
            qt_rgn = 0x7ffff6b0d0c0 <qrp>}}
#16 0x00007ffff704b509 in QWidgetBackingStore::sync (this=0x2dd1b30,
    exposedWidget=0x83d880, exposedRegion=...)
    at /srcbuild/qtbase/src/widgets/kernel/qwidgetbackingstore.cpp:1148
No locals.
#17 0x00007ffff70846c4 in QWidgetWindow::event (this=0x2dd0640,
    event=0x7fffffffda08)
    at /srcbuild/qtbase/src/widgets/kernel/qwidgetwindow.cpp:284
No locals.
#18 0x00007ffff703fa4e in QApplicationPrivate::notify_helper (
    this=<optimized out>, receiver=0x2dd0640, e=0x7fffffffda08)
    at /srcbuild/qtbase/src/widgets/kernel/qapplication.cpp:3799
        consumed = <optimized out>
        this = <optimized out>
        e = 0x7fffffffda08
        receiver = 0x2dd0640
#19 0x00007ffff7045c65 in QApplication::notify (this=0x7fffffffdea0,
    receiver=0x2dd0640, e=0x7fffffffda08)
    at /srcbuild/qtbase/src/widgets/kernel/qapplication.cpp:3641
        widget = <optimized out>
        __PRETTY_FUNCTION__ = "virtual bool QApplication::notify(QObject*, QEvent*)"
        res = false
#20 0x00007ffff6141299 in QCoreApplication::notifyInternal2 (
    receiver=0x2dd0640, event=0x7fffffffda08)
    at /srcbuild/qtbase/src/corelib/kernel/qcoreapplication.cpp:988
        selfRequired = true
        result = false
        cbdata = {0x2dd0640, 0x7fffffffda08, 0x7fffffffd997}
        d = <optimized out>
        threadData = 0x6ee5c0
#21 0x00007ffff6834862 in QCoreApplication::sendSpontaneousEvent (
    receiver=receiver@entry=0x2dd0640,
    event=event@entry=0x7fffffffda08)
    at ../../include/QtCore/../../../src/corelib/kernel/qcoreapplication.h:234
No locals.
#22 0x00007ffff6833806 in QGuiApplicationPrivate::processExposeEvent
    (e=0x2e2bd30)
    at /srcbuild/qtbase/src/gui/kernel/qguiapplication.cpp:2797
        p = 0x2dd16e0
        exposeEvent = {<QEvent> = {
            _vptr.QEvent = 0x7ffff6af6558 <vtable for QExposeEvent+16>, static staticMetaObject = {d = {superdata = 0x0,
                stringdata = 0x7ffff62c9320 <qt_meta_stringdata_QEvent>, data = 0x7ffff62c8d60 <qt_meta_data_QEvent>,
                static_metacall = 0x0, relatedMetaObjects = 0x0,
                extradata = 0x0}}, d = 0x0, t = 206, posted = 0,
            spont = 1, m_accept = 1, reserved = 7888}, rgn = {
            d = 0x2e2bcd0, static shared_empty = {ref = {atomic = {
                  _q_value = {<std::__atomic_base<int>> = {
                      static _S_alignment = 4,
                      _M_i = -1}, <No data fields>}}},
              qt_rgn = 0x7ffff6b0d0c0 <qrp>}}}
#23 0x00007ffff6833fe4 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x2e2bd30)
    at /srcbuild/qtbase/src/gui/kernel/qguiapplication.cpp:1755
        __PRETTY_FUNCTION__ = "static void QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)"
#24 0x00007ffff68210f3 in QWindowSystemInterface::sendWindowSystemEvents (flags=...)
    at /srcbuild/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:654
        event = 0x2e2bd30
        nevents = 2
#25 0x00007fffee01cf91 in userEventSourceDispatch (
    source=<optimized out>)
    at /srcbuild/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:76
        userEventSource = <optimized out>
        dispatcher = <optimized out>
#26 0x00007ffff13a130e in g_main_dispatch (context=0x7bd9e0)
    at gmain.c:3165
        dispatch = 0x7fffee01cf84 <userEventSourceDispatch(GSource*, GSourceFunc, gpointer)>
        prev_source = 0x0
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = 0x0
        cb_data = 0x0
        need_destroy = <optimized out>
        source = 0x7a8690
        current = 0x705060
        i = 1
#27 g_main_context_dispatch (context=context@entry=0x7bd9e0)
    at gmain.c:3780
No locals.
#28 0x00007ffff13a1543 in g_main_context_iterate (
    context=context@entry=0x7bd9e0, block=block@entry=1,
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3851
        max_priority = 0
        timeout = 0
        some_ready = 1
        nfds = <optimized out>
        allocated_nfds = <optimized out>
        fds = 0x7f93a0
#29 0x00007ffff13a15dc in g_main_context_iteration (
    context=0x7bd9e0, may_block=may_block@entry=1) at gmain.c:3912
        retval = <optimized out>
#30 0x00007ffff617208c in QEventDispatcherGlib::processEvents (
    this=0x7a3800, flags=...)
    at /srcbuild/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:423
        d = 0x711000
        canWait = true
        savedFlags = {i = 0}
        result = <optimized out>
#31 0x00007ffff613da04 in QEventLoop::exec (
    this=this@entry=0x7fffffffdcc0, flags=..., flags@entry=...)
    at /srcbuild/qtbase/src/corelib/kernel/qeventloop.cpp:212
        d = 0x7fa860
        locker = {val = 7275968}
        __PRETTY_FUNCTION__ = "int QEventLoop::exec(QEventLoop::ProcessEventsFlags)"
        ref = {d = 0x7fa860, locker = @0x7fffffffdc58,
          exceptionCaught = true}
#32 0x00007ffff6141abf in QCoreApplication::exec ()
    at /srcbuild/qtbase/src/corelib/kernel/qcoreapplication.cpp:1261
        threadData = 0x6ee5c0
        __PRETTY_FUNCTION__ = "static int QCoreApplication::exec()"
        eventLoop = {<QObject> = {
            _vptr.QObject = 0x7ffff6360958 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0,
                stringdata = 0x7ffff62690e0 <qt_meta_stringdata_QObject>, data = 0x7ffff6268fc0 <qt_meta_data_QObject>,
                static_metacall = 0x7ffff615cf9e <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
                relatedMetaObjects = 0x0, extradata = 0x0}},
            d_ptr = {d = 0x7fa860}, static staticQtMetaObject = {
              d = {superdata = 0x0,
                stringdata = 0x7ffff62b15c0 <qt_meta_stringdata_Qt>,
                data = 0x7ffff62aeb00 <qt_meta_data_Qt>,
                static_metacall = 0x0, relatedMetaObjects = 0x0,
                extradata = 0x0}}}, static staticMetaObject = {d = {
              superdata = 0x7ffff6362840 <QObject::staticMetaObject>, stringdata = 0x7ffff62c8960 <qt_meta_stringdata_QEventLoop>,
              data = 0x7ffff62c8900 <qt_meta_data_QEventLoop>,
              static_metacall = 0x7ffff61a49f6 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
              relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#33 0x0000000000412d0e in main ()
No symbol table info available.
Comment 1 n3rdopolis 2016-07-16 03:11:00 UTC
I can add that this is swrast and wayland, as when I try using qtwayland's x11 backend it works, and when I try 64 bit on Intel with qtwayland it works
Comment 2 n3rdopolis 2016-07-23 23:19:10 UTC
If I run the same program with 
export SWRAST_NO_PRESENT=1
nothing appears, the program (calamares) seems to run without crashing, it might be a bug in swrast?
Comment 3 n3rdopolis 2016-09-27 03:48:57 UTC
I tried a recent recompile, this still appears to be happening, 64 bit only. 32 bit is fine
Comment 4 GitLab Migration User 2019-09-18 18:08:39 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/169.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.