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

#include "rendering_device_vulkan.h"
#include "core/config/project_settings.h"
#include "core/io/compression.h"
#include "core/io/dir_access.h"
#include "core/io/file_access.h"
#include "core/io/marshalls.h"
#include "core/os/os.h"
#include "core/templates/hashfuncs.h"
#include "drivers/vulkan/vulkan_context.h"
#include "thirdparty/misc/smolv.h"
static const uint32_t SMALL_ALLOCATION_MAX_SIZE = 4096;
RenderingDeviceVulkan::Buffer *RenderingDeviceVulkan::_get_buffer_from_owner(RID p_buffer, VkPipelineStageFlags &r_stage_mask, VkAccessFlags &r_access_mask, BitField<BarrierMask> p_post_barrier) {
	Buffer *buffer = nullptr;
	if (vertex_buffer_owner.owns(p_buffer)) {
		buffer = vertex_buffer_owner.get_or_null(p_buffer);
		r_stage_mask |= VK_PIPELINE_STAGE_VERTEX_INPUT_BIT;
		r_access_mask |= VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT;
		if (buffer->usage & VK_BUFFER_USAGE_STORAGE_BUFFER_BIT) {
			if (p_post_barrier.has_flag(BARRIER_MASK_VERTEX)) {
				r_access_mask |= VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT;
				r_stage_mask |= VK_PIPELINE_STAGE_VERTEX_SHADER_BIT;
			}
			if (p_post_barrier.has_flag(BARRIER_MASK_FRAGMENT)) {