Commit Graph

15 Commits (99061345cc652d827e4a1dea9af49958ef207f6e)

Author SHA1 Message Date
elsid d2d8a7a940
Fix passing null to memcpy
/home/elsid/dev/openmw/components/detournavigator/navmeshtilescache.cpp:36:24: runtime error: null pointer passed as argument 2, which is declared to never be null
    #0 0x55e37ba4cda5 in makeNavMeshKey /home/elsid/dev/openmw/components/detournavigator/navmeshtilescache.cpp:36
    #1 0x55e37ba4cda5 in DetourNavigator::NavMeshTilesCache::set(osg::Vec3f const&, osg::Vec2i const&, DetourNavigator::RecastMesh const&, std::vector<DetourNavigator::OffMeshConnection, std::allocator<DetourNavigator::OffMeshConnection> > const&, DetourNavigator::NavMeshData&&) /home/elsid/dev/openmw/components/detournavigator/navmeshtilescache.cpp:81
    #2 0x55e37fe3c861 in DetourNavigator::updateNavMesh(osg::Vec3f const&, DetourNavigator::RecastMesh const*, osg::Vec2i const&, osg::Vec2i const&, std::vector<DetourNavigator::OffMeshConnection, std::allocator<DetourNavigator::OffMeshConnection> > const&, DetourNavigator::Settings const&, std::shared_ptr<Misc::ScopeGuarded<DetourNavigator::NavMeshCacheItem> > const&, DetourNavigator::NavMeshTilesCache&) /home/elsid/dev/openmw/components/detournavigator/makenavmesh.cpp:582
    #3 0x55e37fb796ce in DetourNavigator::AsyncNavMeshUpdater::processJob(DetourNavigator::AsyncNavMeshUpdater::Job const&) /home/elsid/dev/openmw/components/detournavigator/asyncnavmeshupdater.cpp:178
    #4 0x55e37fb9a125 in DetourNavigator::AsyncNavMeshUpdater::process() /home/elsid/dev/openmw/components/detournavigator/asyncnavmeshupdater.cpp:144
    #5 0x7f013f585c23 in execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
    #6 0x7f013f8c63e8 in start_thread (/usr/lib/libpthread.so.0+0x93e8)
    #7 0x7f013e91d292 in __GI___clone (/usr/lib/libc.so.6+0x100292)
4 years ago
elsid 7591d45008
Use memcpy to create navmesh key
Implementation with memcpy is ~13 times faster.
4 years ago
elsid 4624f31788
Report navigator stats 6 years ago
elsid dd0b45ede6
Do not pass nullptr to std::memcmp 6 years ago
elsid 68948bc847
Avoid key allocation to find tile in cache 6 years ago
elsid 9d61c49478
Store key by reference in tiles map 6 years ago
elsid b6243e7d1f
Fix name styleguide 6 years ago
Andrei Kortunov 3032b177a1 Remove redundant includes 6 years ago
elsid 6e78fbb538
Double key size for item cache size 6 years ago
elsid 696bb9adc8
Add missing decrease for free navmesh data size 6 years ago
Andrei Kortunov a387c6b910 Fix MSVC2015 C4503 warning 6 years ago
elsid b77684a135
Add TODOs 6 years ago
elsid 2ba026e2b2
Limit navmesh cache size by data size + key size 6 years ago
elsid af2f4e8424 Allow to use zero cache size 6 years ago
elsid ed73d130f9
Cache navmesh tiles
Use LRU modification to hold currently used items. Use RecastMesh binary
data for item key.

Store original pointer of btCollisionShape in user pointer to make available
it as an identifier within all duplicates. Use pointer to heights data array
for btHeightfieldTerrainShape.
6 years ago