diff options
author | Thaddeus Crews <repiteo@outlook.com> | 2024-11-13 08:34:36 -0600 |
---|---|---|
committer | Thaddeus Crews <repiteo@outlook.com> | 2024-11-13 08:34:36 -0600 |
commit | 76fa7b291455a8ba24c50005072ebdb58f8a5984 (patch) | |
tree | baaa96aa94a1231995348596a3c04963ddda948e /servers/rendering/rendering_device.h | |
parent | 8c0e1a7bee946f09f238190c5cbcef52a222bb46 (diff) | |
parent | bf8ecd3a9d4b4eba33379c28a3fae82436f50737 (diff) | |
download | redot-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.h | 2 |
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(); |