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

Document Metal support in Internal rendering architecture #9385

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Calinou
Copy link
Member

@Calinou Calinou commented May 16, 2024

@Calinou Calinou added enhancement area:contributing Issues and PRs related to the Contributing/Development section of the documentation waiting on PR merge PR's that can't be merged until a engine PR is merged first topic:rendering labels May 16, 2024
@Calinou Calinou force-pushed the internal-rendering-architecture-metal branch 2 times, most recently from e2b2752 to fce5e23 Compare May 20, 2024 19:39
@skyace65 skyace65 added this to the 4.4 milestone Sep 8, 2024
@skyace65 skyace65 removed the waiting on PR merge PR's that can't be merged until a engine PR is merged first label Sep 8, 2024
@Calinou Calinou marked this pull request as ready for review November 10, 2024 21:31
@Calinou Calinou force-pushed the internal-rendering-architecture-metal branch from fce5e23 to 299dae4 Compare November 10, 2024 21:32
Comment on lines +98 to +105
3 rendering *methods* (running over 4 rendering *drivers*) are available:

- **Forward+**, running over Vulkan / Direct3D 12 / Metal. The most advanced
graphics backend, suited for desktop platforms only. Used by default on
desktop platforms.
- **Forward Mobile**, running over Vulkan / Direct3D 12 / Metal. Less features,
but renders simple scenes faster. Suited for mobile and desktop platforms.
Used by default on mobile platforms.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3 rendering *methods* (running over 4 rendering *drivers*) are available:
- **Forward+**, running over Vulkan / Direct3D 12 / Metal. The most advanced
graphics backend, suited for desktop platforms only. Used by default on
desktop platforms.
- **Forward Mobile**, running over Vulkan / Direct3D 12 / Metal. Less features,
but renders simple scenes faster. Suited for mobile and desktop platforms.
Used by default on mobile platforms.
Godot 4 includes three renderers:
- **Forward+**. The most advanced renderer, suited for desktop platforms only.
Used by default on desktop platforms. This renderer uses **Vulkan**, **Direct3D 12**,
or **Metal** as the rendering driver, and it uses the **RenderingDevice** backend.
- **Mobile**. Fewer features, but renders simple scenes faster. Suited for mobile
and desktop platforms. Used by default on mobile platforms. This renderer uses
**Vulkan**, **Direct3D 12**, or **Metal** as the rendering driver, and it uses
the **RenderingDevice** backend.

This is what I currently have for this section in #10183. It's word-for-word the same Renderers page summaryin that PR, too.

@@ -736,7 +745,8 @@ Occlusion culling
^^^^^^^^^^^^^^^^^

While modern GPUs can handle drawing a lot of triangles, the number of draw
calls in complex scenes can still be a bottleneck (even with Vulkan and Direct3D 12).
calls in complex scenes can still be a bottleneck (even with Vulkan, Direct3D 12
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
calls in complex scenes can still be a bottleneck (even with Vulkan, Direct3D 12
calls in complex scenes can still be a bottleneck (even with Vulkan, Direct3D 12,

@@ -270,10 +275,10 @@ To make the complexity of modern low-level graphics APIs more manageable,
Godot uses its own abstraction called RenderingDevice.

This means that when writing code for modern rendering methods, you don't
actually use the Vulkan or Direct3D 12 APIs directly. While this is still
actually use the Vulkan, Direct3D 12 or Metal APIs directly. While this is still
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
actually use the Vulkan, Direct3D 12 or Metal APIs directly. While this is still
actually use the Vulkan, Direct3D 12, or Metal APIs directly. While this is still

@@ -108,7 +108,7 @@ Compatibility
.. note::

This is the only rendering method available when using the OpenGL driver.
This rendering method is not available when using Vulkan or Direct3D 12.
This rendering method is not available when using Vulkan, Direct3D 12 or Metal.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This rendering method is not available when using Vulkan, Direct3D 12 or Metal.
This rendering method is not available when using Vulkan, Direct3D 12, or Metal.

Godot also supports Metal rendering via `MoltenVK <https://github.com/KhronosGroup/MoltenVK>`__,
which is used as a fallback when native Metal support is not available (e.g. on x86 macOS).

**This driver is still experimental and only available in Godot 4.x (TODO) and later.**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**This driver is still experimental and only available in Godot 4.x (TODO) and later.**
**This driver is still experimental and only available in Godot 4.4 and later.**

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:contributing Issues and PRs related to the Contributing/Development section of the documentation enhancement topic:rendering
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants