### Godot version

4.1.1

### System information

Windows 10, Nvidia GTX 1660Ti, Vulkan

### Issue description

Having multiple VoxelGI nodes and trying to bake them consistently causes never ending Vulkan error spam as seen in the image below. This completely stops the editor as well as the project itself and it's impossible to work on the project or play it.

For me it's just 5 VoxelGI nodes but it could be higher/lower for you. Considering the bake says it's about 8MB and my GPU has 6GB it shouldn't be not enough vram issue? Sometimes I get to bake 4 of them and it breaks while baking the fifth one. Sometimes jsut having 5 GIs in and baking only one is enough to break it. One way or another it happens everytime, no exceptions.

I've tried this on a number of older drivers as well as brand new ones (yesterday updated to the latest stable) but the issue is the same.

![obrazek](https://github.com/godotengine/godot/assets/33526847/e8fe0adb-8d1f-4e3c-8249-d2b0b5b67323)


### Steps to reproduce

In the test project it will either be already broken or not.
1. If it's not broken then click on each VoxelGI node and bake them until you get the error, if nothing happens duplicate them and carry on until you get the error.
2. If it's already broken and you want to reproduce then create a new project, 3d scene, add couple voxelGI nodes, move them aside so they don't overla and just bake them one after another until it breaks and your project is no longer usable.

### Minimal reproduction project

[VGITestGD.zip](https://github.com/godotengine/godot/files/12266313/VGITestGD.zip)

sdfgi_data.lightprobe_uv_offset[0] = float(oct_size + 2) * sdfgi_data.lightprobe_tex_pixel_size[0];
	sdfgi_data.lightprobe_uv_offset[1] = float(oct_size + 2) * sdfgi_data.lightprobe_tex_pixel_size[1];
	sdfgi_data.lightprobe_uv_offset[2] = float((oct_size + 2) * sdfgi_data.probe_axis_size) * sdfgi_data.lightprobe_tex_pixel_size[0];
	sdfgi_data.occlusion_renormalize[0] = 0.5;
	sdfgi_data.occlusion_renormalize[1] = 1.0;
	sdfgi_data.occlusion_renormalize[2] = 1.0 / float(sdfgi_data.max_cascades);
	int32_t probe_divisor = cascade_size / SDFGI::PROBE_DIVISOR;
	for (uint32_t i = 0; i < sdfgi_data.max_cascades; i++) {
		SDFGIData::ProbeCascadeData &c = sdfgi_data.cascades[i];
		Vector3 pos = Vector3((Vector3i(1, 1, 1) * -int32_t(cascade_size >> 1) + cascades[i].position)) * cascades[i].cell_size;
		Vector3 cam_origin = p_transform.origin;
		cam_origin.y *= y_mult;
		pos -= cam_origin; 
		c.position[0] = pos.x;
		c.position[1] = pos.y;
		c.position[2] = pos.z;
		c.to_probe = 1.0 / (float(cascade_size) * cascades[i].cell_size / float(probe_axis_count - 1));
		Vector3i probe_ofs = cascades[i].position / probe_divisor;
		c.probe_world_offset[0] = probe_ofs.x;
		c.probe_world_offset[1] = probe_ofs.y;
		c.probe_world_offset[2] = probe_ofs.z;
		c.to_cell = 1.0 / cascades[i].cell_size;
		c.exposure_normalization = 1.0;
		if (p_render_data->camera_attributes.is_valid()) {
			float exposure_normalization = RSG::camera_attributes->camera_attributes_get_exposure_normalization_factor(p_render_data->camera_attributes);
			c.exposure_normalization = exposure_normalization / cascades[i].baked_exposure_normalization;
		}
	}
	RD::get_singleton()->buffer_update(gi->sdfgi_ubo, 0, sizeof(SDFGIData), &sdfgi_data, RD::BARRIER_MASK_COMPUTE);