aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-04-21 11:23:23 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-05-03 05:18:06 -0400
commit5d82e3e6427d407e5e4713a2f73210b4e7801ad3 (patch)
tree15195b0bf801467db545342481d1b793bff09776 /drivers/gpu/drm/i915/i915_gem.c
parent38de45c5fc61a4a6b2f0b4b7c9ae9f32f058f420 (diff)
drm/i915: Clarify the semantics of tiling_changed
Rename obj->tiling_changed to obj->fence_dirty so that it is clear that it flags when the parameters for an active fence (including the no-fence) register are changed. Also, do not set this flag when the object does not have a fence register allocated currently and the gpu does not depend upon the unfence. This case works exactly like when a tiled object lost its fence and hence does not need additional handling for the tiling change in the code. v2: Use fence_dirty to better express what the flag tracks and add a few more details to the comments to serve as a reminder of how the GPU also uses the unfenced register slot. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> [danvet: Add some bikeshed to the commit message about the stricter use of fence_dirty.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 9e9ea759e496..38490cdf2d9f 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -66,7 +66,7 @@ static inline void i915_gem_object_fence_lost(struct drm_i915_gem_object *obj)
66 /* As we do not have an associated fence register, we will force 66 /* As we do not have an associated fence register, we will force
67 * a tiling change if we ever need to acquire one. 67 * a tiling change if we ever need to acquire one.
68 */ 68 */
69 obj->tiling_changed = false; 69 obj->fence_dirty = false;
70 obj->fence_reg = I915_FENCE_REG_NONE; 70 obj->fence_reg = I915_FENCE_REG_NONE;
71} 71}
72 72
@@ -2459,7 +2459,7 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj)
2459 /* Have we updated the tiling parameters upon the object and so 2459 /* Have we updated the tiling parameters upon the object and so
2460 * will need to serialise the write to the associated fence register? 2460 * will need to serialise the write to the associated fence register?
2461 */ 2461 */
2462 if (obj->tiling_changed) { 2462 if (obj->fence_dirty) {
2463 ret = i915_gem_object_flush_fence(obj); 2463 ret = i915_gem_object_flush_fence(obj);
2464 if (ret) 2464 if (ret)
2465 return ret; 2465 return ret;
@@ -2468,7 +2468,7 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj)
2468 /* Just update our place in the LRU if our fence is getting reused. */ 2468 /* Just update our place in the LRU if our fence is getting reused. */
2469 if (obj->fence_reg != I915_FENCE_REG_NONE) { 2469 if (obj->fence_reg != I915_FENCE_REG_NONE) {
2470 reg = &dev_priv->fence_regs[obj->fence_reg]; 2470 reg = &dev_priv->fence_regs[obj->fence_reg];
2471 if (!obj->tiling_changed) { 2471 if (!obj->fence_dirty) {
2472 list_move_tail(&reg->lru_list, 2472 list_move_tail(&reg->lru_list,
2473 &dev_priv->mm.fence_list); 2473 &dev_priv->mm.fence_list);
2474 return 0; 2474 return 0;
@@ -2491,7 +2491,7 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj)
2491 return 0; 2491 return 0;
2492 2492
2493 i915_gem_object_update_fence(obj, reg, enable); 2493 i915_gem_object_update_fence(obj, reg, enable);
2494 obj->tiling_changed = false; 2494 obj->fence_dirty = false;
2495 2495
2496 return 0; 2496 return 0;
2497} 2497}