Commit Graph

17380 Commits (5f2539adb69169059eaace5d3022153256dbea92)
 

Author SHA1 Message Date
scrawl 5f2539adb6 Optimize scrollbar/progress skins by using one widget for the track instead of one widget per pixel 8 years ago
scrawl 1447bfa215 Improve scene loading performance by creating collision objects with the correct rotation right away instead of adjusting it later 8 years ago
scrawl 739a76f5fb docs/settings: fix setting range 8 years ago
scrawl 76f6964583 docs/settings: add preload settings 8 years ago
scrawl 884d306bf3 Throw exception when told to use 0 threads 8 years ago
scrawl 209f271f5f docs/settings: remove 'This setting was added in OpenMW version X.Y"
Most of these are ancient by now, plus we have the version selector on readthedocs.io
8 years ago
scrawl 0f9ec3f0c7 docs/settings: don't specify setting type redundantly 8 years ago
scrawl 2db7292bcb Add new setting for the number of preloading worker threads
If you have CPU cores to spare, consider setting 2 or 3. Up to about 3 threads, preloading performance seems to increase in a linear fashion, but with 4 or more threads I/O bottlenecks and synchronization overhead starts to show.
8 years ago
scrawl eaeba4138b Move the deletion of PreloadItem to the worker thread 8 years ago
scrawl a1069dce3c Change UnrefQueue to accept osg::Referenced instead of osg::Object 8 years ago
scrawl 33e654f94d Add explicit handling of most commonly used nodes to NodeVisitors to avoid excessive virtual function calls 8 years ago
scrawl c95868969b Early out for scene graphs with no update callbacks in SceneManager::notifyAttached 8 years ago
scrawl 83a9435167 Fix unnecessary use of CopyFramebufferToTextureCallback when loading is too fast for a loading screen to be displayed 8 years ago
scrawl 767eba941f Speed up finding of attachment node by using the cached nodeMap 8 years ago
scrawl a76d693627 Speed up ControllerVisitor by skipping sub graphs that have no ChildrenRequiringUpdateTraversal() 8 years ago
scrawl c58fc6d276 Improve performance of loading screen by not recomputing the bounding sphere of the entire scene after each loading step 8 years ago
scrawl 30b101b175 Fix build error in OSG_USE_FLOAT_MATRIX=OFF mode due to a double implicit conversion to double (pun doubly intended) 8 years ago
scrawl 0be811c519 Update the resource cache every second instead of every frame
A dry run takes about ~1.5ms. Even though it's all done in the worker thread, the locks used can stall loading operations that are about to happen in other threads, and just in general this CPU load is unnecessary.
8 years ago
scrawl b4a6b6387b Create own instance of osgDB::SharedStateManager so we control when to call prune()
prune() is now called in the background thread, just like the resource cache update.

