Godot version:
3.1.1
OS/device including version:
Win 10 / Android. Xiaomi Pocophone F1
Issue description:
When exporting to Android using GLES2, LightOccluder2D lets through light as seen in the picture below. The light is displayed correctly when switching to GLES3.

Expected result (On Windows using GLES2/3, using GLES3 on Android)
Steps to reproduce:
Using a Light2D with shadows with a LightOccluder2D. Export to Android with GLES2.
Can you share a scene/minimal project that exhibits the issue? That makes it easier to test to confirm the bug, and then debug.
Sure! Here's one that I threw together with a light and two LightOccluder2D nodes interacting.
I tried to emulate my own project a little and make one of the LightOccluder2D nodes 1 pixel thick but I couldn't reproduce the drastic light bleeds found in my game. But there are still some oddities which may be related.
When I run this on my phone with GLES2, I get this:

When I run it with GLES3, I get this:

Also, my phone is Xiaomi instead. I'll correct the initial report.
I wonder if this is a precision issue. If so, it may be fixed in master already.
Tested on the current master branch, I can reproduce the issue on my Xiaomi Pocophone F1 with GLES2. Edit: Ah, same phone :D
Also happens on my Nexus 5X. (master)
(Just to make sure it's not phone specific)
I have been able to confirm the issue, but I can't figure out the root cause yet. This is going to have to wait until 3.2.1/4.0. Sorry. :/
No problem! Thanks for taking a look!
@clayjohn OpenglES2 Specification only requires 2^-16 precision, so may be it's represent by a 16-bits float in hardware. I think that is the reseaon of precision loss.
@raphael10241024 Sure, but we use GL_OES_depth24 when available
https://github.com/godotengine/godot/blob/c2e07db071a30e8b4cb8073f15d7fc6dbf9c8a1d/drivers/gles2/shaders/canvas_shadow.glsl#L49-L61
the depth value could be a 16-bits float
I have checked the depth map, all pixel's x channel is 0.
Most helpful comment
Tested on the current master branch, I can reproduce the issue on my Xiaomi Pocophone F1 with GLES2. Edit: Ah, same phone :D