Renderers
See also
This page gives an overview of Godot's renderers, focusing on the differencesbetween their rendering features. For more technical details on the renderers,seeInternal rendering architecture.
Introduction
Godot 4 includes three renderers:
Forward+. The most advanced renderer, suited for desktop platforms only.Used by default on desktop platforms. This renderer usesVulkan,Direct3D 12,orMetal as the rendering driver, and it uses theRenderingDevice backend.
Mobile. Fewer features, but renders simple scenes faster. Suited for mobileand desktop platforms. Used by default on mobile platforms. This renderer usesVulkan,Direct3D 12, orMetal as the rendering driver, and it usestheRenderingDevice backend.
Compatibility, sometimes calledGL Compatibility. The least advancedrenderer, suited for low-end desktop and mobile platforms. Used by default onthe web platform. This renderer usesOpenGL as the rendering driver.
Renderers, rendering drivers, and RenderingDevice

Godot's rendering abstraction layers.
Therenderer, orrendering method, determines which features are available.Most of the time, this is the only thing you need to think about. Godot's renderersareForward+,Mobile, andCompatibility.
Therendering driver tells the GPU what to do, using a graphics API. Godot canuse theOpenGL,Vulkan,Direct3D 12, andMetal rendering drivers.Not every GPU supports every rendering driver, and therefore not every GPU supportsall renderers. Vulkan, Direct3D 12, and Metal are modern, low-level graphics APIs,and requires newer hardware. OpenGL is an older graphics API that runs on most hardware.
RenderingDevice is arendering backend, an abstraction layer between the rendererand the rendering driver. It is used by the Forward+ and Mobile renderers, andthese renderers are sometimes called "RenderingDevice-based renderers".
Choosing a renderer
Choosing a renderer is a complex question, and depends on your hardware and thewhich platforms you are developing for. As a starting point:
ChooseForward+ if:
You are developing for desktop.
You have relatively new hardware which supports Vulkan, Direct3D 12, or Metal.
You are developing a 3D game.
You want to use the most advanced rendering features.
ChooseMobile if:
You are developing for newer mobile devices, desktop XR, or desktop.
You have relatively new hardware which supports Vulkan, Direct3D 12, or Metal.
You are developing a 3D game.
You want to use advanced rendering features, subject to the limitationsof mobile hardware.
ChooseCompatibility if:
You are developing for older mobile devices, older desktop devices, orstandalone XR. The Compatibility renderer supports the widest range of hardware.
You are developing for web. In this case, Compatibility is the only choice.
You have older hardware which does not support Vulkan. In this case,Compatibility is the only choice.
You are developing a 2D game, or a 3D game which does not need advancedrendering features.
You want the best performance possible on all devices and don't need advancedrendering features.
Keep in mind every game is unique, and this is only a starting point. For example,you might choose to use the Compatibility renderer even though you have the latestGPU, so you can support the widest range of hardware. Or you might want to use theForward+ renderer for a 2D game, so you can advanced features like compute shaders.
Switching between renderers
In the editor, you can always switch between renderers by clicking on the renderername in the upper-right corner of the editor.
Switching between renderers may require some manual tweaks to your scene, lighting,and environment, since each renderer is different. In general, switching betweenthe Mobile and Forward+ renderers will require fewer adjustments than switchingbetween the Compatibility renderer and the Forward+ or Mobile renderers.
Since Godot 4.4, when using Forward+ or Mobile, if Vulkan is not supported, theengine will fall back to Direct3D 12 and vice versa. If the attempted fallbackdriver is not supported either, the engine will then fall back to Compatibilitywhen the RenderingDevice backend is not supported. This allows the project to runanyway, but it may look different than the intended appearance due to the morelimited renderer. This behavior can be disabled in the project settings by uncheckingRendering > Rendering Device > Fallback to OpenGL 3.
Feature comparison
This is not a complete list of the features of each renderer. If a feature isnot listed here, it is available in all renderers, though it may be much fasteron some renderers. For a list ofall features in Godot, seeList of features.
Hardware with RenderingDevice support is hardware which can run Vulkan, Direct3D12, or Metal.
Overall comparison
Feature | Compatibility | Mobile | Forward+ |
---|---|---|---|
Requiredhardware | Older or low-end. | Newer or high-end.Requires Vulkan, Direct3D12, or Metal support. | Newer or high-end.Requires Vulkan, Direct3D12, or Metal support. |
Runs on new hardware | ✔️ Yes. | ✔️ Yes. | ✔️ Yes. |
Runs on old andlow-end hardware | ✔️ Yes. | ✔️ Yes, but slower thanCompatibility. | ✔️ Yes, but slowest ofall renderers. |
Runs on hardwarewithoutRenderingDevicesupport | ✔️ Yes. | ❌ No. | ❌ No. |
Target platforms | Mobile, low-end desktop,web. | Mobile, desktop. | Desktop. |
Desktop | ✔️ Yes. | ✔️ Yes. | ✔️ Yes. |
Mobile | ✔️ Yes (low-end). | ✔️ Yes (high-end). | ⚠️ Supported, but poorlyoptimized. Use Mobile orCompatibility instead. |
XR | ✔️ Yes. Recommended forstandalone headsets. |
| ⚠️ Supported, but poorlyoptimized. Use Mobile orCompatibility instead. |
Web | ✔️ Yes. | ❌ No. | ❌ No. |
2D Games | ✔️ Yes. | ✔️ Yes, butCompatibility is usuallygood enough for 2D. | ✔️ Yes, butCompatibility is usuallygood enough for 2D. |
3D Games | ✔️ Yes. | ✔️ Yes. | ✔️ Yes. |
Feature set | 2D and core 3D features. | Most rendering features. | All rendering features. |
2D renderingfeatures | ✔️ Yes. | ✔️ Yes. | ✔️ Yes. |
Core 3D renderingfeatures | ✔️ Yes. | ✔️ Yes. | ✔️ Yes. |
Advancedrendering features | ❌ No. | ⚠️ Yes, limited bymobile hardware. | ✔️ Yes. All renderingfeatures are supported. |
New features | ⚠️ Some new renderingfeatures are added toCompatibility. Featuresare added after Mobileand Forward+. | ✔️ Most new renderingfeatures are added toMobile. Mobile usuallygets new features asForward+ does. | ✔️ All new features areadded to Forward+. As thefocus of new development,Forward+ gets featuresfirst. |
Rendering cost | Low base cost, buthigh scaling cost. | Medium base cost, andmedium scaling cost. | Highest base cost, andlow scaling cost. |
Rendering driver | OpenGL. | Vulkan, Direct3D 12, orMetal. | Vulkan, Direct3D 12, orMetal. |
Lights and shadows
See3D lights and shadows for more information.
Feature | Compatibility | Mobile | Forward+ |
---|---|---|---|
Lighting approach | Forward | Forward | Clustered Forward |
MaximumOmniLights | 8 per mesh. Can beincreased. | 8 per mesh, 256 per view. | 512 per cluster. Can beincreased. |
MaximumSpotLights | 8 per mesh. Can beincreased. | 8 per mesh, 256 per view. | 512 per cluster. Can beincreased. |
MaximumDirectionalLights | 8 | 8 | 8 |
PCSS forOmniLight and SpotLight | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
PCSS forDirectionalLight | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Light projectortextures | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
Global Illumination
SeeIntroduction to global illumination for more information.
Feature | Compatibility | Mobile | Forward+ |
---|---|---|---|
ReflectionProbe | ✔️ Supported, 2 permesh. | ✔️ Supported, 8 permesh. | ✔️ Supported, unlimited. |
LightmapGI | ⚠️ Rendering of bakedlightmaps is supported.Baking requires hardwarewith RenderingDevicesupport. | ✔️ Supported. | ✔️ Supported. |
VoxelGI | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Screen-SpaceIndirect Lighting (SSIL) | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Signed Distance FieldGlobal Illumination(SDFGI) | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Environment and post-processing
SeeEnvironment and post-processing for more information.
Feature | Compatibility | Mobile | Forward+ |
---|---|---|---|
Fog (Depth and Height) | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. |
Volumetric Fog | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Tonemapping | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. |
Screen-Space Reflections | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Screen-Space AmbientOcclusion (SSAO) | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Screen-SpaceIndirect Lighting (SSIL) | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Signed Distance FieldGlobal Illumination(SDFGI) | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Glow | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. |
Adjustments | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. |
Custom post-processingwith fullscreen quad | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. |
Custom post-processingwith CompositorEffects | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
Antialiasing
See3D antialiasing for more information.
Feature | Compatibility | Mobile | Forward+ |
---|---|---|---|
MSAA 3D | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. |
MSAA 2D | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
TAA | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
FSR2 | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
FXAA | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
SSAA | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. |
Screen-spaceroughness limiter | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
StandardMaterial features
SeeStandard Material 3D and ORM Material 3D for more information.
Feature | Compatibility | Mobile | Forward+ |
---|---|---|---|
Sub-surface scattering | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Shader features
SeeShading reference for more information.
Feature | Compatibility | Mobile | Forward+ |
---|---|---|---|
Screen texture | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. |
Depth texture | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. |
Normal/Roughness texture | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. |
Compute shaders | ❌ Not supported. | ⚠️ Supported, but comeswith a performancepenalty on older devices. | ✔️ Supported. |
Other features
Feature | Compatibility | Mobile | Forward+ |
---|---|---|---|
Variable rateshading | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
Decals | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
Depth of field blur | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
Adaptive and MailboxVSync modes | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
2D HDR Viewport | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |
RenderingDeviceaccess | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. |