1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-20 10:53:52 +00:00
Commit graph

5201 commits

Author SHA1 Message Date
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
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
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 d0677c3f07.
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
elsid
c8987bda2f
Store reference to BulletShapeInstance for btCollisionShape
To keep btCollisionShape lifetime.
2021-08-03 12:21:56 +02:00
elsid
4574e5f565
Remove redundant Navigator API functions 2021-08-03 12:21:55 +02:00
glassmancody.info
1e52ca2b64 properly initialize light settings 2021-08-01 23:46:45 -07:00
AnyOldName3
4727ae4b3b Make it possible to opt out of composing variables 2021-08-01 02:47:10 +01:00
fredzio
c76387162b Add projectiles number to the resources stats 2021-07-31 23:08:50 +02:00
Cédric Mocquillon
d0677c3f07 Move reference to the right cell according to its geographical position 2021-07-30 18:28:29 +02:00
psi29a
8c36eb56cf Merge branch 'stereo_friendly_water' into 'master'
Stereo friendly water and statesetupdater

See merge request OpenMW/openmw!563
2021-07-30 11:00:49 +00:00
Alexei Dobrohotov
11694ba87f Correct dark map and detail map alpha handling
Comment texenv usage in NIF loader
2021-07-29 04:48:59 +03:00
Alexei Dobrohotov
66a1adc31e Handle NiExtraData *properly* 2021-07-27 07:58:57 +03:00
madsbuvi
41c08b1c3b Stereo friendly StateSetUpdater
(cherry picked from commit 496b3aef88b8fd867dcdd23a6ca43144573b1b2f)

Stereo friendly water

(cherry picked from commit 0e22c55e48a7f965367d3d430c1bef5357b22748)

Option to disable per view mapping.

Include memory header

De-hardcode settings and buffers.

formatting error

Update water.cpp (whitespace)

Update water.cpp (more whitespace)

include render order

c array -> c++ array
2021-07-26 14:01:02 +02:00
psi29a
44ceb9572a Merge branch 'recast_mesh_heightfield' into 'master'
Reduce navmesh cache size by special handling for heightfields

See merge request OpenMW/openmw!1032
2021-07-26 11:49:30 +00:00
Alexei Dobrohotov
d5ab6e40ab Handle NiExtraData 2021-07-26 04:46:03 +03:00
elsid
9a5ec5fd03
Store heightfields as array of heights instead of triangles
To reduce size of RecastMesh and therefore cache size.
2021-07-26 00:22:21 +02:00
elsid
fdee9db20c
Consider RecastMeshManager not empty when there is water 2021-07-26 00:22:21 +02:00
elsid
24b802b3d8
Simplify adding water to recast mesh
Remove redundant computations and conversions.
2021-07-26 00:22:21 +02:00
elsid
5d6c93566d
Rename DetourNavigator::Water -> Cell 2021-07-26 00:22:21 +02:00
elsid
753767d6d9
Store only water shift
Rotation is not used.
2021-07-26 00:22:20 +02:00