Rev 3746 | Rev 4246 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3746 | Rev 4104 | ||
---|---|---|---|
Line 285... | Line 285... | ||
285 | 285 | ||
286 | if (INTEL_INFO(obj->base.dev)->gen >= 4) |
286 | if (INTEL_INFO(obj->base.dev)->gen >= 4) |
Line 287... | Line 287... | ||
287 | return true; |
287 | return true; |
288 | 288 | ||
289 | if (INTEL_INFO(obj->base.dev)->gen == 3) { |
289 | if (INTEL_INFO(obj->base.dev)->gen == 3) { |
290 | if (obj->gtt_offset & ~I915_FENCE_START_MASK) |
290 | if (i915_gem_obj_ggtt_offset(obj) & ~I915_FENCE_START_MASK) |
291 | return false; |
291 | return false; |
292 | } else { |
292 | } else { |
293 | if (obj->gtt_offset & ~I830_FENCE_START_MASK) |
293 | if (i915_gem_obj_ggtt_offset(obj) & ~I830_FENCE_START_MASK) |
Line 294... | Line 294... | ||
294 | return false; |
294 | return false; |
295 | } |
295 | } |
296 | 296 | ||
Line 297... | Line 297... | ||
297 | size = i915_gem_get_gtt_size(obj->base.dev, obj->base.size, tiling_mode); |
297 | size = i915_gem_get_gtt_size(obj->base.dev, obj->base.size, tiling_mode); |
298 | if (obj->gtt_space->size != size) |
298 | if (i915_gem_obj_ggtt_size(obj) != size) |
Line 299... | Line 299... | ||
299 | return false; |
299 | return false; |
300 | 300 | ||
Line 376... | Line 376... | ||
376 | * has to also include the unfenced register the GPU uses |
376 | * has to also include the unfenced register the GPU uses |
377 | * whilst executing a fenced command for an untiled object. |
377 | * whilst executing a fenced command for an untiled object. |
378 | */ |
378 | */ |
Line 379... | Line 379... | ||
379 | 379 | ||
380 | obj->map_and_fenceable = |
380 | obj->map_and_fenceable = |
- | 381 | !i915_gem_obj_ggtt_bound(obj) || |
|
381 | obj->gtt_space == NULL || |
382 | (i915_gem_obj_ggtt_offset(obj) + |
382 | (obj->gtt_offset + obj->base.size <= dev_priv->gtt.mappable_end && |
383 | obj->base.size <= dev_priv->gtt.mappable_end && |
Line 383... | Line 384... | ||
383 | i915_gem_object_fence_ok(obj, args->tiling_mode)); |
384 | i915_gem_object_fence_ok(obj, args->tiling_mode)); |
384 | 385 | ||
385 | /* Rebind if we need a change of alignment */ |
386 | /* Rebind if we need a change of alignment */ |
386 | if (!obj->map_and_fenceable) { |
387 | if (!obj->map_and_fenceable) { |
387 | u32 unfenced_alignment = |
388 | u32 unfenced_align = |
388 | i915_gem_get_gtt_alignment(dev, obj->base.size, |
389 | i915_gem_get_gtt_alignment(dev, obj->base.size, |
389 | args->tiling_mode, |
390 | args->tiling_mode, |
390 | false); |
391 | false); |
391 | if (obj->gtt_offset & (unfenced_alignment - 1)) |
392 | if (i915_gem_obj_ggtt_offset(obj) & (unfenced_align - 1)) |
Line 392... | Line 393... | ||
392 | ret = i915_gem_object_unbind(obj); |
393 | ret = i915_gem_object_ggtt_unbind(obj); |
393 | } |
394 | } |
394 | 395 |