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

image_memory_barrier.image = E->image;
			image_memory_barrier.subresourceRange.aspectMask = E->read_aspect_mask;
			image_memory_barrier.subresourceRange.baseMipLevel = E->base_mipmap;
			image_memory_barrier.subresourceRange.levelCount = E->mipmaps;
			image_memory_barrier.subresourceRange.baseArrayLayer = E->base_layer;
			image_memory_barrier.subresourceRange.layerCount = E->layers;
			E->layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
		}
		if (E->used_in_frame != frames_drawn) {
			E->used_in_transfer = false;
			E->used_in_raster = false;
			E->used_in_compute = false;
			E->used_in_frame = frames_drawn;
		}
	}
	if (p_barrier_flags) {
		VkMemoryBarrier mem_barrier;
		mem_barrier.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER;
		mem_barrier.pNext = nullptr;
		mem_barrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT;
		mem_barrier.dstAccessMask = p_access_flags;
		vkCmdPipelineBarrier(compute_list->command_buffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, p_barrier_flags, 0, 1, &mem_barrier, 0, nullptr, image_barrier_count, image_barriers);
	} else if (image_barrier_count) {
		vkCmdPipelineBarrier(compute_list->command_buffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, 0, 0, nullptr, 0, nullptr, image_barrier_count, image_barriers);
	}
#ifdef FORCE_FULL_BARRIER
	_full_barrier(true);
#endif
}
void RenderingDeviceVulkan::compute_list_end(BitField<BarrierMask> p_post_barrier) {