summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclayjohn <claynjohn@gmail.com>2022-09-29 19:16:13 -0700
committerRĂ©mi Verschelde <rverschelde@gmail.com>2022-09-30 09:57:00 +0200
commita09bb9037e0c226e2b81d4fdd9b1ba68479b7af8 (patch)
tree9ef3eed53b73b6d8b5b6cfbfa6d2b193d35b45bc
parent56563ef09e779b9f4b105fea0e5a1a8e59c7cfe8 (diff)
Use mobile as the default rendering method on mobile when vulkan is supported
-rw-r--r--doc/classes/ProjectSettings.xml2
-rw-r--r--main/main.cpp7
2 files changed, 7 insertions, 2 deletions
diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index 498283b2f3..6b8e077fad 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -1986,7 +1986,7 @@
[b]Mobile[/b]: Modern renderer designed for mobile devices. Has a lower base overhead than Clustered, but does not scale as well to large scenes with many elements.
[b]Compatibility[/b]: Low-end renderer designed for older devices. Based on the limitations of the OpenGL 3.3/ OpenGL ES 3.0 / WebGL 2 APIs.
</member>
- <member name="rendering/renderer/rendering_method.mobile" type="String" setter="" getter="" default="&quot;forward_plus&quot;">
+ <member name="rendering/renderer/rendering_method.mobile" type="String" setter="" getter="" default="&quot;mobile&quot;">
Override for [member rendering/renderer/rendering_method] on mobile devices.
</member>
<member name="rendering/renderer/rendering_method.web" type="String" setter="" getter="" default="&quot;gl_compatibility&quot;">
diff --git a/main/main.cpp b/main/main.cpp
index aac77c1625..28a73ce585 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -710,6 +710,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
bool force_res = false;
String default_renderer = "";
+ String default_renderer_mobile = "";
String renderer_hints = "";
packed_data = PackedData::get_singleton();
@@ -1517,6 +1518,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
// Start with RenderingDevice-based backends. Should be included if any RD driver present.
#ifdef VULKAN_ENABLED
renderer_hints = "forward_plus,mobile";
+ default_renderer_mobile = "mobile";
#endif
// And Compatibility next, or first if Vulkan is disabled.
@@ -1525,6 +1527,9 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
renderer_hints += ",";
}
renderer_hints += "gl_compatibility";
+ if (default_renderer_mobile.is_empty()) {
+ default_renderer_mobile = "gl_compatibility";
+ }
#endif
if (renderer_hints.is_empty()) {
ERR_PRINT("No renderers available.");
@@ -1616,7 +1621,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
default_renderer = renderer_hints.get_slice(",", 0);
GLOBAL_DEF_RST_BASIC("rendering/renderer/rendering_method", default_renderer);
- GLOBAL_DEF_RST_BASIC("rendering/renderer/rendering_method.mobile", default_renderer);
+ GLOBAL_DEF_RST_BASIC("rendering/renderer/rendering_method.mobile", default_renderer_mobile);
GLOBAL_DEF_RST_BASIC("rendering/renderer/rendering_method.web", "gl_compatibility"); // This is a bit of a hack until we have WebGPU support.
ProjectSettings::get_singleton()->set_custom_property_info("rendering/renderer/rendering_method",