summaryrefslogtreecommitdiff
path: root/core/command_queue_mt.h
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.h
parentab0907c1bab2b1f4131aa63d24f9d337692d64a6 (diff)
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.h')
-rw-r--r--core/command_queue_mt.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/core/command_queue_mt.h b/core/command_queue_mt.h
index d7a6a5bc43..7369c655ba 100644
--- a/core/command_queue_mt.h
+++ b/core/command_queue_mt.h
@@ -330,15 +330,15 @@ class CommandQueueMT {
/***** BASE *******/
enum {
- COMMAND_MEM_SIZE_KB = 256,
- COMMAND_MEM_SIZE = COMMAND_MEM_SIZE_KB * 1024,
+ DEFAULT_COMMAND_MEM_SIZE_KB = 256,
SYNC_SEMAPHORES = 8
};
- uint8_t *command_mem = (uint8_t *)memalloc(COMMAND_MEM_SIZE);
+ uint8_t *command_mem = nullptr;
uint32_t read_ptr = 0;
uint32_t write_ptr = 0;
uint32_t dealloc_ptr = 0;
+ uint32_t command_mem_size = 0;
SyncSemaphore sync_sems[SYNC_SEMAPHORES];
Mutex mutex;
Semaphore *sync = nullptr;
@@ -362,7 +362,7 @@ class CommandQueueMT {
} else {
// ahead of dealloc_ptr, check that there is room
- if ((COMMAND_MEM_SIZE - write_ptr) < alloc_size + sizeof(uint32_t)) {
+ if ((command_mem_size - write_ptr) < alloc_size + sizeof(uint32_t)) {
// no room at the end, wrap down;
if (dealloc_ptr == 0) { // don't want write_ptr to become dealloc_ptr
@@ -375,7 +375,7 @@ class CommandQueueMT {
}
// if this happens, it's a bug
- ERR_FAIL_COND_V((COMMAND_MEM_SIZE - write_ptr) < 8, nullptr);
+ ERR_FAIL_COND_V((command_mem_size - write_ptr) < 8, nullptr);
// zero means, wrap to beginning
uint32_t *p = (uint32_t *)&command_mem[write_ptr];