### Godot version

4.1.1

### System information

windows 11, mobile renderer

### Issue description

On Mobile Vulkan renderer, the clear color is 50% lighter than expected

See steps to reproduce and Minimal reproduction project below.

The box and background have the same color on Forward+ and compatibility, but not on Mobile
happens also in runtime on exported project, not only in editor preview

Images of the same scene from
compatibility:
![compatibility](https://github.com/godotengine/godot/assets/11915378/a874fa86-c16f-43ef-aed7-c2066b770ac1)
Forward+:
![forward](https://github.com/godotengine/godot/assets/11915378/e416f9a6-dfd4-4c47-bbc2-b552ca58f83c)
Mobile:
![mobile](https://github.com/godotengine/godot/assets/11915378/e28e2db8-f7c3-47e2-8c0a-44ce937c9270)


### Steps to reproduce

 - add a CSGBox3D with "unshaded" shading, and albedo of #545454
 - add environment with Background = Custom color and color of #545454

Box and background are not the same color

### Minimal reproduction project

[bg_color.zip](https://github.com/godotengine/godot/files/12174822/bg_color.zip)

scene_data.z_near = 0.0;
	scene_data.z_far = p_cam_projection.get_z_far();
	scene_data.dual_paraboloid_side = 0;
	scene_data.opaque_prepass_threshold = 0.0;
	scene_data.time = time;
	scene_data.time_step = time_step;
	RenderDataRD render_data;
	render_data.scene_data = &scene_data;
	render_data.instances = &p_instances;
	_setup_environment(&render_data, true, Vector2(1, 1), true, Color(), false, false);
	PassMode pass_mode = PASS_MODE_SHADOW;
	_fill_render_list(RENDER_LIST_SECONDARY, &render_data, pass_mode);
	render_list[RENDER_LIST_SECONDARY].sort_by_key();
	_fill_element_info(RENDER_LIST_SECONDARY);
	RID rp_uniform_set = _setup_render_pass_uniform_set(RENDER_LIST_SECONDARY, nullptr, RID());
	RENDER_TIMESTAMP("Render Collider Heightfield");
	{
		
		RenderListParameters render_list_params(render_list[RENDER_LIST_SECONDARY].elements.ptr(), render_list[RENDER_LIST_SECONDARY].element_info.ptr(), render_list[RENDER_LIST_SECONDARY].elements.size(), false, pass_mode, rp_uniform_set, 0);
		_render_list_with_threads(&render_list_params, p_fb, RD::INITIAL_ACTION_CLEAR, RD::FINAL_ACTION_READ, RD::INITIAL_ACTION_CLEAR, RD::FINAL_ACTION_READ);
	}
	RD::get_singleton()->draw_command_end_label();
}
void RenderForwardMobile::base_uniforms_changed() {
	if (!render_base_uniform_set.is_null() && RD::get_singleton()->uniform_set_is_valid(render_base_uniform_set)) {
		RD::get_singleton()->free(render_base_uniform_set);
	}
	render_base_uniform_set = RID();
}
void RenderForwardMobile::_update_render_base_uniform_set() {