From: Jesse B. <jb...@vi...> - 2008-10-23 23:18:07
|
On Wednesday, October 22, 2008 2:42 pm Jesse Barnes wrote: > Ok, this one actually works w/o corrupting your display. However, after > running for awhile I end up hitting the BUG_ON at i915_gem.c:1061, so I'm > hoping someone can tell me where I messed up the list handling (the change > in i915_gem_retire_request tries to deal with that, since the flushing list > is also non-empty at leavevt time for some reason). Ok, some more details on this. It looks like we're getting to unbind with an active object, generally from get_fence but sometimes from other paths too. The object is active so i915_gem_wait_rendering(obj) ends up calling i915_wait_request() on it. But the object itself isn't on any of the lists: inactive, flushing, or active, which is probably why wait_request doesn't end up clearing its active flag (even though its seqno has passed). Also, I confirmed that i915_gem_object_set_domain wasn't queuing a request with the object by putting the BUG_ON(obj->active) up above it, so this seems to be just an object retirement bug of some kind... Jesse |