### Godot version

v4.1.dev.custom_build [a67d37f7c]

### System information

Windows 10, Vulkan

### Issue description

When changing between scenes that have volumetric fog enabled in the world environment, for example with `change_scene_to_file`, after changing there will be a continuous stream of errors that doesn't seem to stop.
Leaving a copy of one of the errors here so it's findable when searching the issue: 
"RenderingDeviceVulkan::compute_list_bind_uniform_set: Condition "!uniform_set" is true.
  <C++ Source>   drivers\vulkan\rendering_device_vulkan.cpp:7816 @ RenderingDeviceVulkan::compute_list_bind_uniform_set()"

The MRP is the volumetric fog demo, with its main scene duplicated, and the left/right arrow keys being used to change between scenes.

Disabling vol fog in either scene makes the errors go away.

![image](https://github.com/godotengine/godot/assets/115422160/f2c8ef63-f3f3-49ed-8a44-bbee88c9c352)



### Steps to reproduce

Use left/right arrow keys to change scene and back, then error spam should begin.

### Minimal reproduction project

[new hot volumetric_fog bug.zip](https://github.com/godotengine/godot/files/11575612/new.hot.volumetric_fog.bug.zip)

points[5] = _point_get_position_in_froxel_volume(fog_volume_instance->transform.xform(Vector3(-extents.x, extents.y, -extents.z)), fog_end, fog_near_size, fog_far_size, volumetric_fog_detail_spread, fog_size, p_cam_transform);
				points[6] = _point_get_position_in_froxel_volume(fog_volume_instance->transform.xform(Vector3(extents.x, -extents.y, -extents.z)), fog_end, fog_near_size, fog_far_size, volumetric_fog_detail_spread, fog_size, p_cam_transform);
				points[7] = _point_get_position_in_froxel_volume(fog_volume_instance->transform.xform(Vector3(-extents.x, -extents.y, -extents.z)), fog_end, fog_near_size, fog_far_size, volumetric_fog_detail_spread, fog_size, p_cam_transform);
				min = Vector3i(int32_t(fog->width) - 1, int32_t(fog->height) - 1, int32_t(fog->depth) - 1);
				max = Vector3i(1, 1, 1);
				for (int j = 0; j < 8; j++) {
					min = Vector3i(MIN(min.x, points[j].x), MIN(min.y, points[j].y), MIN(min.z, points[j].z));
					max = Vector3i(MAX(max.x, points[j].x), MAX(max.y, points[j].y), MAX(max.z, points[j].z));
				}
				kernel_size = max - min;
			} else {
				
				extents = Vector3(fog->width, fog->height, fog->depth);
				min = Vector3i(0, 0, 0);
				kernel_size = Vector3i(int32_t(fog->width), int32_t(fog->height), int32_t(fog->depth));
			}
			if (kernel_size.x == 0 || kernel_size.y == 0 || kernel_size.z == 0) {
				continue;
			}
			VolumetricFogShader::FogPushConstant push_constant;
			push_constant.position[0] = position.x;
			push_constant.position[1] = position.y;
			push_constant.position[2] = position.z;
			push_constant.size[0] = extents.x * 2;
			push_constant.size[1] = extents.y * 2;
			push_constant.size[2] = extents.z * 2;
			push_constant.corner[0] = min.x;
			push_constant.corner[1] = min.y;
			push_constant.corner[2] = min.z;
			push_constant.shape = uint32_t(RendererRD::Fog::get_singleton()->fog_volume_get_shape(fog_volume));