OSDN Git Service

intel: Sanitise strides for linear buffers and SET_TILING
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 22 Jun 2010 10:07:26 +0000 (11:07 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 22 Jun 2010 10:09:12 +0000 (11:09 +0100)
Ensure that the user doesn't attempt to specify a stride to use with a
linear buffer by forcing such to be zero.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
intel/intel_bufmgr_gem.c

index 37b7467..14b6d7b 100644 (file)
@@ -1735,6 +1735,12 @@ drm_intel_gem_bo_set_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
        if (bo_gem->global_name == 0)
                return 0;
 
+       /* Linear buffers have no stride. By ensuring that we only ever use
+        * stride 0 with linear buffers, we simplify our code.
+        */
+       if (*tiling_mode === I915_TILING_NONE)
+               stride = 0;
+
        ret = drm_intel_gem_bo_set_tiling_internal(bo, *tiling_mode, stride);
        if (ret == 0)
                drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem);