Summary: | [softpipe] state_tracker/st_manager.c:489: st_context_notify_invalid_framebuffer: Assertion `stfb && stfb->iface == stfbi' failed. | ||
---|---|---|---|
Product: | Mesa | Reporter: | Vinson Lee <vlee> |
Component: | Other | Assignee: | Keith Whitwell <keithw> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | critical | ||
Priority: | medium | CC: | brianp, wallbraker |
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Vinson Lee
2010-10-05 11:51:03 UTC
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.