mesa: b2e52cdf83662e5d81de2a476a7d53dc82271eb4 (master) - fail mesa: 2b4a05e74a3378dc924e50103ed280412fb0c94b (7.9) - fail mesa: 3af43c0b4c29f7cb82df72d0b65bcd190053f57c (7.8) - pass Run piglit glx-make-current on softpipe. $ ./bin/glx-make-current -auto (gdb) bt #0 0x00aa6416 in __kernel_vsyscall () #1 0x00910941 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #2 0x00913e42 in abort () at abort.c:92 #3 0x009098e8 in __assert_fail (assertion=0x614726 "stfb && stfb->iface == stfbi", file=0x6146d0 "state_tracker/st_manager.c", line=489, function=0x6147c0 "st_context_notify_invalid_framebuffer") at assert.c:81 #4 0x003ab125 in st_context_notify_invalid_framebuffer (stctxi=0x8d70158, stfbi=0x8d60958) at state_tracker/st_manager.c:489 #5 0x0038ebac in xmesa_notify_invalid_buffer (b=0x8d83c60) at xm_api.c:1098 #6 0x0038ec09 in xmesa_check_buffer_size (b=0x8d83c60) at xm_api.c:1112 #7 0x0038f769 in xmesa_st_framebuffer_validate (stfbi=0x8d60958, statts=0x8d8406c, count=1, out=0xbfb57014) at xm_st.c:222 #8 0x003aa64a in st_framebuffer_validate (stfb=0x8d83d08, st=0x8d70158) at state_tracker/st_manager.c:156 #9 0x003ab75b in st_api_make_current (stapi=0x6ea820, stctxi=0x8d70158, stdrawi=0x8d60958, streadi=0x8d60958) at state_tracker/st_manager.c:712 #10 0x0038ed02 in XMesaMakeCurrent2 (c=0x8c89e48, drawBuffer=0x8d83c60, readBuffer=0x8d83c60) at xm_api.c:1147 #11 0x0039174b in glXMakeContextCurrent (dpy=0x8c7ed88, draw=58720260, read=58720260, ctx=0x8c89e28) at glx_api.c:1144 #12 0x00391832 in glXMakeCurrent (dpy=0x8c7ed88, drawable=58720260, ctx=0x8c89e28) at glx_api.c:1178 #13 0x0804a08f in draw (dpy=0x8c7ed88) at piglit/tests/glx/glx-make-current.c:56 #14 0x0804c4ba in piglit_glx_event_loop (dpy=0x8c7ed88, draw=0x8049fe4 <draw>) at piglit/tests/util/piglit-glx-util.c:131 #15 0x0804a2cc in main (argc=2, argv=0xbfb572f4) at piglit/tests/glx/glx-make-current.c:101 (gdb) frame 4 #4 0x003ab125 in st_context_notify_invalid_framebuffer (stctxi=0x8d70158, stfbi=0x8d60958) at state_tracker/st_manager.c:489 489 assert(stfb && stfb->iface == stfbi); (gdb) print stfb $7 = (struct st_framebuffer *) 0x8d9a6d0 (gdb) print stfb->iface $8 = (struct st_framebuffer_iface *) 0x8d62be8 (gdb) print stfbi $9 = (struct st_framebuffer_iface *) 0x8d60958
piglit glx-make-current passes on linux-x86 build and asserts on linux-x86-debug build.
42719df0b866a00ea4a7739e82e1639c9943fcfd is the first bad commit commit 42719df0b866a00ea4a7739e82e1639c9943fcfd Author: Keith Whitwell <keithw@vmware.com> Date: Sun Aug 22 14:14:55 2010 +0100 glx/xlib: configurable strict/non-strict buffer size invalidate Introduce a new configuration option XMESA_STRICT_INVALIDATE to switch between swapbuffers-based and glViewport-based buffer invalidation. Default strict invalidate to false, ie glViewport-based invalidation, aka ST_MANAGER_BROKEN_INVALIDATE. This means we will not call XGetGeometry after every swapbuffers, which allows swapbuffers to remain asynchronous. For apps running at 100fps with synchronous swapping, a 10% boost is typical. For gears, I see closer to 20% speedup. Note that the work of copying data on swapbuffers doesn't disappear - this change just allows the X server to execute the PutImage asynchronously without us effectively blocked until its completion. This applies even to llvmpipe's threaded rasterization as the swapbuffers operation was a large part of the serial component of an llvmpipe frame. The downside of this is correctness - applications which don't call glViewport on window resizes will get incorrect rendering, unless XMESA_STRICT_INVALIDATE is set. The ultimate solution would be to have per-frame but asynchronous invalidation. Xcb almost looks as if it could provide this, but the API doesn't seem to quite be there. :040000 040000 c252970f9b71af088aa1a466f1cc0abe36fa1660 a024a9242fb8039240612478a89dc3b56ed7f212 M src bisect run success
glx-make-current passes on a softpipe linux-x86-debug build with XMESA_STRICT_INVALIDATE=1.
Fixed with Mesa commit 3d6eec0a87ee5549e817cdabb4b6424960678189
mesa: 9528fc2107d4cae39bc932c1943ffc57ebc92499 (master) Verified fixed on master.
Cherry-picked to 7.9 too. Commit 0a060c8fb0594807f59bde5c77b518c0ebc99bec
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.