### Godot version

4.2 dev fe5b1c8d49313d63fbe91cb7cdf463e10fb86afa

### System information

Android

### Issue description

In Vulkan mobile we render using subpasses whenever possible to keep data within tile memory for as long as possible.
In its most optimal configuration there are 4 subpasses:
1 - opaque rendering
2 - background rendering
3 - transparent rendering
4 - tonemapping and output

Subpasses 3 and 4 will be replaced by normal passes if effects are used that require this.

Subpasses can only be used when the output buffers are of equal size (i.e. same resolution, same number of bits per pixel). When MSAA is enabled, subpasses 1 through 3 are using the MSAA buffers while subpass 3 resolves the MSAA buffer and subpass 4 uses a normal buffer. This causes an error situation. While most GPU drivers will auto correct this, it is wrong.

Note for instance renderdoc output on a MALI GPU:
![image](https://github.com/godotengine/godot/assets/1945449/53606682-a9d6-48ab-9137-cb1b339c0f18)

You can see how after the second call to vkCmdNextSubpass, which brings us to subpass 3, which in this test doesn't have any further draw commands and just resolves, a new render pass is introduced before tonemapping is performed. 

We need to make sure that when MSAA is enabled, tonemapping is executed as a normal pass.

### Steps to reproduce

1) Create a simple project that renders something in 3D
2) Make sure MSAA is enabled but things like glow are disabled
3) Run on android
4) Verify command execution with renderdoc

### Minimal reproduction project

[MSAAtest.zip](https://github.com/godotengine/godot/files/12705873/MSAAtest.zip)

return 256;
}
RenderForwardMobile *RenderForwardMobile::singleton = nullptr;
void RenderForwardMobile::_update_shader_quality_settings() {
	Vector<RD::PipelineSpecializationConstant> spec_constants;
	RD::PipelineSpecializationConstant sc;
	sc.type = RD::PIPELINE_SPECIALIZATION_CONSTANT_TYPE_INT;
	sc.constant_id = SPEC_CONSTANT_SOFT_SHADOW_SAMPLES;
	sc.int_value = soft_shadow_samples_get();
	spec_constants.push_back(sc);
	sc.constant_id = SPEC_CONSTANT_PENUMBRA_SHADOW_SAMPLES;
	sc.int_value = penumbra_shadow_samples_get();
	spec_constants.push_back(sc);
	sc.constant_id = SPEC_CONSTANT_DIRECTIONAL_SOFT_SHADOW_SAMPLES;
	sc.int_value = directional_soft_shadow_samples_get();
	spec_constants.push_back(sc);
	sc.constant_id = SPEC_CONSTANT_DIRECTIONAL_PENUMBRA_SHADOW_SAMPLES;
	sc.int_value = directional_penumbra_shadow_samples_get();
	spec_constants.push_back(sc);
	sc.type = RD::PIPELINE_SPECIALIZATION_CONSTANT_TYPE_BOOL;
	sc.constant_id = SPEC_CONSTANT_DECAL_USE_MIPMAPS;
	sc.bool_value = decals_get_filter() == RS::DECAL_FILTER_NEAREST_MIPMAPS ||
			decals_get_filter() == RS::DECAL_FILTER_LINEAR_MIPMAPS ||
			decals_get_filter() == RS::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC ||
			decals_get_filter() == RS::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC;
	spec_constants.push_back(sc);
	sc.constant_id = SPEC_CONSTANT_PROJECTOR_USE_MIPMAPS;
	sc.bool_value = light_projectors_get_filter() == RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS ||
			light_projectors_get_filter() == RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS ||