Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fixup recent changes to threading concerns | Pedro J. Estébanez | 2024-07-16 | 1 | -2/+6 |
| | | | | | | | | | | | | | | ResourceLoader: - Fix invalid tokens being returned. - Remove no longer written `ThreadLoadTask::dependent_path` and the code reading from it. - Clear deadlock hazard by keeping the mutex unlocked during userland polling. WorkerThreadPool: - Include thread call queue override in the thread state reset set, which allows to simplify the code that handled that (imperfectly) in the ResourceLoader. - Handle the mutex type correctly on entering an allowance zone. CommandQueueMT: - Handle the additional possibility of command buffer reallocation that mutex unlock allowance introduces. | ||||
* | WorkerThreadPool: Refactor deadlock prevention collaboration into a generic ↵ | Pedro J. Estébanez | 2024-06-19 | 1 | -2/+2 |
| | | | | | | | mechanism This is strictly beyond a refactor because it also changes when the mutexes are relocked, but that's only for extra safety. | ||||
* | CommandQueueMT: Pre-allocate memory to avoid a bunch of allocations at startup | Pedro J. Estébanez | 2024-05-09 | 2 | -3/+2 |
| | |||||
* | Merge pull request #91725 from RandomShaper/cmd_queue_avoid_skip | Rémi Verschelde | 2024-05-09 | 1 | -2/+19 |
|\ | | | | | `CommandQueueMT`: Fix sync command awaiters missing the chance | ||||
| * | CommandQueueMT: Fix sync command awaiters missing the chance | Pedro J. Estébanez | 2024-05-08 | 1 | -2/+19 |
| | | |||||
* | | Apply additional fixes to servers' threading | Pedro J. Estébanez | 2024-05-08 | 1 | -0/+9 |
| | | |||||
* | | CommandQueueMT: Fix command cleanup (revive destructor call + plus handle ↵ | Pedro J. Estébanez | 2024-05-08 | 1 | -1/+5 |
|/ | | | | buffer realloc) | ||||
* | Merge pull request #91104 from RandomShaper/simple_type_cpp | Rémi Verschelde | 2024-05-08 | 2 | -20/+3 |
|\ | | | | | | | Redefine `GetSimpleTypeT<>` in terms of `<type_traits>` | ||||
| * | Redefine GetSimpleTypeT<> in terms of <type_traits> | Pedro J. Estébanez | 2024-04-24 | 2 | -20/+3 |
| | | |||||
* | | Merge pull request #90705 from AThousandShips/foreach_list | Rémi Verschelde | 2024-05-07 | 1 | -24/+32 |
|\ \ | | | | | | | | | | Reduce and prevent unnecessary random-access to `List` | ||||
| * | | Reduce and prevent unnecessary random-access to `List` | A Thousand Ships | 2024-05-04 | 1 | -24/+32 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when accessing a single element) * Removed subscript operator, in favor of a more explicit `get` * Added conversion from `Iterator` to `ConstIterator` * Remade existing operations into other solutions when applicable | ||||
* | | | [Core] Add `LocalVector::has` for convenience | A Thousand Ships | 2024-05-06 | 1 | -0/+4 |
|/ / | |||||
* | | Merge pull request #90760 from RandomShaper/cmd_queue_good_sync | Rémi Verschelde | 2024-05-01 | 2 | -72/+30 |
|\ \ | | | | | | | | | | CommandQueueMT: Optimize & fix handling of sync/ret commands | ||||
| * | | CommandQueueMT: Optimize & fix handling of sync/ret commands | Pedro J. Estébanez | 2024-04-23 | 2 | -72/+30 |
| |/ | |||||
* / | Fix GCC 14 -Wtemplate-id-cdtor warnings | Rémi Verschelde | 2024-04-26 | 2 | -3/+3 |
|/ | | | | Fixes #91206. | ||||
* | Merge pull request #90268 from RandomShaper/wtp_servers | Rémi Verschelde | 2024-04-15 | 2 | -25/+26 |
|\ | | | | | Use WorkerThreadPool for Server threads (enhanced) | ||||
| * | Use WorkerThreadPool for Server threads | Juan Linietsky | 2024-04-10 | 2 | -25/+26 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Servers now use WorkerThreadPool for background computation. * This helps keep the number of threads used fixed at all times. * It also ensures everything works on HTML5 with threads. * And makes it easier to support disabling threads for also HTML5. CommandQueueMT now syncs with the servers via the WorkerThreadPool yielding mechanism, which makes its classic main sync semaphore superfluous. Also, some warnings about calls that kill performance when using threaded rendering are removed because there's a mechanism that warns about that in a more general fashion. Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com> | ||||
* | | CommandQueueMT: Fix flush re-entrancy | Pedro J. Estébanez | 2024-04-10 | 1 | -7/+6 |
|/ | |||||
* | Fixed Timestep Interpolation (2D) | Ricardo Buring | 2024-03-23 | 1 | -0/+16 |
| | | | | | | | Adds fixed timestep interpolation to the rendering server (2D only). Switchable on and off with a project setting (default is off). Co-authored-by: lawnjelly <lawnjelly@gmail.com> | ||||
* | Enforce template syntax `typename` over `class` | Thaddeus Crews | 2024-03-07 | 26 | -118/+118 |
| | |||||
* | Remove word duplicates in comments and strings, and fix casing and punctuation | Robert Yevdokimov | 2024-02-23 | 1 | -1/+1 |
| | |||||
* | [Core] Upgrade some array helper classes to 64 bits | A Thousand Ships | 2024-02-19 | 2 | -41/+41 |
| | | | | | | Following upgrades to `CowData` to 64 bit indices these helpers are no longer able to handle the index ranges, possibly causing bugs on sort and search. | ||||
* | Add const lvalue ref to core/* container parameters | Muller-Castro | 2024-02-14 | 1 | -2/+2 |
| | |||||
* | Link hash table primes externally to prevent data duplication in binary | Bartłomiej T. Listwon | 2024-02-10 | 1 | -2/+2 |
| | |||||
* | [Core] Improve `CowData` and `Memory` metadata alignment. | bruvzg | 2024-02-05 | 1 | -30/+62 |
| | |||||
* | Use '_v' shorthand for type traits and 'if constexpr' where appropriate | vittorioromeo | 2024-02-02 | 5 | -16/+16 |
| | |||||
* | Shadow volume culling and tighter shadow caster culling | lawnjelly | 2024-01-30 | 1 | -0/+6 |
| | | | | | Existing shadow caster culling takes no account of the camera. This PR adds the highly encapsulated class RenderingLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum. | ||||
* | Merge pull request #86730 from reduz/64-bit-cowdata | Rémi Verschelde | 2024-01-19 | 3 | -96/+127 |
|\ | | | | | Promote CowData to 64 bits | ||||
| * | Promote CowData to 64 bits | Juan Linietsky | 2024-01-19 | 3 | -96/+127 |
| | | | | | | | | Fixes a lot of bugs, please help me fill the list. | ||||
* | | Merge pull request #86587 from RandomShaper/wtp_enhance | Rémi Verschelde | 2024-01-11 | 2 | -24/+32 |
|\ \ | |/ |/| | | | Enhance & fix `WorkerThreadPool` | ||||
| * | WorkerThreadPool: Avoid most runtime allocations | Pedro J. Estébanez | 2024-01-08 | 1 | -5/+1 |
| | | | | | | | | | | | | | | | | | | | | Just a little optimization. **NOTE:** With `RID_Owner` we could replace each pair of `PagedAllocator` and `HashMap`-of-ids-to-pointers. However, that would force us to expose `RID` as the task/group id, instead of `int`, which would break the API. Too bad. Let's wait until Godot 5.0. | ||||
| * | WorkerThreadPool: Avoid deadlocks when CommandQueueMT is involved | Pedro J. Estébanez | 2024-01-08 | 1 | -19/+31 |
| | | | | | | | | | | | | | | | | This commit lets CommandQueueMT play nicely with the WorkerThreadPool to avoid non-progressable situations caused by an interdependence between both. While a command queue is being flushed, it allows the WTP to release its lock while tasks are being awaited so they can make progress in case they need in turn to post to the command queue. | ||||
* | | [Core] Prevent copying of `SelfList` and `SelfList::List` | A Thousand Ships | 2024-01-07 | 1 | -0/+6 |
| | | | | | | | | | | | | | | Copying of these types is unsafe and should be detected Also removed unnecessary constructors for `TileMap` `DebugQuadrant` and `RenderingQuadrant` which used copying of `SelfList::List` | ||||
* | | fix: data race in PagedArray | Stuart Carnie | 2024-01-03 | 1 | -9/+12 |
|/ | |||||
* | Make PagedAllocator more compatible (esp., with HashMap) | Pedro J. Estébanez | 2023-12-20 | 1 | -1/+5 |
| | |||||
* | RBMap: Add explicit copy operators to iterators | Pedro J. Estébanez | 2023-12-15 | 1 | -4/+14 |
| | | | | | | Absence thereof is deprecated and breaks builds on most compilers. Bonus: Fix parameter naming style throughout. | ||||
* | [Core] Fix crash when hashing empty `CharString` | A Thousand Ships | 2023-11-26 | 1 | -1/+1 |
| | |||||
* | Fixup thread-owned lambda bookkeeping on thread exit (take 2) | Pedro J. Estébanez | 2023-11-23 | 1 | -0/+39 |
| | |||||
* | Merge pull request #82797 from RandomShaper/fix_rbmap | Rémi Verschelde | 2023-10-16 | 1 | -0/+2 |
|\ | | | | | Fix `RBMap`'s, iterator-based, `remove()` | ||||
| * | Fix RBMap's, iterator-based, remove() | Pedro J. Estébanez | 2023-10-04 | 1 | -0/+2 |
| | | |||||
* | | Replace `sanity` with `safety` for checks | A Thousand Ships | 2023-10-08 | 2 | -4/+4 |
|/ | |||||
* | Merge pull request #73813 from groud/improve_y_sort_performances | Rémi Verschelde | 2023-09-25 | 1 | -0/+51 |
|\ | | | | | | | Greatly improve Y-sort performance on TileMaps | ||||
| * | Improve TileMap Y-sorting performance | Gilles Roudière | 2023-09-25 | 1 | -0/+51 |
| | | |||||
* | | Fix allocation size overflow check in `CowData` | A Thousand Ships | 2023-09-19 | 1 | -2/+5 |
|/ | |||||
* | [Core] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable | A Thousand Ships | 2023-09-11 | 5 | -11/+11 |
| | |||||
* | Allow renaming child nodes in `_ready` | RedworkDE | 2023-06-26 | 1 | -0/+34 |
| | |||||
* | Handle RID validator overflow | Ninni Pipping | 2023-06-20 | 1 | -1/+2 |
| | |||||
* | Improve `SelfList` and fix error in `BaseMaterial3D` when running doctool | RedworkDE | 2023-05-22 | 1 | -1/+10 |
| | |||||
* | Optimize threading-sensitive node data for single-threaded processing | Pedro J. Estébanez | 2023-05-17 | 1 | -1/+4 |
| | |||||
* | Make more base nodes thread safe | Juan Linietsky | 2023-05-15 | 1 | -0/+11 |
| | | | | Ongoing work to make more of the base nodes thread safe. |