### 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)

binary_data.specialization_constants_count = spirv_data.specialization_constants.size();
		binary_data.is_compute = spirv_data.is_compute;
		binary_data.compute_local_size[0] = spirv_data.compute_local_size[0];
		binary_data.compute_local_size[1] = spirv_data.compute_local_size[1];
		binary_data.compute_local_size[2] = spirv_data.compute_local_size[2];
		binary_data.set_count = spirv_data.uniforms.size();
		binary_data.push_constant_size = spirv_data.push_constant_size;
		for (uint32_t i = 0; i < SHADER_STAGE_MAX; i++) {
			if (spirv_data.push_constant_stages_mask.has_flag((ShaderStage)(1 << i))) {
				binary_data.push_constant_vk_stages_mask |= shader_stage_masks[i];
			}
		}
		for (const Vector<SpirvReflectionData::Uniform> &spirv_set : spirv_data.uniforms) {
			Vector<RenderingDeviceVulkanShaderBinaryDataBinding> set_bindings;
			for (const SpirvReflectionData::Uniform &spirv_uniform : spirv_set) {
				RenderingDeviceVulkanShaderBinaryDataBinding binding{};
				binding.type = (uint32_t)spirv_uniform.type;
				binding.binding = spirv_uniform.binding;
				binding.stages = (uint32_t)spirv_uniform.stages_mask;
				binding.length = spirv_uniform.length;
				binding.writable = (uint32_t)spirv_uniform.writable;
				set_bindings.push_back(binding);
			}
			uniform_info.push_back(set_bindings);
		}
		for (const SpirvReflectionData::SpecializationConstant &spirv_sc : spirv_data.specialization_constants) {
			RenderingDeviceVulkanShaderBinarySpecializationConstant spec_constant{};
			spec_constant.type = (uint32_t)spirv_sc.type;
			spec_constant.constant_id = spirv_sc.constant_id;
			spec_constant.int_value = spirv_sc.int_value;