diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-07-02 23:04:14 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-07-04 15:27:54 +0100 |
commit | 6db93720a73f59a9857a3c5ab260fab8b957813e (patch) | |
tree | 10b2d9105f392b9e1b4bce2fdc88bbe20871d9c3 | |
parent | 430c905ef306ece8a4cb19091711a9feae74b00b (diff) |
sna: Don't change tiling modes on replace
This was trying to workaround a kernel bug, and instead causes a
performance cliff for textures that *need* to be tiled.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/sna_io.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c index 61d10625..c3904664 100644 --- a/src/sna/sna_io.c +++ b/src/sna/sna_io.c @@ -411,22 +411,15 @@ struct kgem_bo *sna_replace(struct sna *sna, struct kgem *kgem = &sna->kgem; void *dst; - DBG(("%s(%dx%d, bpp=%d, tiling=%d)\n", - __FUNCTION__, width, height, bpp, bo->tiling)); + DBG(("%s(handle=%d, %dx%d, bpp=%d, tiling=%d)\n", + __FUNCTION__, bo->handle, width, height, bpp, bo->tiling)); assert(bo->reusable); if (kgem_bo_is_busy(kgem, bo)) { struct kgem_bo *new_bo; - int tiling = bo->tiling; - - /* As we use fences for GPU BLTs, we often have - * lots of contention upon the limited number of fences. - */ - if (sna->kgem.gen < 40) - tiling = I915_TILING_NONE; new_bo = kgem_create_2d(kgem, - width, height, bpp, tiling, + width, height, bpp, bo->tiling, CREATE_INACTIVE); if (new_bo) { kgem_bo_destroy(kgem, bo); |