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

pipelines_cache.file_path += "." + context->get_device_name().validate_filename().replace(" ", "_").to_lower();
	if (Engine::get_singleton()->is_editor_hint()) {
		pipelines_cache.file_path += ".editor";
	}
	pipelines_cache.file_path += ".cache";
	
	VkPhysicalDeviceProperties props;
	vkGetPhysicalDeviceProperties(context->get_physical_device(), &props);
	pipelines_cache.header.magic = 868 + VK_PIPELINE_CACHE_HEADER_VERSION_ONE;
	pipelines_cache.header.device_id = props.deviceID;
	pipelines_cache.header.vendor_id = props.vendorID;
	pipelines_cache.header.driver_version = props.driverVersion;
	memcpy(pipelines_cache.header.uuid, props.pipelineCacheUUID, VK_UUID_SIZE);
	pipelines_cache.header.driver_abi = sizeof(void *);
	_load_pipeline_cache();
	print_verbose(vformat("Startup PSO cache (%.1f MiB)", pipelines_cache.buffer.size() / (1024.0f * 1024.0f)));
	VkPipelineCacheCreateInfo cache_info = {};
	cache_info.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
	cache_info.pNext = nullptr;
	if (context->get_pipeline_cache_control_support()) {
		cache_info.flags = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT;
	}
	cache_info.initialDataSize = pipelines_cache.buffer.size();
	cache_info.pInitialData = pipelines_cache.buffer.ptr();
	VkResult err = vkCreatePipelineCache(device, &cache_info, nullptr, &pipelines_cache.cache_object);
	if (err != VK_SUCCESS) {
		WARN_PRINT("vkCreatePipelinecache failed with error " + itos(err) + ".");
	}
}
void RenderingDeviceVulkan::_load_pipeline_cache() {