Commit Graph

25606 Commits (dd197765c8349c5ba6cfafd24cc0196473bc5ab1)
 

Author SHA1 Message Date
psi29a dd197765c8 cmake check to enforce that if someone uses OSG 3.6, that it is at least 3.6.5 3 years ago
AnyOldName3 9bae89cc95 Merge branch 'macos_shadow_quickfix' into 'master'
Workaround shadow issue on macOS

See merge request OpenMW/openmw!937
3 years ago
Bret Curtis 868a5b35e3 workaround shadow issue on macOS, https://gitlab.com/OpenMW/openmw/-/issues/6057 3 years ago
psi29a 4d995a6be6 Merge branch 'update_mac_deps' into 'master'
update mac deps to include latest OSGoS 3.6, mygui 3.4.1 and multi-threaded bullet

See merge request OpenMW/openmw!936
3 years ago
Bret Curtis 91e1898aa2 make use of gitlab openmw-deps 3 years ago
Bret Curtis 49ce26361e update mac deps to include latest OSGoS 3.6, mygui 3.4.1 and multi-threaded bullet 3 years ago
psi29a 036a344eae Merge branch 'aoe_arrow' into 'master'
#6084: Cast spell even if target Ptr is empty.

See merge request OpenMW/openmw!934
3 years ago
fredzio 7d0483d7ad Cast spell even if target Ptr is empty. It happens when enchanted arrows
hit water or ground.
3 years ago
psi29a c7f8a4faae Merge branch 'sizeof_float' into 'master'
Use sizeof(GLfloat) instead of sizeof(GL_FLOAT)

See merge request OpenMW/openmw!928
3 years ago
jvoisin 7f4f2c042e Use sizeof(GLfloat) instead of sizeof(GL_FLOAT)
GL_FLOAT is an enum, with the value 0x1406, while GLFloat is the actual type.
Source: https://www.khronos.org/opengl/wiki/OpenGL_Type
3 years ago
psi29a b2791fd487 Merge branch 'irc' into 'master'
Update IRC links to libera

See merge request OpenMW/openmw!920
3 years ago
Alexey Sokolov 3e4340338f Update IRC links to libera
In README, in OpenCS about dialog, in Travis notification
3 years ago
Evil Eye 4026082494 Merge branch 'fix_sync' into 'master'
Fix what GitHub broke

See merge request OpenMW/openmw!918
3 years ago
psi29a 9058fa9f60 Merge branch 'fix_launcher_ui' into 'master'
Make launcher Advanced/Visuals tab look more like other

See merge request OpenMW/openmw!908
3 years ago
psi29a a487295d39 Merge branch 'fix_new_game_guard' into 'master'
Consider time to destination when try to avoid collision

See merge request OpenMW/openmw!914
3 years ago
psi29a 7330921bd6 Merge branch 'statuesque' into 'master'
Use modified paralyze magnitude to fall and float

Closes #6063

