Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename Rendering Backends #4188

Closed
clayjohn opened this issue Mar 8, 2022 · 1 comment
Closed

Rename Rendering Backends #4188

clayjohn opened this issue Mar 8, 2022 · 1 comment

Comments

@clayjohn
Copy link
Member

clayjohn commented Mar 8, 2022

Describe the project you are working on

The Godot Engine

Describe the problem or limitation you are having in your project

Right now we have 2 rendering "drivers"

  1. Vulkan
  2. OpenGL

When using Vulkan you can choose between the clustered backend and the mobile backend.

Primarily, our issue is that users select between the graphics drivers and then specify the renderer type after choosing the graphics driver. In the future we would like to allow users to select between Vulkan, D3D12, Metal, and WebGPU (or switch depending on platform) but the currently structure makes that awkward. Instead of making multiple renderers per driver, we should implement drivers per rendering backend.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

I propose that we rename the backends as follows:

  1. Vulkan - Clustered -> Clustered Forward Renderer
  2. Vulkan - Mobile -> Forward Mobile Renderer
  3. OpenGL -> Compatibility Renderer

Then, the drivers should be reorganized so that users select rendering backend first, and then driver second.

Depending on which backend you select, you would be able to choose between rendering "driver" which is the API used.

For example, in the Clustered Forward Renderer you would be able to choose between Vulkan, D3D12, Metal, and WebGPU (eventually) while in the Compatibility Renderer you will only be able to choose OpenGL 3.3/ES 3.0 for now (but we plan on allowing users to choose Angle in the future)

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

Users will have two project settings:

  1. Rendering Backend (Clustered Forward Renderer, Forward Mobile Renderer, Compatibility Renderer)
  2. Driver (options change depending on choice of rendering backend)

Internally, nothing really needs to change, this is more of a naming/settings organization change

If this enhancement will not be used often, can it be worked around with a few lines of script?

It is a core organization of the rendering backends

Is there a reason why this should be core and not an add-on in the asset library?

It is core

@clayjohn
Copy link
Member Author

Superseded by #4261

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants