Hans-Kristian Arntzen : vkd3d: Optimise the GPU VA allocator.
Module: vkd3d Branch: master Commit: fd4488c3ab9ac3ae13bcf778d56b35e804b8d8a0 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=fd4488c3ab9ac3ae13bcf778... Author: Hans-Kristian Arntzen <post(a)arntzen-software.no> Date: Thu Oct 24 18:21:41 2019 +0330 vkd3d: Optimise the GPU VA allocator. The GPU VA allocator was allocating memory in a way where dereferencing GPU VA required a lock + bsearch() to find the right VA range. Rather than going this route, we turn the common case into O(1) and lock-free by creating a slab allocator which allows us to lookup a pointer directly from a GPU VA with (VA - Base) / PageSize. The number of allocations in the fast path must be limited since we cannot trivially grow the allocator while remaining lock-free for dereferences. Signed-off-by: Hans-Kristian Arntzen <post(a)arntzen-software.no> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d/device.c | 226 +++++++++++++++++++++++++++++++++++++-------- libs/vkd3d/vkd3d_private.h | 28 ++++-- 2 files changed, 204 insertions(+), 50 deletions(-) Diff: https://source.winehq.org/git/vkd3d.git/?a=commitdiff;h=fd4488c3ab9ac3ae13bc...
participants (1)
-
Alexandre Julliard