diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-01-26 22:52:42 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-01-26 22:52:42 +0100 |
commit | 3cacc835266af9446e3a51020c4ce1d36e4ad327 (patch) | |
tree | ed741b8b50d4d4a0b52d80649538614b30b0f6e8 | |
parent | 7cf21f296bfe931fb4243f1c16f9f6b5963a9ef4 (diff) | |
parent | eefddb07bc23f454a38a3b61524cf73ea2cc02e7 (diff) |
Merge pull request #72138 from clayjohn/GL-globals
Properly append global uniform buffer name in gl_compatibility shaders
-rw-r--r-- | drivers/gles3/storage/material_storage.cpp | 7 | ||||
-rw-r--r-- | servers/rendering/shader_language.cpp | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gles3/storage/material_storage.cpp b/drivers/gles3/storage/material_storage.cpp index 4a44279be9..4fb780b665 100644 --- a/drivers/gles3/storage/material_storage.cpp +++ b/drivers/gles3/storage/material_storage.cpp @@ -1546,6 +1546,8 @@ MaterialStorage::MaterialStorage() { actions.render_mode_defines["unshaded"] = "#define MODE_UNSHADED\n"; actions.render_mode_defines["light_only"] = "#define MODE_LIGHT_ONLY\n"; + actions.global_buffer_array_variable = "global_shader_uniforms"; + shaders.compiler_canvas.initialize(actions); } @@ -1719,6 +1721,7 @@ MaterialStorage::MaterialStorage() { actions.default_repeat = ShaderLanguage::REPEAT_ENABLE; actions.check_multiview_samplers = true; + actions.global_buffer_array_variable = "global_shader_uniforms"; shaders.compiler_scene.initialize(actions); } @@ -1775,6 +1778,8 @@ MaterialStorage::MaterialStorage() { actions.default_filter = ShaderLanguage::FILTER_LINEAR_MIPMAP; actions.default_repeat = ShaderLanguage::REPEAT_ENABLE; + actions.global_buffer_array_variable = "global_shader_uniforms"; + shaders.compiler_particles.initialize(actions); } @@ -1828,6 +1833,8 @@ MaterialStorage::MaterialStorage() { actions.default_filter = ShaderLanguage::FILTER_LINEAR_MIPMAP; actions.default_repeat = ShaderLanguage::REPEAT_ENABLE; + actions.global_buffer_array_variable = "global_shader_uniforms"; + shaders.compiler_sky.initialize(actions); } } diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp index d1d31d0f8e..7a4ac709f4 100644 --- a/servers/rendering/shader_language.cpp +++ b/servers/rendering/shader_language.cpp @@ -8285,6 +8285,10 @@ Error ShaderLanguage::_parse_shader(const HashMap<StringName, FunctionInfo> &p_f _set_error(vformat(RTR("Uniform instances are not yet implemented for '%s' shaders."), shader_type_identifier)); return ERR_PARSE_ERROR; } + if (OS::get_singleton()->get_current_rendering_method() == "gl_compatibility") { + _set_error(RTR("Uniform instances are not supported in gl_compatibility shaders.")); + return ERR_PARSE_ERROR; + } if (uniform_scope == ShaderNode::Uniform::SCOPE_LOCAL) { tk = _get_token(); if (tk.type != TK_UNIFORM) { |