Commit Graph

379 Commits

Author SHA1 Message Date
e329486ab7 Actual buildable 4.6.1 release
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
2026-03-06 17:15:23 -05:00
725fcf0c22 Merge upstream Godot 4.6.1-stable
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
2026-03-06 15:22:01 -05: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
Thaddeus Crews
4d13966c08 Merge pull request #108698 from Brogolem35/hashset_clear_optimize
Optimize and clean up HashSet::clear
2025-09-30 18:35:01 -05:00
Lukas Tenbrink
8f533897d8 Make CowData::reserve warn message when new capacity < size verbose, like other reserve methods. 2025-09-30 20:21:02 +02:00
Thaddeus Crews
21fd4faf1b Merge pull request #107469 from Ivorforce/vector-localvector-explicit-span-conversions
Remove implicit conversions between `LocalVector` and `Vector`
2025-09-30 11:19:17 -05:00
Lukas Tenbrink
1bf821c1e1 Store current capacity in CowData buffers, and rewrite most of it.
Add `reserve` to `CowData`, `Vector` and `Array`.

# Conflicts:
#	core/os/memory.h
#	core/templates/cowdata.h
2025-09-25 22:00:17 +02:00
Thaddeus Crews
5fda92451d Merge pull request #100145 from Ivorforce/memory-offset-func
Add `mem_aligned_address` to simplify data offset constants.
2025-09-25 14:57:09 -05:00
Lukas Tenbrink
3ac159094f Add memory_get_offset to simplify data offset constants. 2025-09-25 20:55:33 +02:00
Lukas Tenbrink
c6f57c7a55 Change "reserve called with a capacity smaller than the current size" error message to a verbose message. 2025-09-23 20:02:40 +02:00
Thaddeus Crews
9b7a723aac Merge pull request #107721 from YYF233333/ps_include
Remove dependency of `variant.h` in `print_string.h`
2025-09-22 08:50:04 -05:00
Brogolem35
7685cb6f48 Optimize clear 2025-09-21 10:19:12 +03:00
Thaddeus Crews
40bd86819b Merge pull request #104332 from ColinSORourke/FindSeq
Add 'Find Sequence' to `Span`s, and consolidate negative indexing behavior
2025-09-20 13:41:34 -05:00
Yufeng Ying
05dae23f18 Remove dependency of variant.h in print_string.h
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2025-09-19 14:57:36 +08:00
Lukas Tenbrink
46b88dcbda Rename internal fields and variables in AHashMap, HashMap and HashSet for consistency. 2025-09-17 19:10:02 +02:00
9d30169a8d initial commit, 4.5 stable
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
2025-09-16 20:46:46 -04:00