From ee8e018038c7ff2bd72d64ee192af0d8cd3cf1b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tur=C3=A1nszki=20J=C3=A1nos?= Date: Tue, 26 Apr 2022 11:49:20 +0200 Subject: [PATCH] jobsystem: group shared memory with thread_local instead of alloca --- WickedEngine/wiAudio.cpp | 2 +- WickedEngine/wiJobSystem.cpp | 4 +++- WickedEngine/wiVersion.cpp | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/WickedEngine/wiAudio.cpp b/WickedEngine/wiAudio.cpp index 1b93e13d0..b78a07f6a 100644 --- a/WickedEngine/wiAudio.cpp +++ b/WickedEngine/wiAudio.cpp @@ -348,7 +348,7 @@ namespace wi::audio { XAUDIO2_SEND_USEFILTER, instanceinternal->audio->reverbSubmix }, // this should be last to enable/disable reverb simply }; XAUDIO2_VOICE_SENDS SFXSendList = { - instance->IsEnableReverb() ? arraysize(SFXSend) : 1, + instance->IsEnableReverb() ? (uint32_t)arraysize(SFXSend) : 1, SFXSend }; diff --git a/WickedEngine/wiJobSystem.cpp b/WickedEngine/wiJobSystem.cpp index 2bfd8e5a1..1ca65578a 100644 --- a/WickedEngine/wiJobSystem.cpp +++ b/WickedEngine/wiJobSystem.cpp @@ -87,7 +87,9 @@ namespace wi::jobsystem args.groupID = job.groupID; if (job.sharedmemory_size > 0) { - args.sharedmemory = alloca(job.sharedmemory_size); + thread_local static wi::vector shared_allocation_data; + shared_allocation_data.reserve(job.sharedmemory_size); + args.sharedmemory = shared_allocation_data.data(); } else { diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index 0998b3653..a07a1541e 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wi::version // minor features, major updates, breaking compatibility changes const int minor = 60; // minor bug fixes, alterations, refactors, updates - const int revision = 56; + const int revision = 57; const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);