Commit Graph

391 Commits

Author SHA1 Message Date
Lukas Tenbrink d6540e4aa7 Add move semantics to RBMap and RBSet. Make copy constructors explicit. 2026-02-20 20:47:15 +01:00
Lukas Tenbrink 6e345f80ec Integrate (a nerfed version of) clang-tidy into CI.
For now, it's integrated into core, main and scene only.
Fix a few superficial clang-tidy failures.
2026-02-20 00:49:00 +01:00
Thaddeus Crews 5482b9e89e Tests: Convert test headers to compilation files
• Excludes module tests, as they'd be a more involved process
2026-02-19 07:36:26 -06:00
Thaddeus Crews 15558cb886 Merge pull request #108111 from Repiteo/core/sanitizer-restructure
Core: Restructure sanitizers
2026-02-18 12:04:30 -06:00
Thaddeus Crews fa56f71ddd Merge pull request #107452 from Ivorforce/bit-math-header
Move binary math functions to `Math` namespace in `math_funcs_binary.h`
2026-02-17 09:28:31 -06:00
Lukas Tenbrink 0ea5ece984 Move binary math functions to Math namespace in math_funcs_binary header. 2026-02-17 12:24:35 +01:00
Lukas Tenbrink c9249346c4 Change HashSet copy constructor from implicit to explicit. 2026-02-16 23:10:33 +01:00
Thaddeus Crews 1e12317895 Merge pull request #115646 from Ivorforce/list-explicit-copy
Change `List` copy constructor from implicit to explicit.
2026-02-16 15:02:34 -06:00
Lukas Tenbrink 39ed2fa9a5 Add move semantics to HashSet. 2026-02-14 13:20:48 +01:00
Lukas Tenbrink c5df0cb82b Don't right-align escaped newlines, e.g. for #define. This has previously led to long diffs in the commit history. 2026-02-04 19:31:28 +01:00
Rémi Verschelde 429750f60b Merge pull request #115093 from Ivorforce/hashmap-explicit-copy
Change copy constructors of `HashMap` and `AHashMap` from implicit to explicit
2026-01-31 22:50:51 +01:00
Lukas Tenbrink 7072a9a874 Change List copy constructor from implicit to explicit. 2026-01-30 18:58:42 +01:00
Thaddeus Crews beda8dd027 Core: Restructure sanitizers 2026-01-28 09:13:16 -06:00
Lukas Tenbrink 63272b23ef Make LocalVector copy constructor explicit. 2026-01-23 20:52:03 +01:00
Lukas Tenbrink 1825e89787 Change copy constructors of HashMap and AHashMap from implicit to explicit. 2026-01-21 13:01:23 +01:00
Rémi Verschelde d59db26710 Revert "Core: Switch RID_alloc::owns to lock-free"
This reverts commit bdfe8549b8.

This caused a regression for GPUParticles3D emitters on macOS arm64,
which is proving to be both tricky to reproduce and solve. Other parts
of the engine using RID_Owner might be affected too.

Given that we're about to release 4.6, reverting might be the safest
option at this time, and this optimization can be re-attempted for 4.7.

Fixes #114900.
2026-01-14 21:58:29 +01:00
Rémi Verschelde f084100f43 Merge pull request #114688 from HolonProduction/fix-resize-uninit-desc
Fix description for `resize_uninitialized`
2026-01-13 22:20:41 +01:00
HolonProduction 01d0878c83 Fix description for resize_uninitialized 2026-01-13 12:52:36 +01:00
Lukas Tenbrink 7a3c74e739 Add documentation to Vector::reserve and Vector::reserve_exact. 2026-01-03 18:49:34 +01:00
Pedro J. Estébanez 824287eefb CommandQueueMT: Make re-entrant again + Fix multiple flushers case 2025-12-09 16:09:08 +01:00
Bryce Hutchings cb4d1b79e0 Fix crash in command_queue_mt due to destruction of wrong object 2025-12-04 08:46:51 -08:00
Lukas Tenbrink 109d3d8530 Make Vector bsearch method const. 2025-11-25 19:05:30 +01:00
Pāvels Nadtočajevs 51ff09dc1e Fix memory alignment on 32-bit Windows. 2025-11-25 13:01:43 +02:00
Pedro J. Estébanez 4ba4558cf6 CommandQueueMT: Reduce lock contention in cases of single flusher 2025-11-21 11:11:30 +01:00
Pedro J. Estébanez b16a8b8a76 CommandQueueMT: Fix race conditions 2025-11-21 11:09:16 +01:00
Lukas Tenbrink 43a8009a56 Clean up String::find to remove duplicate code, and speed up comparison with memcmp where possible. 2025-11-19 22:39:05 +01:00
kobewi e14263f917 Remove empty constructors and destructors from core/ 2025-11-17 20:09:05 +01:00
Thaddeus Crews 910133fda6 Merge pull request #104280 from Ivorforce/span-equality
Add `Span` equality (`==` and `!=`) operators.
2025-11-17 10:56:55 -06:00
Thaddeus Crews 359ef8fc2b Merge pull request #108932 from Nazarwadim/hash_map_final_optimization
Do not zero elements and perform fast clear in `HashMap`
2025-11-17 10:56:27 -06:00
Lukas Tenbrink d7f5c13db8 Add Span equality (== and !=) operators.
Exchange duplicate equality iteration implementations across `Vector` and `String` with the `Span` version, for a speed boost.
2025-11-15 14:21:54 +01:00
Thaddeus Crews c6fe923e33 Merge pull request #108516 from KoBeWi/file_graveyard
Remove unnecessary cpp files after cleanup
2025-11-14 14:23:06 -06:00
Stuart Carnie 90c0e6acca 2D: Switch to VBOs for instance data
- Add support for vertex bindings and UMA vertex buffers in D3D12.
- Simplify 2D instance params and move more into per-batch data to save
  bandwidth

