summaryrefslogtreecommitdiffstats
path: root/core/command_queue_mt.cpp
diff options
context:
space:
mode:
authorLyuma <xn.lyuma@gmail.com>2020-09-24 09:03:19 -0700
committerLyuma <xn.lyuma@gmail.com>2020-10-12 08:24:08 -0700
commit48e8da4aac6c2f6c56f38e2778329178b27666e7 (patch)
tree8b02ef17cdb585bc6431265e0822e85ceff2eae8 /core/command_queue_mt.cpp
parentab0907c1bab2b1f4131aa63d24f9d337692d64a6 (diff)
downloadredot-engine-48e8da4aac6c2f6c56f38e2778329178b27666e7.tar.gz
core/command_queue_mt: Customizable size and tests
Adds unit tests for command_queue_mt.h/cpp In this revision, some unit tests will fail due to issue #42107.
Diffstat (limited to 'core/command_queue_mt.cpp')
-rw-r--r--core/command_queue_mt.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/command_queue_mt.cpp b/core/command_queue_mt.cpp
index ace210ca2c..95fcd2c70e 100644
--- a/core/command_queue_mt.cpp
+++ b/core/command_queue_mt.cpp
@@ -31,6 +31,7 @@
#include "command_queue_mt.h"
#include "core/os/os.h"
+#include "core/project_settings.h"
void CommandQueueMT::lock() {
mutex.lock();
@@ -94,6 +95,10 @@ tryagain:
}
CommandQueueMT::CommandQueueMT(bool p_sync) {
+ command_mem_size = GLOBAL_DEF_RST("memory/limits/command_queue/multithreading_queue_size_kb", DEFAULT_COMMAND_MEM_SIZE_KB);
+ ProjectSettings::get_singleton()->set_custom_property_info("memory/limits/command_queue/multithreading_queue_size_kb", PropertyInfo(Variant::INT, "memory/limits/command_queue/multithreading_queue_size_kb", PROPERTY_HINT_RANGE, "1,4096,1,or_greater"));
+ command_mem_size *= 1024;
+ command_mem = (uint8_t *)memalloc(command_mem_size);
if (p_sync) {
sync = memnew(Semaphore);
}