elsid
fea4fb6e69
Make AiPursue path destination to be as close as possible to target
...
Even when target is not reachable actor will try to run there either because
target navmesh polygon is selected within extended area or because partial path
is built to the closest possible polygon.
2021-08-18 23:44:36 +02:00
psi29a
6360bdc859
Merge branch 'navmesh_job' into 'master'
...
Store async navmesh jobs in the same container until they are processed
See merge request OpenMW/openmw!1131
2021-08-17 09:20:54 +00:00
psi29a
6595c731f7
Merge branch 'fix_rc_poly_mesh_flags_length' into 'master'
...
Fix flags length for rcPolyMesh
See merge request OpenMW/openmw!1134
2021-08-17 09:19:32 +00:00
psi29a
faa3e04494
Merge branch 'const_reff' into 'master'
...
Sprinkle some const-ref
See merge request OpenMW/openmw!1145
2021-08-17 08:20:13 +00:00
jvoisin
5793f5cf18
Sprinkle a couple of std::move and a const
2021-08-16 13:11:22 +02:00
jvoisin
7a015d24c6
Sprinkle some const-ref
2021-08-15 19:50:28 +02:00
jvoisin
b01ef2629c
Fix two Wreorder clang warnings
2021-08-13 13:59:57 +02:00
psi29a
508682cda7
Merge branch 'serialize' into 'master'
...
Serialize NifOsg::MatrixTransform children properly
See merge request OpenMW/openmw!1127
2021-08-13 08:18:03 +00:00
Alexei Dobrohotov
839cf36bdd
Merge branch 'hidden_markers' into 'master'
...
Use common implementation to filter hidden markers
See merge request OpenMW/openmw!1132
2021-08-12 22:29:20 +00:00
elsid
46fa3ce083
Fix flags length for rcPolyMesh
...
recastnavigation documentation of rcPolyMesh is misleading. It says flags field
length is maxpolys when actually it's allocated as npolys.
2021-08-12 22:43:06 +02:00
elsid
54a676f2e3
Add functions to get length of recast type arrays
...
To avoid duplicating same formulas in multiple places.
2021-08-12 22:43:01 +02:00
elsid
05258ed644
Remove redundant TileCachedRecastMeshManager::hasTile function
...
It's used only for tests. getMesh is a valid replacement.
2021-08-12 22:40:06 +02:00
elsid
8ac8d56e8c
Mark TileCachedRecastMeshManager member functions as const where possible
2021-08-12 22:39:25 +02:00
elsid
3caf45807f
Use common implementation to filter hidden markers
2021-08-12 22:35:16 +02:00
elsid
09b1a2e3c6
Make unchanging Job fields const
2021-08-12 22:25:25 +02:00
elsid
21ce4fe637
Use structured binding
2021-08-12 22:25:25 +02:00
elsid
8bca9eec80
Use single set to store pushed tiles
2021-08-12 22:25:24 +02:00
elsid
a97b2ced27
Use single map to store last updates
2021-08-12 22:25:24 +02:00
elsid
bfcc430822
Use single map to store processing tiles
2021-08-12 22:25:24 +02:00
elsid
902b0f9f84
Store jobs in the same container until they are processed
...
Push to queue and reorder only iterators.
2021-08-12 22:24:02 +02:00
elsid
8db640289c
Use single set to store pushed jobs for tiles
2021-08-12 22:05:44 +02:00
elsid
a99266a60e
Do not measure total navmesh generation duration
...
This is not a useful thing anymore.
2021-08-12 21:44:10 +02:00
elsid
9460a8760e
Move operator<< for UpdateNavMeshStatus to header
2021-08-12 20:23:57 +02:00
Alexei Dobrohotov
b49f51cbfc
Serialize NifOsg::MatrixTransform children properly
2021-08-12 18:33:06 +03:00
psi29a
ee1ec53cd9
Merge branch 'fix_op_bzzt_whoopsie_2' into 'master'
...
Fixing another bzzt whoopsie
See merge request OpenMW/openmw!1118
2021-08-10 15:51:12 +00:00
Bret Curtis
436c640da2
the old switch-a-roo because we shoudl only StopTraversal when the node size is larger than 1 and not the other way around
2021-08-09 22:56:04 +02:00
Bret Curtis
c99bddc8dc
Revert "Move reference to the right cell according to its geographical position"
...
This reverts commit d0677c3f07678a5eb351572c4eb9b14b0e1f03e4.
2021-08-09 22:11:00 +02:00
Alexei Dobrohotov
956edca524
Don't re-enable specularity w/ material controller for MW models
2021-08-09 21:17:13 +03:00
elsid
94e71d9b14
Avoid division by zero
2021-08-09 17:58:33 +02:00
elsid
0985d8e03d
Handle failed NavMesh allocation
2021-08-09 17:54:19 +02:00
elsid
a6260453ea
Add missing initialization
2021-08-09 17:54:19 +02:00
jvoisin
586d8684d0
Fix two coverity issues about uninitialised variables
2021-08-09 12:43:30 +02:00
psi29a
8ad3d3d792
Merge branch 'freezeandcool' into 'master'
...
Don't use FreezeOnCull for any particle system (#4744 )
Closes #4744
See merge request OpenMW/openmw!1103
2021-08-08 12:35:26 +00:00
psi29a
d939916369
Merge branch 'navmesh_save_cache_capacity' into 'master'
...
Do not cache navmesh when only object transformation is changed
See merge request OpenMW/openmw!1101
2021-08-08 12:31:58 +00:00
elsid
86e6d3dac8
Do not cache navmesh when only object transformation is changed
...
This saves cache capacity when a scene contains objects contantly transforming
by scripts and causing changes in navmesh. The probability to get cache hit for
such states is almost zero because even a constant change in a single float
value may give up to 2^32 different states.
2021-08-08 02:38:20 +02:00
Alexei Dobrohotov
1fc7cb8191
Don't use FreezeOnCull for any particle system ( #4744 )
2021-08-08 03:36:35 +03:00
elsid
3cbe93358a
Move dtNavMeshParams initialization to where it's required
2021-08-08 02:30:48 +02:00
elsid
fa1fb2a6b5
Reset mIsReleased before starting threads
...
To fix TSAN warning:
WARNING: ThreadSanitizer: data race (pid=68597)
Write of size 1 at 0x7b3800079234 by main thread:
#0 SceneUtil::WorkQueue::start(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:51 (openmw+0x10daa10)
#1 SceneUtil::WorkQueue::WorkQueue(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:39 (openmw+0x10dad97)
#2 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb5a)
#3 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
#4 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
#5 wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205 (openmw+0x125df1c)
#6 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)
Previous read of size 1 at 0x7b3800079234 by thread T10 (mutexes: write M19275778865205896):
#0 SceneUtil::WorkQueue::removeWorkItem() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:86 (openmw+0x10d9e51)
#1 SceneUtil::WorkThread::run() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:127 (openmw+0x10da52a)
#2 operator() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:114 (openmw+0x10da664)
#3 __invoke_impl<void, SceneUtil::WorkThread::WorkThread(SceneUtil::WorkQueue&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:61 (openmw+0x10da664)
#4 __invoke<SceneUtil::WorkThread::WorkThread(SceneUtil::WorkQueue&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:96 (openmw+0x10da664)
#5 _M_invoke<0> /usr/include/c++/11.1.0/bits/std_thread.h:253 (openmw+0x10da664)
#6 operator() /usr/include/c++/11.1.0/bits/std_thread.h:260 (openmw+0x10da664)
#7 _M_run /usr/include/c++/11.1.0/bits/std_thread.h:211 (openmw+0x10da664)
#8 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82 (libstdc++.so.6+0xd33c3)
Location is heap block of size 216 at 0x7b3800079220 allocated by main thread:
#0 operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.0+0x91824)
#1 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb4c)
#2 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
#3 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
#4 wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205 (openmw+0x125df1c)
#5 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)
Mutex M19275778865205896 is already destroyed.
Thread T10 (tid=68609, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x61c3a)
#1 std:🧵 :_M_start_thread(std::unique_ptr<std:🧵 :_State, std::default_delete<std:🧵 :_State> >, void (*)()) /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xd36aa)
#2 std::_MakeUniq<SceneUtil::WorkThread>::__single_object std::make_unique<SceneUtil::WorkThread, SceneUtil::WorkQueue&>(SceneUtil::WorkQueue&) /usr/include/c++/11.1.0/bits/unique_ptr.h:962 (openmw+0x10da987)
#3 SceneUtil::WorkQueue::start(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:50 (openmw+0x10da987)
#4 SceneUtil::WorkQueue::WorkQueue(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:39 (openmw+0x10dad97)
#5 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb5a)
#6 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
#7 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
#8 wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205 (openmw+0x125df1c)
#9 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)
2021-08-08 02:28:59 +02:00
elsid
41b02ff1aa
Copy only required RecastMeshObject fields
2021-08-07 12:38:01 +02:00
elsid
c91ef34a70
Avoid using a specific type for stored ref_ptr to extend lifetime
2021-08-07 12:20:55 +02:00
glassmancody.info
cdf5b315c3
fix mac runner undefined macro
2021-08-05 16:52:40 -07:00
glassmancody.info
09e03fde2e
refactor and fix wobbly shores
2021-08-04 17:49:57 -07:00
glassmancody.info
cad0b151cb
enable shaders path and dehardcode depth formats
2021-08-04 17:39:11 -07:00
glassmancody.info
b457dfd8b8
fix water RTTs and minor math error in non-infinite projection matrix
2021-08-04 17:39:11 -07:00
glassmancody.info
70fac33940
initial reverse-z depth implementation
2021-08-04 17:39:11 -07:00
Petr Mikheev
a94072243b
Lua command core.quit
2021-08-04 19:14:24 +03:00
psi29a
9b7e14ec00
Merge branch 'OpenCS-moved-reference' into 'master'
...
OpenCS - Fix moved reference - Issues #3514 and #4752
See merge request OpenMW/openmw!1051
(cherry picked from commit 2bee171c7990522da33c2667f7d079fa35f4ede0)
36c30f7f Fix for Issue #3514 where moving a reference to another cell is not handled properly.
40327681 Update the changelog.
2021-08-03 23:29:05 +00:00
psi29a
e10e9c0005
Merge branch 'navmesh_reduce_lock_wait' into 'master'
...
Reduce waiting duration on locks when updating navmesh object in the main thread (#6193 )
Closes #6193
See merge request OpenMW/openmw!1079
2021-08-03 23:05:39 +00:00
Petr Mikheev
3ce5e9e680
Improve error messages in components/lua/serialization.cpp
2021-08-03 16:42:26 +03:00
elsid
050b7d31aa
Create RecastMesh outside critical section
...
To not lock main thread when it tries to update objects.
2021-08-03 12:21:56 +02:00