Commit Graph

5013 Commits (d500507dec6db05e0f458c3b2527f4c74363232d)

Author SHA1 Message Date
Bret Curtis 523edd0723
Merge pull request #3093 from akortunov/light_crash
Fix crashes on exit in LightManager
4 years ago
psi29a e73c0f92b8 Merge branch 'fix_present_tile_crash' into 'master'
Add missing synchronization for present tiles modification

See merge request OpenMW/openmw!878
4 years ago
psi29a 4bc7012104 Merge branch 'pack-default-settings' into 'master'
Pack default settings

Closes #5925

See merge request OpenMW/openmw!822
4 years ago
AnyOldName3 4cedb3549b Decode base64-packed settings files 4 years ago
AnyOldName3 081650a2e5 Integrate Base64 library with build 4 years ago
elsid a73ffc25c3
Add missing synchronization for present tiles modification
insert/erase can be done from multiple threads simultaneously. mMutex is
already used to synchronize reads so use it for writes too.
4 years ago
psi29a f1f1703441 Merge branch 'fix_navmesh_wait' into 'master'
Fix redundant waiting until navmesh is generated

See merge request OpenMW/openmw!861
4 years ago
Andrei Kortunov 11c57978b6 Fix crashes on exit in the LightManager (bug #6044) 4 years ago
Andrei Kortunov c54ef55ebb Revert "Replace raw pointer by observer_ptr to avoid dangling pointer dereferencing"
This reverts commit 5373cf1cd5.
4 years ago
elsid d520b440aa
Copy LightBuffer data into a new object when changing layout
Before this change LightBuffer copy constructor copied only mData pointer into
a new object. Then memcpy was applied to an overlapping source and destination
that is UB.

Replace configureLayout function by a special constructor. That copies all
mData values and a pointer to a buffer object into a newly allocated object.
4 years ago
Bret Curtis fef9e91510
Merge pull request #3090 from akortunov/warnfix
Fix warning in assert - size_t can not be negative
4 years ago
Andrei Kortunov e38063dcdb Discard button press events during save loading (bug #5619) 4 years ago
elsid 1e2aae8095
Use stable sort+unique to collect RefIDs for ESMStore records counting
The idea is to avoid std::map lookup for each CellRef. Instead generate a
sequence of added and removed RefNums into a vector then order them by RefNum
using a stable sort that preserves relative order of elements with the same
RefNum. RefIDs are stored in a different vector to avoid std::string move ctor
calls when swapping elements while sorting. Reversed iteration over added and
removed RefNums for each unique RefNum is an equivalent to what map-based
algorithm produces. The main benefit from sorting a vector is a data locality
that means less cache misses for each access. Reduces ESMStore::countRecords
perf cycles by 25%.
4 years ago
Andrei Kortunov b717103fe0 Fix warning in assert - size_t can not be negative 4 years ago
elsid 5373cf1cd5
Replace raw pointer by observer_ptr to avoid dangling pointer dereferencing
When game exit is requests when initial loading screen is active LightManager
can be destructed in the main thread before LightManagerStateAttribute::apply
is completed by different thread. Given that it uses raw pointer at some point
it becomes dangling because object is destructed this leads to UB and eventual
SIGSEGV.
4 years ago
elsid eeba92d48b Merge branch 'includes_detournavigator' into 'master'
Remove some superfluous includes in components/detournavigator

See merge request OpenMW/openmw!860
4 years ago
elsid 59f89d22f8
Apply min distance only for not present tiles
To avoid waiting when navmesh update is triggered by transformed object for
already present tiles.
4 years ago
elsid d0ea9c482a
Reorder async navmesh updater jobs when player tile changes
When player tile changes distance to player that is part of jobs priority is
invalidated. So jobs are no longer in the right order. This can lead to
processing of farests tiles first.

Sort queue each time player tile is changed.
4 years ago
Bret Curtis 66a527c3de
Merge pull request #3075 from akortunov/warnfix
Fix MSVC's C4244 and C4267 warnings
4 years ago
jvoisin 28d5e5e8be Remove some superfluous includes in components/detournavigator 4 years ago
glassmancody.info 4bbbbb00f6 use particle data for particle system quota 4 years ago
psi29a d843ec321e Merge branch 'DoNotSearchTwice' into 'master'
Search only in the niffilemanager for nif files

See merge request OpenMW/openmw!823
4 years ago
psi29a fd89582e0c Merge branch 'navmesh_wait' into 'master'
Wait until navmesh is generated within given distance around player (#5500)

Closes #5500

See merge request OpenMW/openmw!819
4 years ago
Petr Mikheev 4a7147e222 Merge branch 'constexpr_esm' into 'master'
Use a constexpr for esm cc

See merge request OpenMW/openmw!849
4 years ago
jvoisin bcd8190516 Fix a crash in aipackage.cpp 4 years ago
jvoisin 89f721fad3 Use a constexpr for esm cc 4 years ago
Andrei Kortunov 963e1b8b3f Fix MSVC's C4244 warnings 4 years ago
Andrei Kortunov f9d42ed396 Fix MSVC's C4267 warnings 4 years ago
Andrei Kortunov 54c8375672 Recreate a special case for IntersectionVisitor on QuadTreeWorld 4 years ago
Bret Curtis 340801e08b
Merge pull request #3084 from akortunov/master
Return check for distance when we try to reuse data
4 years ago
psi29a f7b8c817f8 Merge branch 'performance-faster-string-find' into 'master'
Fixing performance-faster-string-find issues

See merge request OpenMW/openmw!842
4 years ago
Andrei Kortunov 3e281f625d Return check for distance when we try to reuse data (bug #6026) 4 years ago
Thunderforge 339d347aea Fixing performance-faster-string-find issues
This addresses the Clang Tidy check [performance-faster-string-find](https://clang.llvm.org/extra/clang-tidy/checks/performance-faster-string-find.html).
4 years ago
Bret Curtis f84e9f5fb9
Merge pull request #3082 from akortunov/warnfix2
Add new scene nodes to scene graph serializer blacklist
4 years ago
AnyOldName3 09f39b29f0 Load defaults.bin instead of settings-default.cfg. Do not decode yet. 4 years ago
AnyOldName3 92325976e9 Update documentation to refer to defaults.bin 4 years ago
Petr Mikheev e65b285f06 Merge branch 'use_min' into 'master'
Use existing min implementation

See merge request OpenMW/openmw!828
4 years ago
elsid b806445a36
Use existing min implementation 4 years ago
Frederic Chardon caf382c19f Merge branch 'barrier' into 'master'
Do not store callback inside Misc::Barrier

See merge request OpenMW/openmw!821
4 years ago
Andrei Kortunov 2e8873af51 Add new scene nodes to scene graph serializer blacklist 4 years ago
psi29a 08e1a8e0fb Merge branch 'esm_opti' into 'master'
Teensy optimisation for esmtool

See merge request OpenMW/openmw!826
4 years ago
jvoisin 8a56ba6aaa Fix compilation 4 years ago
elsid fbeccc2908 Apply 1 suggestion(s) to 1 file(s) 4 years ago
Bret Curtis e720a56030
Merge pull request #3080 from akortunov/fix_ci
Add missing include for std::inserter
4 years ago
Andrei Kortunov 8d4a374516 Add missing include for std::inserter 4 years ago
psi29a 6263ade01a Merge branch 'esmcleanup' into 'master'
Minor ESM code cleanup

See merge request OpenMW/openmw!825
4 years ago
jvoisin e97e4d07dd Teensy optimisation for esmtool
- Use an unordered_set instead of a list to
  keep track of skipped records.
- Reduce the number of conditions when parsing 4-letters
  records by using a switch-case instead of cascading conditions.
- Add a const
4 years ago
CedricMocquillon a885134868 Do not search if it is not used 4 years ago
elsid 626e032931
Do not store callback inside Misc::Barrier
The only wait method can be provided with it so pass it as a template
parameter there.
4 years ago
CedricMocquillon 813b8ee0d1 Search only in the niffilemanager for nif files 4 years ago