drm/i915: Immediately discard any backing storage for uneeded objects

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2009-09-20 23:13:10 +01:00
parent 963b483691
commit 2d7ef395b3

View file

@ -4110,6 +4110,11 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data,
obj_priv->madv = args->madv; obj_priv->madv = args->madv;
args->retained = obj_priv->gtt_space != NULL; args->retained = obj_priv->gtt_space != NULL;
/* if the object is no longer bound, discard its backing storage */
if (i915_gem_object_is_purgeable(obj_priv) &&
obj_priv->gtt_space == NULL)
i915_gem_object_truncate(obj);
drm_gem_object_unreference(obj); drm_gem_object_unreference(obj);
mutex_unlock(&dev->struct_mutex); mutex_unlock(&dev->struct_mutex);