See merge request OpenMW/openmw!915
3 years ago
psi29a a5bf056860 Merge branch 'fix_configure_light_buffer_layout' into 'master'
Avoid resetting buffer object when configuring light buffer layout (#6064)

Closes #6064

See merge request OpenMW/openmw!913
3 years ago
Evil Eye b8472e1303 Use modified paralyze magnitude to fall and float 3 years ago
elsid d4f28ac979
Avoid resetting buffer object when configuring light buffer layout
Otherwise this casues RaceSelectionPreview to have no light until first change.
3 years ago
psi29a 9dfba37ce9 Merge branch 'fix_big_object_navmesh_update' into 'master'
Fix overwhelming recast mesh and navmesh updates for big rotating objects (#6060)

Closes #6060

See merge request OpenMW/openmw!911
3 years ago
elsid e9433a91fb
Add more tests for TileCachedRecastMeshManager 3 years ago
psi29a 825ac6100f Merge branch 'fix_loading_screen' into 'master'
Always center loading screen progress bar by height when there is active message box (#6059)

See merge request OpenMW/openmw!910
3 years ago
psi29a 1ec9d471a2 Merge branch 'specifically_insensitive' into 'master'
Use ciEqual to determine actor-specific answers

Closes #6055

See merge request OpenMW/openmw!912
3 years ago
Evil Eye 1a1085272a Use ciEqual to determine actor-specific answers 3 years ago
elsid 4a6961b365
Trigger navmesh update on moved player only when player tile has been changed 3 years ago
elsid ed91cf9397
Replace unordered_map by map for storing objects
For small amount of items it gives better performance for find by key
for update.
3 years ago
elsid 22c2f106b7
Store object tiles position as sorted vector instead of set 3 years ago
elsid f4f9fa4701
Limit oscillating recast mesh object AABB by tile bounds
AABB change outside recast mesh tile should not affect navmesh for this tile.
3 years ago
elsid d122e184cc
Report navmesh change for not posted tiles
Corresponding recast mesh tiles can be updated but navmesh tiles may never
appear for them. Report back zero navmesh version to allow oscillating recast
objects detection to work. This version is always less than any generated
navmesh tile version so any report for generated navmesh will override it.
If zero navmesh version is reported after recast mesh tile got report about
generated navmesh tile it is a no-op since generated version is always greater
than zero.
3 years ago
elsid 3915e5d2cc
Always center loading screen progress bar by height when there is active message box
To fix all possible situations when active message box overlaps with loading
screen progress.

The only used condition to center loading screen progress by height is
number of message boxes > 0. No need to pass it through interface.
LoadingScreen can check it inside setLabel function.
3 years ago
AnyOldName3 4c4218f70d Merge branch 'hangup-fix' into 'master'
Fix hangup on savegame after manual screenshots.

See merge request OpenMW/openmw!905
3 years ago
Mads Buvik Sandvei d906ec773a Fix hangup on savegame after manual screenshots. 3 years ago
psi29a 05c5688e3a Merge branch 'slider' into 'master'
Make the light distance slider de/increment by 128

Closes #6052

See merge request OpenMW/openmw!904
3 years ago
Dobrohotov Alexei f12a52c603 Make the light distance slider de/increment by 128 3 years ago
Alexei Dobrohotov 6a7bc208de Merge branch 'dont_assign' into 'master'
Don't assign a variable passed by value

See merge request OpenMW/openmw!897
3 years ago
psi29a dff4b83d9d Merge branch 'stop_threading' into 'master'
Stop osg viewer threading before destructing engine

See merge request OpenMW/openmw!901
3 years ago
psi29a 2a6bd1b0cc Merge branch 'navmesh_tiles_cache_tests' into 'master'
Add more checks to NavMeshTilesCache tests

See merge request OpenMW/openmw!899
3 years ago
psi29a 8774d23830 Merge branch 'FixBsaToolExtract' into 'master'
Update lookup only after sorting files

See merge request OpenMW/openmw!893
3 years ago
elsid 375372981c
Stop osg viewer threading before destructing engine
To avoid rendering while engine parts are destructing.
3 years ago
elsid 105cd5b06f
Add more checks to NavMeshTilesCache tests 3 years ago
jvoisin e51669c05d Don't assign a variable passed by value 3 years ago
psi29a f27d7c66ff Merge branch 'racy_deadcode' into 'master'
Remove both racy and useless code.

See merge request OpenMW/openmw!896
3 years ago
CedricMocquillon 86d137363e Check if the archive is opened before adding a file to it and clear state on close 3 years ago
fredzio b13afd758c Remove both racy and useless code.
Actor's position can be determined in 3 ways:
1/ as a result of physics simulation
2/ after a script require a relative position change (SetPos, Move)
3/ absolutely set from games mechanics event (teleport) or script
(PositionCell)

In case 1/, RefData::mPosition is updated with the physics simulation result
In case 2/, when RefData::mPosition is updated, physics simulation is informed of the change and update accordingly
In case 3/, when RefData::mPosition is updated, the physics simulation state is reset

In all 3 cases, we don't need to check the RefData::mPosition to get a
correct behaviour.

TSAN reported the following data race:
  Read of size 4 at 0x7b50005b75b0 by thread T12 (mutexes: write M656173, write M84859534346343880):
    #0 ESM::Position::asVec3() const /build/openmw/openmw/master2/.build/freebsd/TSAN/../../.././components/esm/defs.hpp:55:27 (openmw+0xb809d5)
    #1 MWPhysics::Actor::updateWorldPosition() /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/actor.cpp:131:59 (openmw+0xb809d5)
    #2 MWPhysics::Actor::setPosition(osg::Vec3f const&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/actor.cpp:177:5 (openmw+0xb809d5)
    #3 MWPhysics::PhysicsTaskScheduler::updateActorsPositions() /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/mtphysics.cpp:524:28 (openmw+0xb91ac0)
    #4 MWPhysics::PhysicsTaskScheduler::afterPostStep() /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/mtphysics.cpp:614:13 (openmw+0xb915e7)
    #5 MWPhysics::PhysicsTaskScheduler::worker()::$_5::operator()() const /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/mtphysics.cpp:498:45 (openmw+0xb915e7)
    #6 void Misc::Barrier::wait<MWPhysics::PhysicsTaskScheduler::worker()::$_5>(MWPhysics::PhysicsTaskScheduler::worker()::$_5&&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../.././components/misc/barrier.hpp:30:21 (openmw+0xb915e7)
    #7 MWPhysics::PhysicsTaskScheduler::worker() /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/mtphysics.cpp:498:31 (openmw+0xb915e7)
    #8 MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0::operator()() const /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwphysics/mtphysics.cpp:162:45 (openmw+0xb92630)
    #9 decltype(std::__1::forward<MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0>(fp)()) std::__1::__invoke<MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0>(MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0&&) /usr/include/c++/v1/type_traits:3899:1 (openmw+0xb92630)
    #10 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0>&, std::__1::__tuple_indices<>) /usr/include/c++/v1/thread:280:5 (openmw+0xb92630)
    #11 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, MWPhysics::PhysicsTaskScheduler::PhysicsTaskScheduler(float, btCollisionWorld*, MWRender::DebugDrawer*)::$_0> >(void*) /usr/include/c++/v1/thread:291:5 (openmw+0xb92630)

  Previous write of size 8 at 0x7b50005b75b0 by main thread:
    #0 memcpy /wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-3f6753efe1990a928ed120bd907940a9fb3e2fc3/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:827:5 (openmw+0x55a057)
    #1 MWWorld::RefData::setPosition(ESM::Position const&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwworld/refdata.cpp:216:19 (openmw+0xa3de1c)
    #2 MWWorld::World::moveObject(MWWorld::Ptr const&, MWWorld::CellStore*, float, float, float, bool) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwworld/worldimp.cpp:1130:26 (openmw+0xa57300)
    #3 MWWorld::World::moveObject(MWWorld::Ptr const&, float, float, float, bool, bool) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwworld/worldimp.cpp:1253:16 (openmw+0xa580c8)
    #4 MWWorld::World::doPhysics(float, unsigned long long, unsigned int, osg::Stats&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwworld/worldimp.cpp:1530:17 (openmw+0xa5af8f)
    #5 MWWorld::World::updatePhysics(float, bool, unsigned long long, unsigned int, osg::Stats&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/mwworld/worldimp.cpp:1862:13 (openmw+0xa61a7c)
    #6 OMW::Engine::frame(float) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/engine.cpp:333:42 (openmw+0xcce9e7)
    #7 OMW::Engine::go() /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/engine.cpp:935:14 (openmw+0xcd86ed)
    #8 runApplication(int, char**) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/main.cpp:296:17 (openmw+0xcbffac)
    #9 wrapApplication(int (*)(int, char**), int, char**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../components/debug/debugging.cpp:205:15 (openmw+0x1335442)
    #10 main /build/openmw/openmw/master2/.build/freebsd/TSAN/../../../apps/openmw/main.cpp:308:12 (openmw+0xcc008a)
:wqa
3 years ago
psi29a 3696187737 Merge branch 'free_as_in_av' into 'master'
Use av_free and maybe get Coverity to understand

See merge request OpenMW/openmw!892
3 years ago
CedricMocquillon b61249841e Update lookup only after sorting files 3 years ago
Evil Eye 54d32817d5 Use av_free and maybe get Coverity to understand 3 years ago
psi29a 3920477618 Merge branch 'moving_lighting_method_to_graphics' into 'master'
Moving Lighting Method from Advanced -> Visuals to Graphics -> Lighting

See merge request OpenMW/openmw!883
3 years ago
psi29a c4fde03542 Merge branch 'ObjectPagingMergeIssue' into 'master'
Share state

See merge request OpenMW/openmw!879
3 years ago
psi29a e596f62107 Merge branch 'Terrain-Selection-Issues' into 'master'
Various fixes for the editor's "Terrain land editing" mode (fixes #5473, #6022, #6023, #6024, #6035, #6036)

Closes #6036, #6035, #6024, #6023, #6022, and #5473

See merge request OpenMW/openmw!840
3 years ago