From 06a4f7a846e09792b2f100aca5546215da0550b2 Mon Sep 17 00:00:00 2001 From: "yuri.benditovich@daynix.com" Date: Sat, 8 Apr 2017 13:46:52 +0300 Subject: [PATCH] qxl-wddm-dod: Optimize allocation of memory chunks Increased size of allocation to reduce number of allocation per bitmap. Before change the procedure ignored 'alloc_size' parameter and always allocated memory chunk according to 'size' parameter. As a result, first chunk could be up to 64K and all following are limited by line size. For example, for bitmap 1280x1024 there was more than 1008 chunks allocated, for bitmap 128x1024 - 897 chunks. We change the procedure to use chunk size up to 64K (similar to first chunk). This reduces in described examples number of allocation from 1008 to 64 and from 897 to 8 respectively. Signed-off-by: Yuri Benditovich Acked-by: Frediano Ziglio --- qxldod/QxlDod.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp index 4e3098f..80b942e 100755 --- a/qxldod/QxlDod.cpp +++ b/qxldod/QxlDod.cpp @@ -4544,7 +4544,7 @@ BOOLEAN QxlDevice::PutBytesAlign(QXLDataChunk **chunk_ptr, UINT8 **now_ptr, UINT8 *now = *now_ptr; UINT8 *end = *end_ptr; size_t maxAllocSize = BITS_BUF_MAX - BITS_BUF_MAX % size; - alloc_size = MIN(size, maxAllocSize); + alloc_size = MIN(alloc_size, maxAllocSize); DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__)); while (size) {