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

materials = mesh_storage->mesh_get_surface_count_and_materials(mesh, surface_count);
				if (materials) {
					for (uint32_t j = 0; j < surface_count; j++) {
						_geometry_instance_add_surface(ginstance, j, materials[j], mesh);
					}
				}
				ginstance->instance_count = mesh_storage->multimesh_get_instances_to_draw(ginstance->data->base);
			}
		} break;
#if 0
		case RS::INSTANCE_IMMEDIATE: {
			RasterizerStorageGLES3::Immediate *immediate = storage->immediate_owner.get_or_null(inst->base);
			ERR_CONTINUE(!immediate);
			_add_geometry(immediate, inst, nullptr, -1, p_depth_pass, p_shadow_pass);
		} break;
#endif
		case RS::INSTANCE_PARTICLES: {
			int draw_passes = particles_storage->particles_get_draw_passes(ginstance->data->base);
			for (int j = 0; j < draw_passes; j++) {
				RID mesh = particles_storage->particles_get_draw_pass_mesh(ginstance->data->base, j);
				if (!mesh.is_valid()) {
					continue;
				}
				const RID *materials = nullptr;
				uint32_t surface_count;
				materials = mesh_storage->mesh_get_surface_count_and_materials(mesh, surface_count);
				if (materials) {
					for (uint32_t k = 0; k < surface_count; k++) {
						_geometry_instance_add_surface(ginstance, k, materials[k], mesh);
					}