continuation of #15067 (in spirit), #15210
Current situation
Shaders have been enabled by default since ~0.4.16 on desktop and 5.7.0 on Android.
Proposal
Delete all code that depends on !enable_shaders.
It's not easy to estimate how much this is but MapBlockMesh has entire data structures for doing lighting only when shaders are not used.
Why? I think it's finally time for us to free ourselves from legacy shackles.
If you pull a 10 year old computer from a dusty store room it will be able to support OpenGL with shaders. Refer also to this discussion.
There will inevitably be cases where Luanti runs better w/o shaders than with. Hopefully users will report them to us and we can try to fix them, but in many cases this is simply due to outdated hardware design (example).
This would effectively put our minimum OpenGL requirement at 2.0.
Advantages
Concerns
video_driver = null should be kept working for headless usage, but this is easy
- the number of negatively impacted users will be non-zero. we will have to accept this.
Note: With menu clouds relying on shaders in 5.10.0, we will be able to tell quite well from user complaints if some people really have shader-incompatible hardware.
continuation of #15067 (in spirit), #15210
Current situation
Shaders have been enabled by default since ~0.4.16 on desktop and 5.7.0 on Android.
Proposal
Delete all code that depends on
!enable_shaders.It's not easy to estimate how much this is but
MapBlockMeshhas entire data structures for doing lighting only when shaders are not used.Why? I think it's finally time for us to free ourselves from legacy shackles.
If you pull a 10 year old computer from a dusty store room it will be able to support OpenGL with shaders. Refer also to this discussion.
There will inevitably be cases where Luanti runs better w/o shaders than with. Hopefully users will report them to us and we can try to fix them, but in many cases this is simply due to outdated hardware design (example).
This would effectively put our minimum OpenGL requirement at 2.0.
Advantages
Concerns
video_driver = nullshould be kept working for headless usage, but this is easyNote: With menu clouds relying on shaders in 5.10.0, we will be able to tell quite well from user complaints if some people really have shader-incompatible hardware.