Subversion Repositories Kolibri OS

Rev

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