diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-04-21 11:23:23 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-05-03 05:18:06 -0400 |
commit | 5d82e3e6427d407e5e4713a2f73210b4e7801ad3 (patch) | |
tree | 15195b0bf801467db545342481d1b793bff09776 /drivers/gpu/drm/i915/i915_gem.c | |
parent | 38de45c5fc61a4a6b2f0b4b7c9ae9f32f058f420 (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.c | 8 |
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(®->lru_list, | 2472 | list_move_tail(®->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 | } |