rautars / weather_pack

Weather mod for Minetest
https://forum.minetest.net/viewtopic.php?f=9&p=215869
MIT License
4 stars 2 forks source link

Big performance impact #7

Closed Fixer-007 closed 6 years ago

Fixer-007 commented 7 years ago

I did some fast performance testing on this with v_range 160 in a big forest and shaders on (PR4530 fps boost PR was also applied). ATI HD6870 1GB

Results: no weather - >80 fps rain - 55 fps snow - 44 fps

It seems that impact is pretty big, weather halves your fps, this can be slow for people. Needs more optimisations, maybe in engine or irrlicht.

rautars commented 7 years ago

Due some reason particle creation is very expensive operation on minetest. Last time I checked creating single particle (e.g. drop/snowflake) is more expensive than coordinate/envinronment checks combine.

Still on local mashine (Linux/intelHD) rain/show is around 58fps. view range and shaders should not inpact weather performance because range where particles spawns is fixed. I also not sure if there any shader which applies to particles.

Sometimes fps drasticly drops on minetest depends from blocks around you even when no extra mods mods enebled (outside of default).

I understand that there is performance drop. From forum someone expierence ~18% another does not see drop at all. Its all depends how well default particle number is handled. As particle number is major performance factor when talking about this mod. Its shame that only handful number of particle could be used at the time making raining and snow quite booring.

As for performance testing I suggest edit weather mod e.g. rain.lua particles_count parameter and see how much weather particles can handle your pc and wich number is "ok" (~60fps).

rautars commented 7 years ago

Weathers was partially rewritted. If anyone can spare time to post performance results on own computer it would be great. Please test on 'vanila' minetest_game (without additional mods except weather_pack enabled).

rautars commented 6 years ago

Closed as there wan't enough data to reproduce.

Fixer-007 commented 6 years ago

I did some performance tests here: https://github.com/minetest/minetest/pull/6540

rautars commented 6 years ago

Then its up to Minetest Engine to improve particle implementation performance.