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)
* Update embedded jsoncpp from unk version to 0.10.6
0.10.6 is last release without c++11
* Make jsoncpp more compliant with its amalgamate
Jsoncpp cpp file should be upper, make the library like it does in amalgamate
* Reorganization: move minetest embedded libs outside of source tree to /lib
* Fix a dead grep in LINT
* 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
This little update is due to a packaging problem when uploading on play store. They don't permit to re upload an APK with same version code.
This case was a fail on openssl packaged version which was old and rejected by Google but they don't remove the APK then i should increase the version code to permit having it on play store
This commit refactors the majority of the Mapgen settings system.
- MapgenParams is now owned by MapSettingsManager, itself a part of ServerMap,
instead of the EmergeManager.
- New Script API functions added:
core.get_mapgen_setting
core.get_mapgen_setting_noiseparams,
core.set_mapgen_setting, and
core.set_mapgen_setting_noiseparams.
- minetest.get/set_mapgen_params are deprecated by the above new functions.
- It is now possible to view and modify any arbitrary mapgen setting from a mod,
rather than the base MapgenParams structure.
- MapgenSpecificParams has been removed.
We can remove the function in MtNativeActivity now
as it serves precisely that purpose: to tell irrlicht
that we handled the esc key.
TODO for later:
* Perhaps try to find a more performant container than KeyList
This adds to the changes that commit
98d16e0d9a "Android: Tell make about sub-makes to speed up build"
did, and enables parallel builds for minetest
itself as well.
Fixes#2122Fixes#1454
Addendum (est31)
According from its docs in android_native_app_glue.h (from the NDK), the
onInputEvent should "Return 1 if you have handled the event, 0 for any
default dispatching". Before, we always returned 1, meaning we blocked
all hardware keys to be given to the OS.
This broke the volume keys and has caused #2122 and #1454.
Although it bases on lots of guesswork, it can probably safely be said that
CGUIEnvironment::postEventFromUser returns true if the event was handled,
and false if not. Therefore, set the status variable depending on what
postEventFromUser returned.
The old Ant build system has been deprecated for a while and new development is focused on Gradle.
I also removed a hardcoded string that lint caught and moved the patch files to a subdirectory.
I left the JNI files in the root directory.
* Update OpenSSL (thanks @sapier, i use his patch!), Curl and SQLite3.
* Remove old arm config. Almost all phones that use ARMv5 have 1 core and 256-512 RAM, it's about 2-5 FPS.
* Do -O3 optimization for libs and remove -fexpensive-optimizations for Minetest (-O3 includes this! Read gcc docs).
* OpenSSL fix - thanks @sapier, again.
Newest leveldb commit breaks build.
With no fix in sight, there is no other way
than to fall back to the last working leveldb
revision, and hardcode it.
Workaround for upstream bug
https://github.com/google/leveldb/issues/340
Before, sub-makes called by make were called without make knowing they
were sub-makes. This however led make's jobserver not do its tasks,
and the build process ended up with inefficient parralelisation. This
commit fixes this by applying the two ways the make manual tells
about: putting + to the start of the line (used when ndk-build is
invoked), and exchanging "make" with "$(MAKE)".
Before, make complained with messages like:
make[2]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
This complaint can now only been seen for openssl. openssl has issues
if make gets exchanged with $(MAKE): if exchanged, above error message
is multiplied for various subdirs of the openssl source tree.
On a 4 core box, "make -j 4" build time from "make clean_all" cleaned
source tree could be improved from 15:34 minutes to 10:45 minutes.
This means a speedup of 45%.
dcb91cf0c0 hacked around the biggest issue
this caused, but wasted a lot of CPU time and disk space It also still
included a lot of other unwanted files. This removes all of `doc/` except
the license, and also removes the server list.
Recent irrlicht revisions break the build, hardcode the revision to a working one
until upstream publishes a working version. See issue #3366 for
a discussion about this.
Also update dependencies to current versions.