summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rendering_device.h
diff options
context:
space:
mode:
authorThaddeus Crews <repiteo@outlook.com>2024-11-13 08:34:36 -0600
committerThaddeus Crews <repiteo@outlook.com>2024-11-13 08:34:36 -0600
commit76fa7b291455a8ba24c50005072ebdb58f8a5984 (patch)
treebaaa96aa94a1231995348596a3c04963ddda948e /servers/rendering/rendering_device.h
parent8c0e1a7bee946f09f238190c5cbcef52a222bb46 (diff)
parentbf8ecd3a9d4b4eba33379c28a3fae82436f50737 (diff)
downloadredot-engine-76fa7b291455a8ba24c50005072ebdb58f8a5984.tar.gz
Merge pull request #99066 from DarioSamo/rd-transfer-worker-deadlock-fix
Give the barrier pool its own mutex to avoid a deadlock with transfer workers.
Diffstat (limited to 'servers/rendering/rendering_device.h')
-rw-r--r--servers/rendering/rendering_device.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/servers/rendering/rendering_device.h b/servers/rendering/rendering_device.h
index 9939df976f..ccfe51043b 100644
--- a/servers/rendering/rendering_device.h
+++ b/servers/rendering/rendering_device.h
@@ -1285,6 +1285,7 @@ private:
LocalVector<uint32_t> transfer_worker_pool_available_list;
LocalVector<RDD::TextureBarrier> transfer_worker_pool_texture_barriers;
BinaryMutex transfer_worker_pool_mutex;
+ BinaryMutex transfer_worker_pool_texture_barriers_mutex;
ConditionVariable transfer_worker_pool_condition;
TransferWorker *_acquire_transfer_worker(uint32_t p_transfer_size, uint32_t p_required_align, uint32_t &r_staging_offset);
@@ -1299,6 +1300,7 @@ private:
void _check_transfer_worker_vertex_array(VertexArray *p_vertex_array);
void _check_transfer_worker_index_array(IndexArray *p_index_array);
void _submit_transfer_workers(RDD::CommandBufferID p_draw_command_buffer = RDD::CommandBufferID());
+ void _submit_transfer_barriers(RDD::CommandBufferID p_draw_command_buffer);
void _wait_for_transfer_workers();
void _free_transfer_workers();