Repository: godot
Issue: New Vulkan errors in Godot 4.3 when rendering Billboard enabled AnimatedSprite3D on specific Android device
Labels: bug,platform:android,topic:rendering,regression,topic:3d

### Tested versions

Reproducible in: 4.3.stable, **4.3.rc1**
Not reproducible in: **4.3.beta3**, 4.3.beta2, 4.3.beta1, 4.2.stable

### System information

Device: Moto G84, OS: Android 14, Renderer: Vulkan (Mobile Renderer), GPU: Adreno 619

### Issue description

After updating from Godot 4.2.stable to 4.3.stable, one of our developers experienced a significant performance drop on their device (Moto G84), resulting in a very low frame rate. This issue was not present in version 4.2.stable. Upon investigation, we found the following error messages repeatedly appearing in the debugger:

```
E 0:00:08:0275   render_pipeline_create: vkCreateGraphicsPipelines failed with error -13.
  <C++ Error>    Condition "err" is true. Returning: PipelineID()
  <C++ Source>   drivers/vulkan/rendering_device_driver_vulkan.cpp:4596 @ render_pipeline_create()

E 0:00:08:0275   render_pipeline_create: Condition "!pipeline.driver_id" is true. Returning: RID()
  <C++ Source>   servers/rendering/rendering_device.cpp:3317 @ render_pipeline_create()

E 0:00:08:0275   _generate_version: Condition "pipeline.is_null()" is true. Returning: RID()
  <C++ Source>   servers/rendering/renderer_rd/pipeline_cache_rd.cpp:61 @ _generate_version()


E 0:00:08:0275   draw_list_bind_render_pipeline: Parameter "pipeline" is null.
  <C++ Source>   servers/rendering/rendering_device.cpp:3840 @ draw_list_bind_render_pipeline()

E 0:00:08:0275   draw_list_draw: The vertex format used to create the pipeline does not match the vertex format bound.
  <C++ Error>    Condition "dl->validation.pipeline_vertex_format != dl->validation.vertex_format" is true.
  <C++ Source>   servers/rendering/rendering_device.cpp:4058 @ draw_list_draw()`
```

By testing previous versions of Godot, we found that this error occurs starting from version 4.3.rc1 but not in earlier versions, such as 4.3.beta3. We also detected that the issue specifically arises when rendering AnimatedSprite3D objects with Billboard enabled in our game.

Given the Moto G84's specifications, it should be able to handle our project without issues. So this could potentially be related to Vulkan compatibility with the device's GPU (Adreno 619).

### Steps to reproduce

Please note that this issue has only been observed on one specific device (Moto G84), and we are not entirely confident about the reproduction steps' general applicability. But it's been occurring consistently in our tries, even when building the project on different machines and project settings. Nevertheless, here are the steps to reproduce the issue:

1. Create a new scene in Godot.
2. Set this new scene as the Main Scene.
3. Add an AnimatedSprite3D node.
4. Set the AnimatedSprite3D's flag Billboard to "enabled"
5. Assign a new SpriteFrames resource to the AnimatedSprite3D. (it needs something to be rendered)
6. Add the Godot Icon as one of the frames in the SpriteFrames.
7. Add a Camera3D node to the scene.
8. Position the Camera3D so that the AnimatedSprite3D is visible.
9. Configure the project for Android export.
10. Run the project with Remote Debugging enabled and check for the error messages in the Debugger.

### Minimal reproduction project (MRP)

[bug_reproduction.zip](https://github.com/user-attachments/files/16805603/bug_reproduction.zip)