Skip to content

Drop fixed pipeline support code #15370

Description

@sfan5

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    @ Client renderingDiscussionIssues meant for discussion of one or more proposalsRequest / SuggestionThe issue makes a suggestion for something that should be done but isn't a new feature

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions