Merge pull request #72138 from clayjohn/GL-globals

Properly append global uniform buffer name in gl_compatibility shaders
This commit is contained in:
Rémi Verschelde 2023-01-26 22:52:42 +01:00
commit 3cacc83526
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 11 additions and 0 deletions

View file

@ -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);
}
}

View file

@ -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) {