### Godot version

4.0beta16

### System information

Windows 10, Vulkan API 1.3.205, NVIDIA - NVIDIA GeForce RTX 3080, Valve Index, Steam VR

### Issue description

When XR is enabled FogVolumes (and probably all volumetric fog but it is not obvious for large homogenous volumes) are rendered to the wrong location in both eyes once XR is enabled on the viewport. Here's a unit-cube dense fog volume stacked between two mesh cubes.

Here it is correctly positioned in the editor:
<img width="687" alt="Screenshot 2023-01-29 122055" src="https://user-images.githubusercontent.com/617962/215351015-db22759f-2687-4791-bf1d-86266a630415.png">
But once XR is enabled on the viewport, the volume is shifted to the left in the left eye and to the right in the right eye:
![Screenshot_Sun_Jan_29_12-19-34_2023_VR](https://user-images.githubusercontent.com/617962/215351058-907ed3c9-ea98-412c-b792-4edfacff9f57.png)

It is also shifted to the left in the main game window (presumably because the game window is rendering the left eye).

The shift is in screenspace as you can see if I rotate my head:
![Screenshot_Sun_Jan_29_12-19-41_2023_VR](https://user-images.githubusercontent.com/617962/215351286-d9dd656a-bc90-4c00-8834-674d294e8a70.png)


### Steps to reproduce

Create a small fog volume and enable XR on the viewport.
I have also observed this on large fog volumes if using a fog shader which creates small clumps of fog, the clumps are shifted wrongly which breaks stereopsis .

### Minimal reproduction project

[FogVolume.zip](https://github.com/godotengine/godot/files/10530642/FogVolume.zip)

RendererRD::MeshStorage *mesh_storage = RendererRD::MeshStorage::get_singleton();
	RD::DrawListID draw_list = p_draw_list;
	RD::FramebufferFormatID framebuffer_format = p_framebuffer_Format;
	
	RD::get_singleton()->draw_list_bind_uniform_set(draw_list, render_base_uniform_set, SCENE_UNIFORM_SET);
	RD::get_singleton()->draw_list_bind_uniform_set(draw_list, p_params->render_pass_uniform_set, RENDER_PASS_UNIFORM_SET);
	RD::get_singleton()->draw_list_bind_uniform_set(draw_list, scene_shader.default_vec4_xform_uniform_set, TRANSFORMS_UNIFORM_SET);
	RID prev_material_uniform_set;
	RID prev_vertex_array_rd;
	RID prev_index_array_rd;
	RID prev_pipeline_rd;
	RID prev_xforms_uniform_set;
	bool should_request_redraw = false;
	bool shadow_pass = (p_params->pass_mode == PASS_MODE_SHADOW) || (p_params->pass_mode == PASS_MODE_SHADOW_DP);
	for (uint32_t i = p_from_element; i < p_to_element; i++) {
		const GeometryInstanceSurfaceDataCache *surf = p_params->elements[i];
		const RenderElementInfo &element_info = p_params->element_info[i];
		const GeometryInstanceForwardMobile *inst = surf->owner;
		if (inst->instance_count == 0) {
			continue;
		}
		uint32_t base_spec_constants = p_params->spec_constant_base_flags;
		
		GeometryInstanceForwardMobile::PushConstant push_constant;
		if (inst->store_transform_cache) {
			RendererRD::MaterialStorage::store_transform(inst->transform, push_constant.transform);
#ifdef REAL_T_IS_DOUBLE
			
			
			RendererRD::MaterialStorage::split_double(inst->transform.origin.x, &push_constant.transform[12], &push_constant.transform[3]);