diff options
-rw-r--r-- | src/sna/kgem.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/sna/kgem.c b/src/sna/kgem.c index ca7eafae..0b2e1d66 100644 --- a/src/sna/kgem.c +++ b/src/sna/kgem.c @@ -692,13 +692,14 @@ void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, int gen) if (kgem->max_gpu_size > kgem->max_cpu_size) kgem->max_gpu_size = kgem->max_cpu_size; - kgem->max_tile_size = kgem->aperture_total / 4; + kgem->max_tile_size = MAX_CACHE_SIZE; if (kgem->max_tile_size > kgem->max_gpu_size / 2) kgem->max_tile_size = kgem->max_gpu_size / 2; totalram = total_ram_size(); if (totalram == 0) { - DBG(("%s: total ram size unknown, assuming maximum of total aperture\n")); + DBG(("%s: total ram size unknown, assuming maximum of total aperture\n", + __FUNCTION__)); totalram = kgem->aperture_total; } if (kgem->max_object_size > totalram / 2) @@ -3193,7 +3194,9 @@ struct kgem_bo *kgem_create_buffer(struct kgem *kgem, #if !DBG_NO_MAP_UPLOAD /* Be a little more generous and hope to hold fewer mmappings */ alloc = ALIGN(2*size, kgem->partial_buffer_size); - if (alloc > kgem->max_gpu_size) + if (alloc > kgem->max_tile_size) + alloc = ALIGN(size, kgem->partial_buffer_size); + if (alloc > kgem->max_tile_size) alloc = PAGE_ALIGN(size); alloc /= PAGE_SIZE; if (kgem->has_cpu_bo) { |