### Godot version

4.1 and 4.0.3 debug build

### System information

OS: Manjaro Linux x86_64
Kernel: 6.1.38-1-MANJARO 
CPU: AMD Ryzen 5 5600X (12) @ 3.700GHz 
GPU: NVIDIA GeForce RTX 3070 Ti
X11 backend
OpenGL API 3.3.0 NVIDIA 535.54.03

### Issue description

Game crashes silently after switching to compatibility rendering method. 
It's a pure 2D game. Forward+ and mobile work fine.

logs in console:

[4.0.3 debug build](https://github.com/Calinou/godot-debug-builds):
```
================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.3.stable.custom_build (5222a99f5d38cd5346254cefed8f65315bca4fcb)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /usr/lib/libc.so.6(+0x39ab0) [0x7fe425c9dab0] (??:0)
[2] /usr/lib/libGLdispatch.so.0(+0x4d6c9) [0x7fe4176de6c9] (??:0)
-- END OF BACKTRACE --
================================================================

```

4.1 official:
```
================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.1.stable.official (970459615f6b2b4151742ec6d7ef8559f87fd5c5)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /usr/lib/libc.so.6(+0x39ab0) [0x7fc48dfd9ab0] (??:0)
[2] /usr/lib/libGLdispatch.so.0(+0x4d6c9) [0x7fc48462b6c9] (??:0)
-- END OF BACKTRACE --
================================================================

```


### Steps to reproduce

Switch to compatibility rendering method and run game in editor.

### Minimal reproduction project
[signal11.zip](https://github.com/godotengine/godot/files/12061947/signal11.zip)



command_queue.push(RSG::mesh_storage, &RendererMeshStorage::mesh_set_blend_shape_count, mesh, p_blend_shape_count);
			for (int i = 0; i < p_surfaces.size(); i++) {
				command_queue.push(RSG::mesh_storage, &RendererMeshStorage::mesh_add_surface, mesh, p_surfaces[i]);
			}
		}
		return mesh;
	}
	FUNC2(mesh_set_blend_shape_count, RID, int)
	FUNCRIDSPLIT(mesh)
	FUNC2(mesh_add_surface, RID, const SurfaceData &)
	FUNC1RC(int, mesh_get_blend_shape_count, RID)
	FUNC2(mesh_set_blend_shape_mode, RID, BlendShapeMode)
	FUNC1RC(BlendShapeMode, mesh_get_blend_shape_mode, RID)
	FUNC4(mesh_surface_update_vertex_region, RID, int, int, const Vector<uint8_t> &)
	FUNC4(mesh_surface_update_attribute_region, RID, int, int, const Vector<uint8_t> &)
	FUNC4(mesh_surface_update_skin_region, RID, int, int, const Vector<uint8_t> &)
	FUNC3(mesh_surface_set_material, RID, int, RID)
	FUNC2RC(RID, mesh_surface_get_material, RID, int)
	FUNC2RC(SurfaceData, mesh_get_surface, RID, int)
	FUNC1RC(int, mesh_get_surface_count, RID)
	FUNC2(mesh_set_custom_aabb, RID, const AABB &)
	FUNC1RC(AABB, mesh_get_custom_aabb, RID)
	FUNC2(mesh_set_shadow_mesh, RID, RID)
	FUNC1(mesh_clear, RID)
	
	FUNCRIDSPLIT(multimesh)
	FUNC5(multimesh_allocate_data, RID, int, MultimeshTransformFormat, bool, bool)
	FUNC1RC(int, multimesh_get_instance_count, RID)
	FUNC2(multimesh_set_mesh, RID, RID)
	FUNC3(multimesh_instance_set_transform, RID, int, const Transform3D &)