Repository: godotengine/godot (language: cpp)

Issue:
Error makes imported models glitch heavily: `ERROR: Vertex buffer supplied (binding: 1) was not created with storage flag.`
### Tested versions

v4.4.beta.custom_build [23c1389f9]

### System information

v4.4.beta.custom_build [23c1389f9]

### Issue description

![Image](https://github.com/user-attachments/assets/b4be9740-3d77-43d6-b76e-94d2404c49fa)

I get tons of **ERROR: Vertex buffer supplied (binding: 1) was not created with storage flag.**
errors and all skeletal meshes seems to be broken both in editor an in game.

![Image](https://github.com/user-attachments/assets/72268882-623a-41af-9367-95899d92dcad)

I am investigating which commit may have been caused it right now. I will update when i find the culprit.

### Steps to reproduce

Have a skelketal mesh

### Minimal reproduction project (MRP)

WIP


Discussion / hints:
no issues on https://github.com/godotengine/godot/commit/387d0e7100f7098e40face93c322517c9bcb7afe it must be something in between that commit and latest
I got the same issue. Investigating.
Just built https://github.com/godotengine/godot/commit/26ac8ce50f2cecfb00206c3583b8fba70fd0fbf2 no issues on it either. it must be one of the last 10 commits.
Found the culprit of the regression: https://github.com/godotengine/godot/pull/101561
Graaa!!!

This looks like a really silly bug of mine. Will look what's wrong but it should be obvious
@darksylinc I already found the issue. One case of `vertex_buffer_create` that didn't get updated

Fix patch:
diff --git a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp
index cb3d827e77da..abc525512a20 100644
--- a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp
+++ b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp
@@ -1008,7 +1008,7 @@ void MeshStorage::_mesh_instance_add_surface(MeshInstance *mi, Mesh *mesh, uint3
 }
 
 void MeshStorage::_mesh_instance_add_surface_buffer(MeshInstance *mi, Mesh *mesh, MeshInstance::Surface *s, uint32_t p_surface, uint32_t p_buffer_index) {
-	s->vertex_buffer[p_buffer_index] = RD::get_singleton()->vertex_buffer_create(mesh->surfaces[p_surface]->vertex_buffer_size, Vector<uint8_t>(), true);
+	s->vertex_buffer[p_buffer_index] = RD::get_singleton()->vertex_buffer_create(mesh->surfaces[p_surface]->vertex_buffer_size, Vector<uint8_t>(), RD::BUFFER_CREATION_AS_STORAGE_BIT);
 
 	Vector<RD::Uniform> uniforms;
 	{


Test patch: