diff --git a/drivers/gles2/rasterizer_canvas_gles2.cpp b/drivers/gles2/rasterizer_canvas_gles2.cpp index f5afc64d646..52cffe2dfea 100644 --- a/drivers/gles2/rasterizer_canvas_gles2.cpp +++ b/drivers/gles2/rasterizer_canvas_gles2.cpp @@ -1277,7 +1277,12 @@ bool RasterizerCanvasGLES2::try_join_item(Item *p_ci, RenderItemState &r_ris, bo r_batch_break = false; bool join = true; - // light_masked may possibly need state checking here. Check for regressions! + // light_masked objects we just don't currently support for joining + // (this could possibly be improved at a later date) + if (p_ci->light_masked) { + join = false; + r_batch_break = true; + } // we will now allow joining even if final modulate is different // we will instead bake the final modulate into the vertex colors diff --git a/drivers/gles3/rasterizer_canvas_gles3.cpp b/drivers/gles3/rasterizer_canvas_gles3.cpp index 88416989e00..df0ab12a6ed 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.cpp +++ b/drivers/gles3/rasterizer_canvas_gles3.cpp @@ -1678,7 +1678,12 @@ bool RasterizerCanvasGLES3::try_join_item(Item *p_ci, RenderItemState &r_ris, bo r_batch_break = false; bool join = true; - // light_masked may possibly need state checking here. Check for regressions! + // light_masked objects we just don't currently support for joining + // (this could possibly be improved at a later date) + if (p_ci->light_masked) { + join = false; + r_batch_break = true; + } // we will now allow joining even if final modulate is different // we will instead bake the final modulate into the vertex colors