-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
base: master
Are you sure you want to change the base?
Document Metal support in Internal rendering architecture #9385
Conversation
Calinou
commented
May 16, 2024
- Do not merge until Add Metal support for macOS (arm64) and iOS godot#88199 is merged.
e2b2752
to
fce5e23
Compare
contributing/development/core_and_modules/internal_rendering_architecture.rst
Show resolved
Hide resolved
fce5e23
to
299dae4
Compare
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
**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.** |