i915g: Make sure to map tiled buffers via the gtt

This commit is contained in:
Jakob Bornecrantz
2009-09-23 11:54:22 -07:00
parent 60d72d9e45
commit 5aecddc153
2 changed files with 12 additions and 1 deletions
@@ -41,6 +41,7 @@ intel_drm_buffer_from_handle(struct intel_drm_winsys *idws,
const char* name, unsigned handle)
{
struct intel_drm_buffer *buf = CALLOC_STRUCT(intel_drm_buffer);
uint32_t tile = 0, swizzle = 0;
if (!buf)
return NULL;
@@ -53,6 +54,10 @@ intel_drm_buffer_from_handle(struct intel_drm_winsys *idws,
if (!buf->bo)
goto err;
drm_intel_bo_get_tiling(buf->bo, &tile, &swizzle);
if (tile != INTEL_TILE_NONE)
buf->map_gtt = TRUE;
return (struct intel_buffer *)buf;
err:
@@ -58,11 +58,17 @@ intel_drm_buffer_set_fence_reg(struct intel_winsys *iws,
unsigned stride,
enum intel_buffer_tile tile)
{
struct intel_drm_buffer *buf = intel_drm_buffer(buffer);
assert(I915_TILING_NONE == INTEL_TILE_NONE);
assert(I915_TILING_X == INTEL_TILE_X);
assert(I915_TILING_Y == INTEL_TILE_Y);
return drm_intel_bo_set_tiling(intel_bo(buffer), &tile, stride);
if (tile != INTEL_TILE_NONE) {
assert(buf->map_count == 0);
buf->map_gtt = TRUE;
}
return drm_intel_bo_set_tiling(buf->bo, &tile, stride);
}
static void *