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

if (fog_material.is_valid()) {
				material = static_cast<FogMaterialData *>(material_storage->material_get_data(fog_material, RendererRD::MaterialStorage::SHADER_TYPE_FOG));
				if (!material || !material->shader_data->valid) {
					material = nullptr;
				}
			}
			if (!material) {
				fog_material = volumetric_fog.default_material;
				material = static_cast<FogMaterialData *>(material_storage->material_get_data(fog_material, RendererRD::MaterialStorage::SHADER_TYPE_FOG));
			}
			ERR_FAIL_COND(!material);
			FogShaderData *shader_data = material->shader_data;
			ERR_FAIL_COND(!shader_data);
			any_uses_time |= shader_data->uses_time;
			Vector3i min;
			Vector3i max;
			Vector3i kernel_size;
			Vector3 position = fog_volume_instance->transform.get_origin();
			RS::FogVolumeShape volume_type = RendererRD::Fog::get_singleton()->fog_volume_get_shape(fog_volume);
			Vector3 extents = RendererRD::Fog::get_singleton()->fog_volume_get_size(fog_volume) / 2;
			if (volume_type != RS::FOG_VOLUME_SHAPE_WORLD) {
				
				Vector3i points[8];
				Vector3 fog_size = Vector3(fog->width, fog->height, fog->depth);
				float volumetric_fog_detail_spread = RendererSceneRenderRD::get_singleton()->environment_get_volumetric_fog_detail_spread(p_settings.env);
				points[0] = _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[1] = _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[2] = _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[3] = _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[4] = _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);