Co-authored-by: Skyth <19259897+blueskythlikesclouds@users.noreply.github.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
Co-authored-by: A Thousand Ships <96648715+athousandships@users.noreply.github.com>
2025-11-15 06:25:49 +11:00
Nazarii e6bc3fa164 Do not zeroed elements and fast clear in HashMap 2025-11-14 11:33:13 +02:00
Thaddeus Crews df51b1480d Merge pull request #112660 from aaronfranke/list-find-const
Add a const version of `List::find`
2025-11-12 11:24:16 -06:00
Aaron Franke 6f207a4601 Add a const version of List::find 2025-11-12 00:36:09 -08:00
Stuart Carnie bdfe8549b8 Core: Switch RID_alloc::owns to lock-free 2025-11-12 15:17:45 +11:00
aaronp64 afd59b36cf Avoid extra copy in Vector/CowData push_back/insert
Update push_back/insert methods to move new item into CowData instead of copying
2025-11-11 12:19:35 -05:00
David Snopek bc9f3c7d92 Make Vector<T>::duplicate() const
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2025-11-04 17:13:11 -06:00
Thaddeus Crews 5c9333073a Merge pull request #111696 from StarryWorm/langtable-include
Fix missing includes in headers
2025-10-27 10:01:51 -05:00
StarryWorm 796281f62f Add missing includes
Add missing <winnt.h> include in windows/lang_table.h
Add missing typedefs.h and rid.h include in godot_constraint_3d.h
Add missing <type_traits> include in iterable.h
Add missing forward declarations in rendering_shader_library.h
2025-10-26 18:25:17 -04:00
Lukas Tenbrink 6733345f73 Fix false positive warning with FixedVector array bounds in gcc. 2025-10-17 13:11:33 +02:00
Thaddeus Crews 89ce203427 Merge pull request #106997 from Ivorforce/fixed-move-semantics
Fix `FixedVector` move and copy semantics.
2025-10-10 10:26:06 -05:00
Thaddeus Crews 7efb51c9d3 Merge pull request #111361 from Ivorforce/cleanup-hashfuncs
Clean up `hashfuncs.h`
2025-10-09 11:46:43 -05:00
Lukas Tenbrink 1fa332cad4 Add max() to Span.
Remove `<algorithm>` include from `rendering_device_commons.h`, using `Span` instead.
2025-10-07 22:26:32 +02:00
Lukas Tenbrink f678729f89 Clean up hashfuncs.h: Move long functions to hashfuncs.cpp and replace static with inline. Remove hash_make_uint64_t and hash_make_uint32_t. 2025-10-07 13:50:18 +02:00
Lukas Tenbrink d6036462b1 Remove hash_map.h include from a_hash_map.h, and remove cross conversion operators. 2025-10-06 17:20:31 +02:00
Lukas Tenbrink ad600125df Rewrite HashMapHasherDefault based on type traits - it is now possible to declare a default hashing function for any type.
Remove cross-project includes from `hashfuncs.h`.
Improve hashing function for `Color` (based on values instead of `String`).
Move `Variant` comparison from `hash_map.h` to `dictionary.cpp` (`VariantComparatorDictionary`), where it's used.
Remove now unnecessary `HashableHasher`.
2025-10-05 01:49:11 +02:00
Lukas Tenbrink c993db9688 Add reserve_exact to CowData and Vector.
Change growth factor to be an indeterministic 1.5x.
Use `reserve_exact` in `FileAccess` to reduce on binary file loading RAM usage.

# Conflicts:
#	core/templates/cowdata.h
2025-10-01 11:57:40 +02:00
Thaddeus Crews 55ac91b887 Merge pull request #111084 from Ivorforce/cowdata-reserve-verbose
Make `CowData::reserve` warn message when new capacity < size verbose, like other `reserve` methods
2025-09-30 18:35:23 -05:00
Thaddeus Crews e5bf31b170 Merge pull request #107369 from Ivorforce/node-iter-children
Core: Add `Node::iterate_children` as a fast way to iterate a node's children
2025-09-30 18:35:21 -05:00