summaryrefslogtreecommitdiffstats
path: root/servers
diff options
context:
space:
mode:
authorDario <dariosamo@gmail.com>2024-05-22 12:23:47 -0300
committerDario <dariosamo@gmail.com>2024-05-23 10:52:29 -0300
commitce4f19a03496b7e23cf98ad9d50f7bc43ed365d8 (patch)
treef1383bb8f0220bd17da3d3d54ef98ee75d5f0952 /servers
parentb947c53ddc08d4314b2ce70ca1bc2adb37b83c37 (diff)
downloadredot-engine-ce4f19a03496b7e23cf98ad9d50f7bc43ed365d8.tar.gz
Switch vectors in each render pass to use TLS.
Diffstat (limited to 'servers')
-rw-r--r--servers/rendering/rendering_device.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/servers/rendering/rendering_device.cpp b/servers/rendering/rendering_device.cpp
index 15e1731823..149b151ee6 100644
--- a/servers/rendering/rendering_device.cpp
+++ b/servers/rendering/rendering_device.cpp
@@ -3332,12 +3332,15 @@ Error RenderingDevice::_draw_list_setup_framebuffer(Framebuffer *p_framebuffer,
}
Error RenderingDevice::_draw_list_render_pass_begin(Framebuffer *p_framebuffer, InitialAction p_initial_color_action, FinalAction p_final_color_action, InitialAction p_initial_depth_action, FinalAction p_final_depth_action, const Vector<Color> &p_clear_colors, float p_clear_depth, uint32_t p_clear_stencil, Point2i p_viewport_offset, Point2i p_viewport_size, RDD::FramebufferID p_framebuffer_driver_id, RDD::RenderPassID p_render_pass) {
- LocalVector<RDD::RenderPassClearValue> clear_values;
- LocalVector<RDG::ResourceTracker *> resource_trackers;
- LocalVector<RDG::ResourceUsage> resource_usages;
+ thread_local LocalVector<RDD::RenderPassClearValue> clear_values;
+ thread_local LocalVector<RDG::ResourceTracker *> resource_trackers;
+ thread_local LocalVector<RDG::ResourceUsage> resource_usages;
bool uses_color = false;
bool uses_depth = false;
+ clear_values.clear();
clear_values.resize(p_framebuffer->texture_ids.size());
+ resource_trackers.clear();
+ resource_usages.clear();
int clear_values_count = 0;
{
int color_index = 0;