Bug 90202

Summary: Firefox nightly hangs with accelerated layers and latest r600 driver
Product: Mesa Reporter: Ernst Sjöstrand <ernstp>
Component: Drivers/Gallium/r600Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact: Default DRI bug account <dri-devel>
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: bt full
thread apply all bt

Description Ernst Sjöstrand 2015-04-27 19:16:22 UTC
(This is not #81680 btw, this is separate...)

If I enable layers.acceleration.force-enabled in Firefox nightly,
Firefox always hangs after a little while of browsing.
This is a regression somewhere, this worked during a couple of months...
Comment 1 Ernst Sjöstrand 2015-04-27 19:16:51 UTC
Created attachment 115384 [details]
bt full
Comment 2 Ernst Sjöstrand 2015-04-27 19:17:09 UTC
Created attachment 115385 [details]
thread apply all bt
Comment 3 Ernst Sjöstrand 2015-04-27 19:19:10 UTC
I guess this is the GL related stuff in the backtrace. Something DRI3 related?

Thread 2 (Thread 0x7fffd81ff700 (LWP 12150)):
#0  0x00007ffff7bc7da0 in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fffea88bdb9 in _xcb_conn_wait (c=c@entry=0x7ffff6bde000, cond=cond@entry=0x7fffc7c841c8, vector=vector@entry=0x0, count=count@entry=0x0) at ../../src/xcb_conn.c:415

#2  0x00007fffea88cf91 in xcb_wait_for_special_event (c=0x7ffff6bde000, se=0x7fffc7c841a0) at ../../src/xcb_in.c:715
#3  0x00007fffcd6b140d in dri3_find_back (c=0x7ffff6bde000, priv=0x7fffc7c4e4f0) at ../../../../src/glx/dri3_glx.c:1263
#4  0x00007fffcd6b1b3c in dri3_get_buffer (format=4099, buffer_type=dri3_buffer_back, loaderPrivate=0x7fffc7c4e4f0, driDrawable=<optimized out>) at ../../../../src/glx/dri3_glx.c:1289

#5  0x00007fffcd6b2798 in dri3_get_buffers (driDrawable=<optimized out>, format=4099, stamp=0x7fffcec457c0, loaderPrivate=0x7fffc7c4e4f0, buffer_mask=<optimized out>, buffers=0x7fffd81fe410) at ../../../../src/glx/dri3_glx.c:1466
#6  0x00007fffcba4dbd0 in dri2_allocate_textures (ctx=0x7fffcd981ce0, drawable=0x7fffcec457c0, statts=0x7fffc7d81448, statts_count=2) at ../../../../../../src/gallium/state_trackers/dri/dri2.c:278
#7  0x00007fffcba4af05 in dri_st_framebuffer_validate (stctx=<optimized out>, stfbi=<optimized out>, statts=0x7fffc7d81448, count=2, out=0x7fffd81fe5a0) at ../../../../../../src/gallium/state_trackers/dri/dri_drawable.c:83
#8  0x00007fffcb97ea6e in st_framebuffer_validate (stfb=0x7fffc7d81000, st=0x7fffc7c60000) at ../../../../src/mesa/state_tracker/st_manager.c:200
#9  0x00007fffcb9800a8 in st_manager_validate_framebuffers (st=0x7fffc7c60000) at ../../../../src/mesa/state_tracker/st_manager.c:863
#10 0x00007fffcb94e73e in st_validate_state (st=0x7fffc7c60000) at ../../../../src/mesa/state_tracker/st_atom.c:181
#11 0x00007fffcb955583 in st_Clear (ctx=0x7fffc7c24000, mask=18) at ../../../../src/mesa/state_tracker/st_cb_clear.c:463
#12 0x00007ffff1b9414d in mozilla::gl::GLContext::fClear(unsigned int) (this=0x7fffc7c69000, mask=<optimized out>) at ../../dist/include/GLContext.h:956
#13 0x00007ffff1b9414d in mozilla::gl::GLContext::fClear(unsigned int) (this=0x7fffc7c69000, mask=<optimized out>) at ../../dist/include/GLContext.h:963
#14 0x00007ffff1b9af96 in mozilla::layers::CompositorOGL::BeginFrame(nsIntRegion const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits> const*, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits>*, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits>*) (this=0x7fffcec45400, aInvalidRegion=..., aClipRectIn=0x0, aRenderBounds=..., aClipRectOut=0x7fffd81fe890, aRenderBoundsOut=<optimized out>)
    at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/gfx/layers/opengl/CompositorOGL.cpp:664

#15 0x00007ffff1b8977b in mozilla::layers::LayerManagerComposite::Render() (this=this@entry=0x7fffd13c6ed0) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/gfx/layers/composite/LayerManagerComposite.cpp:717
#16 0x00007ffff1b89db1 in mozilla::layers::LayerManagerComposite::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, nsIntRegion const&, mozilla::layers::DrawRegionClip, nsIntRegion const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) (this=0x7fffd13c6ed0, aCallback=<optimized out>, aCallbackData=<optimized out>, aFlags=<optimized out>)
    at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/gfx/layers/composite/LayerManagerComposite.cpp:314
#17 0x00007ffff1b89e81 in mozilla::layers::LayerManagerComposite::EndEmptyTransaction(mozilla::layers::LayerManager::EndTransactionFlags) (this=<optimized out>, aFlags=aFlags@entry=mozilla::layers::LayerManager::END_DEFAULT)
    at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/gfx/layers/composite/LayerManagerComposite.cpp:261
#18 0x00007ffff1b8fe38 in mozilla::layers::CompositorParent::CompositeToTarget(mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const*) (this=0x7fffcda28400, aTarget=aTarget@entry=0x0, aRect=aRect@entry=0x0)
    at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/gfx/layers/ipc/CompositorParent.cpp:1040
---Type <return> to continue, or q <return> to quit---
#19 0x00007ffff1b8ffe2 in mozilla::layers::CompositorParent::CompositeCallback(mozilla::TimeStamp) (this=<optimized out>, aScheduleTime=...) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/gfx/layers/ipc/CompositorParent.cpp:952
#20 0x00007ffff1b90061 in mozilla::layers::CompositorVsyncObserver::Composite(mozilla::TimeStamp) (this=0x7fffcdac6550, aVsyncTimestamp=...) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/gfx/layers/ipc/CompositorParent.cpp:339
#21 0x00007ffff17a8fa1 in MessageLoop::RunTask(Task*) (this=0x7fffd81fed50, task=0x7fffadcff7c0) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/ipc/chromium/src/base/message_loop.cc:361
#22 0x00007ffff17aace6 in MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) (this=<optimized out>, pending_task=...) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/ipc/chromium/src/base/message_loop.cc:369
#23 0x00007ffff17ac917 in MessageLoop::DoWork() (this=0x7fffd81fed50) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/ipc/chromium/src/base/message_loop.cc:456
#24 0x00007ffff17a9184 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) (this=0x7fffddf66820, delegate=0x7fffd81fed50) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/ipc/chromium/src/base/message_pump_default.cc:34
#25 0x00007ffff17a901b in MessageLoop::Run() (this=0x7fffd81fed50) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/ipc/chromium/src/base/message_loop.cc:226
#26 0x00007ffff17a901b in MessageLoop::Run() (this=this@entry=0x7fffd81fed50) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/ipc/chromium/src/base/message_loop.cc:200
#27 0x00007ffff17b0174 in base::Thread::ThreadMain() (this=0x7fffddf667c0) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/ipc/chromium/src/base/thread.cc:170
#28 0x00007ffff17add00 in ThreadFunc(void*) (closure=<optimized out>) at /build/buildd/firefox-trunk-40.0~a1~hg20150422r240313/ipc/chromium/src/base/platform_thread_posix.cc:39
#29 0x00007ffff7bc26aa in start_thread (arg=0x7fffd81ff700) at pthread_create.c:333
#30 0x00007ffff70dceed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Comment 4 Michel Dänzer 2015-04-28 01:10:52 UTC
Sounds like bug 84252.
Comment 5 Ernst Sjöstrand 2015-04-28 08:56:17 UTC
I have tested with the Radeon driver using both DRI2 and DRI3 btw, it happens in both cases. The backtraces are when using DRI2.
Comment 6 Michel Dänzer 2015-04-30 02:36:37 UTC
(In reply to Ernst Sjöstrand from comment #5)
> The backtraces are when using DRI2.

What do you mean by that? As you pointed out yourself in comment #3, that backtrace is clearly from running with DRI3 enabled.
Comment 7 Michel Dänzer 2016-01-14 09:16:49 UTC
I can't seem to reproduce this (with radeonsi). Does it still happen with libxcb 1.11.1 or newer, and current versions of Mesa and xserver?
Comment 8 Ernst Sjöstrand 2016-01-14 10:00:34 UTC
Looks like 1.11.1 is in Ubuntu Xenial, should be easy to test on Wily also...
Comment 9 Ernst Sjöstrand 2016-11-25 21:11:55 UTC
Fixed!

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.