### 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.
}
				attribs[i].type = GL_FLOAT;
				vertex_stride += attribs[i].size * sizeof(float);
				attribs[i].normalized = GL_FALSE;
			} break;
			case RS::ARRAY_NORMAL: {
				attribs[i].offset = vertex_stride;
				attribs[i].size = 2;
				attribs[i].type = (mis ? GL_FLOAT : GL_UNSIGNED_SHORT);
				vertex_stride += sizeof(uint16_t) * 2 * (mis ? 2 : 1);
				attribs[i].normalized = GL_TRUE;
			} break;
			case RS::ARRAY_TANGENT: {
				attribs[i].offset = vertex_stride;
				attribs[i].size = 2;
				attribs[i].type = (mis ? GL_FLOAT : GL_UNSIGNED_SHORT);
				vertex_stride += sizeof(uint16_t) * 2 * (mis ? 2 : 1);
				attribs[i].normalized = GL_TRUE;
			} break;
			case RS::ARRAY_COLOR: {
				attribs[i].offset = attributes_stride;
				attribs[i].size = 4;
				attribs[i].type = GL_UNSIGNED_BYTE;
				attributes_stride += 4;
				attribs[i].normalized = GL_TRUE;
			} break;
			case RS::ARRAY_TEX_UV: {
				attribs[i].offset = attributes_stride;
				attribs[i].size = 2;
				attribs[i].type = GL_FLOAT;