### Godot version

4.1.1

### System information

Meta Quest 2 - GLES3

### Issue description

When writing VR applications on Godot 4 using gl_compatibility, skeleton-driven meshes like hands are often rendered corrupted, or sometimes update slowly.

### Steps to reproduce

The godot-xr-tools demo projects have these issues in the climbing/gliding and pointer-demo scenes if the project is switched to gl_compatibility mode and run on a mobile VR headset.

### Minimal reproduction project

The godot-xr-tools demo project has been the testing project for this issue.
#ifdef GLES3_ENABLED
#include "mesh_storage.h"
#include "material_storage.h"
#include "utilities.h"
using namespace GLES3;
MeshStorage *MeshStorage::singleton = nullptr;
MeshStorage *MeshStorage::get_singleton() {
	return singleton;
}
MeshStorage::MeshStorage() {
	singleton = this;
	{
		skeleton_shader.shader.initialize();
		skeleton_shader.shader_version = skeleton_shader.shader.version_create();
	}
}
MeshStorage::~MeshStorage() {
	singleton = nullptr;
	skeleton_shader.shader.version_free(skeleton_shader.shader_version);
}
RID MeshStorage::mesh_allocate() {
	return mesh_owner.allocate_rid();
}
void MeshStorage::mesh_initialize(RID p_rid) {