### Godot version

v4.0.beta12.official [3c9bf4bc2]

### System information

Windows 10, AMD Radeon RX 480 4 GB RAM, 16 gb ram, Intel CPU 4 cores.

### Issue description


When switching to mobile render from forward + The alpha texture on the tree mesh starts to flicker.
Made a video: https://www.youtube.com/watch?v=WdGVi1hdRHo



### Steps to reproduce

Switching to mobile render from forward +

### Minimal reproduction project

Uploaded the project in google link: https://drive.google.com/file/d/1efEV914CWkyWoGzkv3RBMnw9t-4BVTeQ/view?usp=sharing
(only deleted the .godot - i guess its not needed.)
if (sign_cmp == light_dir_sign) {
						
						points[point_count++] = point + light_dir * cull_distance;
					} else if (sign_cmp.x == light_dir_sign.x || sign_cmp.y == light_dir_sign.y) {
						int next_j = (j + 1) % 4;
						Vector2 next_sign_cmp = signs[next_j] * 2.0 - Vector2(1.0, 1.0);
						
						if (next_sign_cmp.x == light_dir_sign.x || next_sign_cmp.y == light_dir_sign.y) {
							if (light_dir_sign.x != 0.0 || light_dir_sign.y != 0.0) {
								points[point_count++] = point;
							}
							points[point_count++] = point + light_dir * cull_distance;
						} else {
							points[point_count++] = point + light_dir * cull_distance;
							if (light_dir_sign.x != 0.0 || light_dir_sign.y != 0.0) {
								points[point_count++] = point;
							}
						}
					} else {
						
						points[point_count++] = point;
					}
				}
				Vector2 xf_points[6];
				RendererCanvasRender::LightOccluderInstance *occluders = nullptr;
				RENDER_TIMESTAMP("> Render DirectionalLight2D Shadows");
				
				for (KeyValue<RID, Viewport::CanvasData> &E : p_viewport->canvas_map) {
					RendererCanvasCull::Canvas *canvas = static_cast<RendererCanvasCull::Canvas *>(E.value.canvas);
					Transform2D xf = _canvas_get_transform(p_viewport, canvas, &E.value, clip_rect.size);