### Godot version

4.1 beta 3, 4.1 beta 1

### System information

Windows 10 - 4.1 beta 3 - Android 12

### Issue description

Crash when using SoftBody on android mobile.

### Steps to reproduce

- Simple scene setup using a plane softbody, camera.
- Export to android mobile.
- Immediate crash when open the app.

### Minimal reproduction project

[SoftbodyMobileTest.zip](https://github.com/godotengine/godot/files/11871734/SoftbodyMobileTest.zip)

bool bool_value;
	};
	uint32_t stage_flags;
};
struct RenderingDeviceVulkanShaderBinaryData {
	uint64_t vertex_input_mask;
	uint32_t fragment_output_mask;
	uint32_t specialization_constants_count;
	uint32_t is_compute;
	uint32_t compute_local_size[3];
	uint32_t set_count;
	uint32_t push_constant_size;
	uint32_t push_constant_vk_stages_mask;
	uint32_t stage_count;
	uint32_t shader_name_len;
};
Vector<uint8_t> RenderingDeviceVulkan::shader_compile_binary_from_spirv(const Vector<ShaderStageSPIRVData> &p_spirv, const String &p_shader_name) {
	SpirvReflectionData spirv_data;
	if (_reflect_spirv(p_spirv, spirv_data) != OK) {
		return Vector<uint8_t>();
	}
	ERR_FAIL_COND_V_MSG((uint32_t)spirv_data.uniforms.size() > limits.maxBoundDescriptorSets, Vector<uint8_t>(),
			"Number of uniform sets is larger than what is supported by the hardware (" + itos(limits.maxBoundDescriptorSets) + ").");
	
	RenderingDeviceVulkanShaderBinaryData binary_data{};
	Vector<Vector<RenderingDeviceVulkanShaderBinaryDataBinding>> uniform_info; 
	Vector<RenderingDeviceVulkanShaderBinarySpecializationConstant> specialization_constants;
	{
		binary_data.vertex_input_mask = spirv_data.vertex_input_mask;
		binary_data.fragment_output_mask = spirv_data.fragment_output_mask;