### Godot version

v4.2.beta4.official [93cdacbb0], 4.1.2.stable

### System information

Godot v4.2.beta4 - Android 10 - Vulkan (Mobile)

### Issue description

This happens only when trying to run it on Android 10 using the mobile renderer.

It fails on Samsung Galaxy S9+ (Android 10).
It works on Nokia 5.4 (Android 12).

The surface tool doesn't seem generate mesh at least not visible one. It also fails to generate collision mesh as a character will fall through it.

I included an example code. 

### Steps to reproduce

Export the attached reproduction project (remember to set the renderer to mobile) and install it on an Android phone. The phone I tested is Samsung Galaxy S9+ with Android 10.


### Minimal reproduction project

[SurfaceToolBug.zip](https://github.com/godotengine/godot/files/13237789/SurfaceToolBug.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;