summaryrefslogtreecommitdiff
path: root/src/sna/kgem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sna/kgem.c')
-rw-r--r--src/sna/kgem.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 311bac4e..cccdd59c 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -692,9 +692,13 @@ 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 = MAX_CACHE_SIZE;
- if (kgem->max_tile_size > kgem->max_gpu_size / 2)
- kgem->max_tile_size = kgem->max_gpu_size / 2;
+ kgem->max_upload_tile_size = kgem->aperture_mappable / 2;
+ if (kgem->max_upload_tile_size > kgem->max_gpu_size / 2)
+ kgem->max_upload_tile_size = kgem->max_gpu_size / 2;
+
+ kgem->max_copy_tile_size = (MAX_CACHE_SIZE + 1)/2;
+ if (kgem->max_copy_tile_size > kgem->max_gpu_size / 2)
+ kgem->max_copy_tile_size = kgem->max_gpu_size / 2;
totalram = total_ram_size();
if (totalram == 0) {
@@ -3197,9 +3201,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_tile_size)
+ if (alloc > MAX_CACHE_SIZE)
alloc = ALIGN(size, kgem->partial_buffer_size);
- if (alloc > kgem->max_tile_size)
+ if (alloc > MAX_CACHE_SIZE)
alloc = PAGE_ALIGN(size);
alloc /= PAGE_SIZE;
if (kgem->has_cpu_bo) {