Module: vkd3d Branch: master Commit: 3db509383b9f5a0963e76c08dcb2fe903a6ed560 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/3db509383b9f5a0963e76c08dcb2fe...
Author: Conor McCarthy cmccarthy@codeweavers.com Date: Wed Jan 25 15:25:48 2023 +1000
vkd3d: Store a heap array index in each CBV/SRV/UAV descriptor.
A pointer to the containing descriptor heap can be derived from this information.
PE build of vkd3d uses Windows critical sections for synchronisation, and these slow down on the very high lock/unlock rate during multithreaded descriptor copying in Shadow of the Tomb Raider. This patch speeds up the demo by about 8%. By comparison, using SRW locks in the allocators and locking them for read only where applicable is about 4% faster.
---
libs/vkd3d/command.c | 57 +++++-------- libs/vkd3d/device.c | 195 +++------------------------------------------ libs/vkd3d/resource.c | 174 +++++++++++++++++++++------------------- libs/vkd3d/vkd3d_private.h | 57 ++++++------- 4 files changed, 149 insertions(+), 334 deletions(-)