Closed qdeanc closed 8 months ago
Some more info:
This bug happens when "Rendering Method.mobile" is set to "mobile" in the project settings. It does not happen when the "Rendering Method.mobile" is set to "gl_compatibility". "forward_plus" doesn't seem to render anything at all.
I tried modifying the custom mesh using the MeshDataTool, which failed and results in the mesh disappearing. So due to this bug, it seems that reading and modifying meshes is not possible on Android devices using the "mobile" renderer.
I looked into this (latest master branch), but i hit a roadblock because my understanding of Vulkan is too limited unfortunately.
Godot reads the indices as raw byte buffers from the Vulkan API using the method below, but the returned values are sometimes bigger than the actual vertex count. They later get composed into 16/32 bit indices but they are wrong from the start i think.
Godot version
4.0.1-stable
System information
Android 12, Mobile Renderer
Issue description
When retrieving Mesh data from a MeshInstance3D like so...
...the index_array contains vertex indices that are not within the vertex_array.
This issue does not occur in the Linux editor, but does occur on my Android build: Android 12 arm64v8 sdk version 32.0.0 ndk version 23.2.8568313
Steps to reproduce
Download the minimal reproduction project, which contains an example ArrayMesh and GDScript script which has the code shown above. Build to Android using the 4.0.1 build template and test.
Minimal reproduction project
Array_Mesh_Test.zip