summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2022-09-20 09:43:59 +0200
committerRémi Verschelde <rverschelde@gmail.com>2022-09-20 09:43:59 +0200
commit7da532275bdddce4bfcb871bd6ded8fe2163b341 (patch)
tree4609e44b51f9ca9b880866c71be9924d4da05f64 /servers/rendering/renderer_rd/renderer_compositor_rd.cpp
parenta04533f96433c8dd03b14a31d1f39f929c6dc366 (diff)
parent4a1c7de57c53af429a3523bdcbef65c8c791f09f (diff)
downloadredot-engine-7da532275bdddce4bfcb871bd6ded8fe2163b341.tar.gz
Merge pull request #65541 from clayjohn/renderer-setting
Split rendering driver project setting into renderer_name and rendering_driver
Diffstat (limited to 'servers/rendering/renderer_rd/renderer_compositor_rd.cpp')
-rw-r--r--servers/rendering/renderer_rd/renderer_compositor_rd.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
index e7abcf5674..f169692ea0 100644
--- a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
@@ -299,14 +299,19 @@ RendererCompositorRD::RendererCompositorRD() {
fog = memnew(RendererRD::Fog);
canvas = memnew(RendererCanvasRenderRD());
- back_end = (bool)(int)GLOBAL_GET("rendering/vulkan/rendering/back_end");
+ String rendering_method = GLOBAL_GET("rendering/renderer/rendering_method");
uint64_t textures_per_stage = RD::get_singleton()->limit_get(RD::LIMIT_MAX_TEXTURES_PER_SHADER_STAGE);
- if (back_end || textures_per_stage < 48) {
+ if (rendering_method == "mobile" || textures_per_stage < 48) {
scene = memnew(RendererSceneRenderImplementation::RenderForwardMobile());
- } else { // back_end == false
+ if (rendering_method == "forward_plus") {
+ WARN_PRINT_ONCE("Platform supports less than 48 textures per stage which is less than required by the Clustered renderer. Defaulting to Mobile renderer.");
+ }
+ } else if (rendering_method == "forward_plus") {
// default to our high end renderer
scene = memnew(RendererSceneRenderImplementation::RenderForwardClustered());
+ } else {
+ ERR_FAIL_MSG("Cannot instantiate RenderingDevice-based renderer with renderer type " + rendering_method);
}
scene->init();