|
@@ -132,7 +132,7 @@ int i915_mutex_lock_interruptible(struct drm_device *dev)
|
|
|
static inline bool
|
|
|
i915_gem_object_is_inactive(struct drm_i915_gem_object *obj)
|
|
|
{
|
|
|
- return obj->gtt_space && !obj->active && obj->pin_count == 0;
|
|
|
+ return !obj->active && obj->pin_count == 0;
|
|
|
}
|
|
|
|
|
|
int
|
|
@@ -2737,6 +2737,7 @@ i915_gem_object_flush_cpu_write_domain(struct drm_i915_gem_object *obj)
|
|
|
int
|
|
|
i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
|
|
|
{
|
|
|
+ drm_i915_private_t *dev_priv = obj->base.dev->dev_private;
|
|
|
uint32_t old_write_domain, old_read_domains;
|
|
|
int ret;
|
|
|
|
|
@@ -2777,6 +2778,10 @@ i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
|
|
|
old_read_domains,
|
|
|
old_write_domain);
|
|
|
|
|
|
+ /* And bump the LRU for this access */
|
|
|
+ if (i915_gem_object_is_inactive(obj))
|
|
|
+ list_move_tail(&obj->mm_list, &dev_priv->mm.inactive_list);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|