Seems to improve performance by ~0.3 ms/frame
8 years ago
scrawl 84a92e665c Improve performance in RigGeometry by optimizing for the most common case of identity geomToSkelMatrix 8 years ago
scrawl f3045331f1 Fix regression in handling of NiZBufferProperty 8 years ago
scrawl 6d8c414071 Set osgViewer ReleaseContextAtEndOfFrameHint to false for better performance when in SingleThreaded mode
The flag is normally set to off by default when using Viewer::run() - however since we're using our own frame loop, we have to unset the flag ourselves
8 years ago
scrawl 53e4db8a8f Add dummy serializer for CameraRelativeTransform to allow serializing content of Sky Root 8 years ago
scrawl c5f8ff6e0e Add names to several nodes for debugging purposes 8 years ago
scrawl 851f61ac82 Always assign osg::Material when a material controller is used 8 years ago
scrawl 625c5040ce Fix build 8 years ago
scrawl 1808b8567e Add 'small feature culling pixel size' setting specifically for water RTTs, by default set higher than the one in [Camera] 8 years ago
scrawl fcb4129aee Add 'small feature culling pixel size' setting 8 years ago
scrawl 9180089a3b Add sharing for more State Attributes, most notably BlendFunc and AlphaFunc, to improve the state tracking in osg::State and reduce the number of GL calls 8 years ago
scrawl 960d4a96c3 Reduce the number of osg::Material state by setting the default state on the graph root 8 years ago
scrawl e399e10607 Add missing lock in shareMaterial 8 years ago
scrawl 34deb6e7b1 Add 'showSceneGraph' command to export the scene or a particular object to .osgt for debugging purposes 8 years ago
scrawl e90941a8b3 Wrap the scene template reference in another object for const correctness and to avoid it from being serialized with the osgDB serializer 8 years ago
scrawl 29abb62dee Merge pull request #1197 from nikolaykasyanov/gamecontrollerdb-update
Update gamecontrollerdb.txt from upstream
8 years ago
MiroslavR d97e9cfe7e Fix InterpreterContext::updatePtr updating mLocals to the implicit ref's locals when interpreting a targeted global script (Fixes #3738)
The interpreter context of a targeted global script would point to the target's locals instead of the global script instance's locals when the target changed cell during script execution. Credit to scrawl for the solution.
8 years ago
scrawl 4c4ec6b108 Merge pull request #1196 from Allofich/warnings
Fix MSVC warnings
8 years ago
Nikolay Kasyanov 9e8e9aef86 Update gamecontrollerdb.txt from upstream 8 years ago
Allofich 0f20312012 Fix MSVC warnings 8 years ago
scrawl 7b0a498e83 Merge pull request #1193 from MiroslavR/disabled_player
ESS-import: player is no longer disabled
8 years ago
MiroslavR c64351b3e8 ESS-import: player is no longer disabled (Bug #3246) 8 years ago
scrawl 115e563a7a Fix race conditions caused by Array <-> GLBufferObject interactions (Bug #3580)
The first part of the fix is to assign VBO/EBO's upon loading the array in the Nif reader. This avoids triggering the 'addVertexBufferObjectIfRequired' code path in osg::Geometry which has the race condition when two threads add the same Array at the same time. Essentially, we want the Arrays to be 'const' when they come out of the Nif reader.

The second part of the fix is to make sure not to create empty arrays in the Nif reader (importantly, not assigning a VBO to the empty array). This empty array would be deleted when the NIFFile is cleaned up, and the detachment of the VBO assigned to it (which is still in use by other arrays) would cause threading issues.

This rare crash bug was first introduced with commit a7c5beb7c5. When using OSG dev version 3.5 the crashes were a little more prevalent, because 'addVertexBufferObjectIfRequired' in osg::Geometry is now used even when VBO's are disabled (as part of the VAO support changes).
8 years ago
scrawl ac61535d2c optimize OSGVertexBuffer by double buffering the vertex array instead of recreating it on every modification 8 years ago
scrawl cc19b4bd8a Fix door rotation order in collision case (Bug #3707) 8 years ago
scrawl 45fb4f04b1 Update reference of the interpreter context when an Activate results in a take action (Fixes #3727) 8 years ago
scrawl 70c5f64caa Fix mLocals not being updated in InterpreterContext::updatePtr 8 years ago
scrawl c6822b9eb6 Merge pull request #1192 from damiel/water_refactor
Added refactoring of shader handling from visvalda's fog shader
8 years ago
scrawl 8f5418c12c Merge pull request #1170 from NeveHanter/bugfix-3617
Enchanted arrows don't explode when hitting the ground (Bug #3617)
8 years ago
Martin-Kevin Neumann 5a8efa1649 added refactoring of shader handling from visvalda's fog shader 8 years ago
NeveHanter e82d542d89 Merge remote-tracking branch 'upstream/master' into bugfix-3617 8 years ago
NeveHanter 811e9ad9f3 Fixed bug https://bugs.openmw.org/issues/3617 by allowing touch and target enchantments from ranged weapons and their projectiles to explode even when colliding with non-activable objects, terrain, water slab or when shoot underwater.
Also allowed projectiles to fly through the dead bodies as in vanilla.
8 years ago