| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Optimize updateFastFaceRow processing by removing some TileSpec copy
It permit to decrease this function from 54% runtime to 45% and reduce copy from 14% runtime to 12.5%
getTileInfo also reduced from 27% to 23%
* makeFastFace should use a const ref too
this trigger a const pointer need in the underlying function
Also fix some code style and prevent calculating 4 times the same position at a point
* Reduce a comparison cost for lights in updateFastFaceRow
|
|
|
|
| |
This commit adds node overlays, which are tiles that are drawn on top of
other tiles.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
copying done in the main thread
Cache size is configurable by the meshgen_block_cache_size (default 20 MB).
New profiler stats:
- MeshUpdateQueue MapBlock cache hit %
- MeshUpdateQueue MapBlock cache size kB
Removes one type of stutter that was seen on the client when received MapBlocks
were being handled. (the "MeshMakeData::fill" stutter)
Kind of related to at least #5239
Originally preceded by these commits, now includes them:
- Move the mesh generator thread into src/mesh_generator_thread.{cpp,h}
- mesh_generator_thread.cpp: Update code style
- MeshUpdateThread: Modify interface to house a different implementation: Actual functionality will be changed by next commits.
- MeshMakeData: Add fillBlockData() interface (so that caller can fill in stuff from eg. a MapBlock cache)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Some performance optimizations
This is globally removing some memory useless copy
* use a const ref return on std::string Settings::get to prevent data copy on getters which doesn't need to copy it
* pass some stack created strings to static const as they are not modified anywhere
* Camera: return nametags per const ref instead of a list pointer, we only need to read it
* INodeDefManager: getAll should be a result ref writer instead of a return copy
* INodeDefManager: getAlias should return a const std::string ref
* Minimap: unroll a Scolor creation in blitMinimapPixersToImageRadar to prvent many variable construct/destruct which are unneeded (we rewrite the content in the loop)
* CNodeDefManager::updateAliases: prevent a idef getall copy
* Profiler: constness
* rollback_interface: create real_name later, and use const ref
* MapBlockMesh updateFastFaceRow: unroll TileSpec next_tile, which has a cost of 1.8% CPU due to variable allocation/destruction,
* MapBlockMesh updateFastFaceRow: copy next_tile to tile only if it's a different tilespec
* MapBlockMesh updateFastFaceRow: use memcpy to copy next_lights to lights to do it in a single cpu operation
|
| |
|
| |
|
| |
|
|
|
|
| |
Note: Smooth lighting disables the mesh cache.
|
|
|
|
|
|
| |
- Increase ContentFeatures serialization version
- Color property and palettes for nodes
- paramtype2 = "color", "colored facedir" or "colored wallmounted"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Environment code refactoring
* Cleanup includes & class declarations in client & server environment to improve build speed
* ServerEnvironment::m_gamedef is now a pointer to Server instead of IGameDef, permitting to cleanup many casts.
* Cleanup IGameDef
* Move ITextureSource* IGameDef::getTextureSource() to Client only.
* Also move ITextureSource *IGameDef::tsrc() helper
* drop getShaderSource, getSceneManager, getSoundManager & getCamera abstract call
* drop unused emerge() call
* cleanup server unused functions (mentionned before)
* Drop one unused parameter from ContentFeatures::updateTextures
* move checkLocalPrivilege to Client
* Remove some unnecessary casts
* create_formspec_menu: remove IWritableTextureSource pointer, as client already knows it
* Fix some comments
* Change required IGameDef to Server/Client pointers
* Previous change that game.cpp sometimes calls functions with Client + InventoryManager + IGameDef in same functions but it's the same objects
* Remove duplicate Client pointer in GUIFormSpecMenu::GUIFormSpecMenu
* drop ClientMap::sectorWasDrawn which is unused
|
| |
|
|
|
|
| |
Also remove some unused parameters/functions
|
|
|
|
| |
Increase maximum length of tiled node rows from 2 to mapblock size.
|
| |
|
|
|
|
|
| |
Fixes #3378
Closes #3751
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Fixed race conditions
- Fixed null dereference
- Fixed out-of-bounds array access
- MinimapMapblock is now allocated and added to update queue only when enabled
- Removed dependency on LocalPlayer
- Fixed code style
- Simplified expressions and program logic
- Cleaned minimap object interfaces
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move debug streams to log.cpp|h
Move GUI-related globals to clientlauncher
Move g_settings and g_settings_path to settings.cpp|h
Move g_menuclouds to clouds.cpp|h
Move g_profiler to profiler.cpp|h
|
|
|
|
| |
JIT-upscaled using an image transformation, right at the time they're added to a mesh or particle; images used in 2D elements are left unscaled. This should fix any remaining issues with HUD elements.
|
|
|
|
|
|
|
|
|
| |
Directely or indirectly optimises the following functions:
* MapBlockMesh::MapBlockMesh
* MapBlockMesh::getTileInfo
* MapBlockMesh::makeFastFace
* MapBlockMesh::getSmoothLightCombined
|
|
|
|
|
|
|
| |
setting
* Increase performance (client)
* Avoid changing a global value to solve a local problem
|
|
|
|
|
|
| |
"enable_shaders" setting"
This reverts commit d25ff8fd2592f457b91e8a61240694af3902d23f.
|
|
|
|
|
|
|
| |
setting
* Increase performance (client)
* Avoid changing a global value to solve a local problem
|
| |
|
|
|
|
| |
hardcoded values).
|
| |
|
|
|
|
| |
Signed-off-by: Craig Robbins <kde.psych@gmail.com>
|
|
|
|
|
|
|
| |
Leads to the following increases:
getSmoothLight() approx. 40% increase
getTileInfo() approx. 25% increase
MapBlockMesh::MapBlockMesh() 25-30%
|
| |
|
|
|
|
| |
Signed-off-by: Craig Robbins <kde.psych@gmail.com>
|
|
|
|
|
| |
CNodeDefManager::get()
VoxelManipulator::addArea()
|
|
|
|
|
| |
getTileInfo() ~1.5x faster
getSmoothLight ~2.0x faster
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Don't create and cache an extruded mesh for every (non-node) item.
Instead use a single one per image resolution.
- For cubic nodes reuse a single wield mesh too
- Improve lighting of the wielded item
- Increase far value of wield mesh scene camera, fixes #1770
- Also includes some minor refactorings of Camera and GenericCAO.
|
|
|
|
|
|
| |
sky.cpp: m_bgcolor.getAlpha() was being used before initialised
mesh related: m_highlight_mesh_color was being used uninitialised
|
| |
|
| |
|
|
|
|
|
|
| |
for all special drawtypes.
Plus some style fixes and optimizations.
|
|
|
|
| |
from shaders.
|
|
|
|
|
| |
Skip shading for lightsources and top of the nodes.
Fixes liquid sources and flowing surfaces having different brightness.
|
| |
|
| |
|