diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-12-24 13:04:08 +0300 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-12-24 13:04:08 +0300 |
commit | 7645c4bfbb36f357f03815f5729c46ce8d89f008 (patch) | |
tree | eb2c45bbdfc715a9a6e96e6af9675a0440ef8ff1 /drivers/gpu/drm/i915/i915_gem.c | |
parent | 74b7ff48a93f44198ac03cc4e628d713f53d4668 (diff) | |
parent | 574f3c4f5c55e99ea60f71fd98cc54931d4b2eae (diff) | |
download | linux-7645c4bfbb36f357f03815f5729c46ce8d89f008.tar.xz |
Merge branch 'fix/hda' into topic/hda
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index ad672d854828..24fe8c10b4b2 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2309,7 +2309,14 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data, } obj_priv = obj->driver_private; - args->busy = obj_priv->active; + /* Don't count being on the flushing list against the object being + * done. Otherwise, a buffer left on the flushing list but not getting + * flushed (because nobody's flushing that domain) won't ever return + * unbusy and get reused by libdrm's bo cache. The other expected + * consumer of this interface, OpenGL's occlusion queries, also specs + * that the objects get unbusy "eventually" without any interference. + */ + args->busy = obj_priv->active && obj_priv->last_rendering_seqno != 0; drm_gem_object_unreference(obj); mutex_unlock(&dev->struct_mutex); |