diff options
author | Clay John <claynjohn@gmail.com> | 2024-10-07 13:41:47 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-07 13:41:47 -0600 |
commit | 842f98239713fd10cfd648cd6aa3781895f289eb (patch) | |
tree | c5a6dfc6f36a341bae04e13383f1f1a9629a2a04 /servers | |
parent | e7c39efdb15eaaeb133ed8d0ff0ba0891f8ca676 (diff) | |
parent | 29df5896322c708924c1c2cea3330fe88dface80 (diff) | |
download | redot-engine-842f98239713fd10cfd648cd6aa3781895f289eb.tar.gz |
Merge pull request #96819 from clayjohn/GLES3-instance-uniforms
Implement instance uniforms in Compatibility renderer
Diffstat (limited to 'servers')
-rw-r--r-- | servers/rendering/shader_compiler.cpp | 4 | ||||
-rw-r--r-- | servers/rendering/shader_language.cpp | 4 |
2 files changed, 2 insertions, 6 deletions
diff --git a/servers/rendering/shader_compiler.cpp b/servers/rendering/shader_compiler.cpp index 527a5e5725..e7339b2cdd 100644 --- a/servers/rendering/shader_compiler.cpp +++ b/servers/rendering/shader_compiler.cpp @@ -951,7 +951,7 @@ String ShaderCompiler::_dump_node_code(const SL::Node *p_node, int p_level, Gene code = _get_global_shader_uniform_from_type_and_index(p_default_actions.global_buffer_array_variable, code, u.type); } else if (u.scope == ShaderLanguage::ShaderNode::Uniform::SCOPE_INSTANCE) { //instance variable, index it as such - code = "(" + p_default_actions.instance_uniform_index_variable + "+" + itos(u.instance_index) + ")"; + code = "(" + p_default_actions.instance_uniform_index_variable + "+" + itos(u.instance_index) + "u)"; code = _get_global_shader_uniform_from_type_and_index(p_default_actions.global_buffer_array_variable, code, u.type); } else { //regular uniform, index from UBO @@ -1051,7 +1051,7 @@ String ShaderCompiler::_dump_node_code(const SL::Node *p_node, int p_level, Gene code = _get_global_shader_uniform_from_type_and_index(p_default_actions.global_buffer_array_variable, code, u.type); } else if (u.scope == ShaderLanguage::ShaderNode::Uniform::SCOPE_INSTANCE) { //instance variable, index it as such - code = "(" + p_default_actions.instance_uniform_index_variable + "+" + itos(u.instance_index) + ")"; + code = "(" + p_default_actions.instance_uniform_index_variable + "+" + itos(u.instance_index) + "u)"; code = _get_global_shader_uniform_from_type_and_index(p_default_actions.global_buffer_array_variable, code, u.type); } else { //regular uniform, index from UBO diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp index 879a83f519..77035a64f7 100644 --- a/servers/rendering/shader_language.cpp +++ b/servers/rendering/shader_language.cpp @@ -9089,10 +9089,6 @@ 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) { |