### Godot version

v4.0.2.stable.custom_build [285ca4637]

### System information

Windows 10, Forward+

### Issue description

Spent a few days working on macOS and in that time, re-did my skybox to use canvas layers, all was well. Returned to my windows machine to find ghost artifacts everywhere. 

Isolated it to the SSR setting on the global world environment. Seems some combination of Canvas BG and SSR is the culprit.

Tested on a double precision custom build as well as 4.0 - 4.02 official builds. 

![anim](https://user-images.githubusercontent.com/175568/231931089-01f858cd-1e95-427f-8b6c-a253ea4fa9f9.gif)


### Steps to reproduce

Create a background CanvasLayer
Set world environment background to Canvas, ensure layer it set to include previous step
Add something to the scene (MeshInstance3D)
Add Camera
Move the camera

### Minimal reproduction project

[canvas-ghost.zip](https://github.com/godotengine/godot/files/11228426/canvas-ghost.zip)

p_render_data->scene_data->calculate_motion_vectors = true;
	} else if (!is_reflection_probe && rb->get_use_taa()) {
		p_render_data->scene_data->calculate_motion_vectors = true;
	} else {
		p_render_data->scene_data->calculate_motion_vectors = false;
	}
	
	p_render_data->scene_data->directional_light_count = 0;
	p_render_data->scene_data->opaque_prepass_threshold = 0.99f;
	Size2i screen_size;
	RID color_framebuffer;
	RID color_only_framebuffer;
	RID depth_framebuffer;
	PassMode depth_pass_mode = PASS_MODE_DEPTH;
	uint32_t color_pass_flags = 0;
	Vector<Color> depth_pass_clear;
	bool using_separate_specular = false;
	bool using_ssr = false;
	bool using_sdfgi = false;
	bool using_voxelgi = false;
	bool reverse_cull = p_render_data->scene_data->cam_transform.basis.determinant() < 0;
	bool using_ssil = !is_reflection_probe && p_render_data->environment.is_valid() && environment_get_ssil_enabled(p_render_data->environment);
	if (is_reflection_probe) {
		uint32_t resolution = light_storage->reflection_probe_instance_get_resolution(p_render_data->reflection_probe);
		screen_size.x = resolution;
		screen_size.y = resolution;
		color_framebuffer = light_storage->reflection_probe_instance_get_framebuffer(p_render_data->reflection_probe, p_render_data->reflection_probe_pass);
		color_only_framebuffer = color_framebuffer;
		depth_framebuffer = light_storage->reflection_probe_instance_get_depth_framebuffer(p_render_data->reflection_probe, p_render_data->reflection_probe_pass);
		if (light_storage->reflection_probe_is_interior(light_storage->reflection_probe_instance_get_probe(p_render_data->reflection_probe))) {