### Godot version

4.0 Beta 10

### System information

Linux Mint 21, Vulkan, Intel Iris Xe (Intel i5-1135G7)

### Issue description

Godot throws this pair of errors two times when "Z-Billboard" or "View Depth" flags are checked in GPUParticle3D properties, and when you switch to a scene that contains them:

```
E 0:03:11:0898   compute_list_bind_uniform_set: Condition "!uniform_set" is true.
  <C++ Source>   drivers/vulkan/rendering_device_vulkan.cpp:7807 @ compute_list_bind_uniform_set()
E 0:03:11:0898   compute_list_dispatch: Uniforms were never supplied for set (2) at the time of drawing, which are required by the pipeline
  <C++ Error>    Method/function failed.
  <C++ Source>   drivers/vulkan/rendering_device_vulkan.cpp:8006 @ compute_list_dispatch()
```

Also, whenever there's a big enough amount of such particle system nodes in the scene (in reproduction project it's between 128 and 256), Godot freezes, console showing errors:

```
ERROR: Only one draw/compute list can be active at the same time.
   at: compute_list_begin (drivers/vulkan/rendering_device_vulkan.cpp:7715)
ERROR: Only one draw/compute list can be active at the same time.
   at: compute_list_begin (drivers/vulkan/rendering_device_vulkan.cpp:7715)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_bind_compute_pipeline (drivers/vulkan/rendering_device_vulkan.cpp:7728)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_bind_compute_pipeline (drivers/vulkan/rendering_device_vulkan.cpp:7728)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_bind_uniform_set (drivers/vulkan/rendering_device_vulkan.cpp:7792)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_bind_uniform_set (drivers/vulkan/rendering_device_vulkan.cpp:7792)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_bind_uniform_set (drivers/vulkan/rendering_device_vulkan.cpp:7792)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_bind_uniform_set (drivers/vulkan/rendering_device_vulkan.cpp:7792)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_set_push_constant (drivers/vulkan/rendering_device_vulkan.cpp:7946)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_dispatch_threads (drivers/vulkan/rendering_device_vulkan.cpp:8026)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_bind_uniform_set (drivers/vulkan/rendering_device_vulkan.cpp:7792)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_bind_uniform_set (drivers/vulkan/rendering_device_vulkan.cpp:7792)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_set_push_constant (drivers/vulkan/rendering_device_vulkan.cpp:7946)
ERROR: Condition "p_list != ID_TYPE_COMPUTE_LIST" is true.
   at: compute_list_dispatch_threads (drivers/vulkan/rendering_device_vulkan.cpp:8026)
ERROR: Condition "!compute_list" is true.
   at: compute_list_end (drivers/vulkan/rendering_device_vulkan.cpp:8117)
```


Could be related to [#63315](https://github.com/godotengine/godot/issues/63315) as I'm also using Linux on an integrated Intel GPU.


### Steps to reproduce

1. Make any working particle system
2. Check "View Depth" flag in draw order OR "Z-Billboard" flag in transform align
3. Switch to scene with the particle system from any other scene to get "Uniforms were never supplied" error message
4. Duplicate particled systems (whether instances or local) until there is ~128-256 of them to get the freeze

### Minimal reproduction project

[testdebug.zip](https://github.com/godotengine/godot/files/10305085/testdebug.zip)

}
	if (p_format.usage_bits & TEXTURE_USAGE_VRS_ATTACHMENT_BIT) {
		image_create_info.usage |= VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR;
	}
	if (p_format.usage_bits & TEXTURE_USAGE_CAN_UPDATE_BIT) {
		image_create_info.usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT;
	}
	if (p_format.usage_bits & TEXTURE_USAGE_CAN_COPY_FROM_BIT) {
		image_create_info.usage |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
	}
	if (p_format.usage_bits & TEXTURE_USAGE_CAN_COPY_TO_BIT) {
		image_create_info.usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT;
	}
	image_create_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
	image_create_info.queueFamilyIndexCount = 0;
	image_create_info.pQueueFamilyIndices = nullptr;
	image_create_info.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
	uint32_t required_mipmaps = get_image_required_mipmaps(image_create_info.extent.width, image_create_info.extent.height, image_create_info.extent.depth);
	ERR_FAIL_COND_V_MSG(required_mipmaps < image_create_info.mipLevels, RID(),
			"Too many mipmaps requested for texture format and dimensions (" + itos(image_create_info.mipLevels) + "), maximum allowed: (" + itos(required_mipmaps) + ").");
	if (p_data.size()) {
		ERR_FAIL_COND_V_MSG(!(p_format.usage_bits & TEXTURE_USAGE_CAN_UPDATE_BIT), RID(),
				"Texture needs the TEXTURE_USAGE_CAN_UPDATE_BIT usage flag in order to be updated at initialization or later");
		int expected_images = image_create_info.arrayLayers;
		ERR_FAIL_COND_V_MSG(p_data.size() != expected_images, RID(),
				"Default supplied data for image format is of invalid length (" + itos(p_data.size()) + "), should be (" + itos(expected_images) + ").");
		for (uint32_t i = 0; i < image_create_info.arrayLayers; i++) {
			uint32_t required_size = get_image_format_required_size(p_format.format, image_create_info.extent.width, image_create_info.extent.height, image_create_info.extent.depth, image_create_info.mipLevels);
			ERR_FAIL_COND_V_MSG((uint32_t)p_data[i].size() != required_size, RID(),
					"Data for slice index " + itos(i) + " (mapped to layer " + itos(i) + ") differs in size (supplied: " + itos(p_data[i].size()) + ") than what is required by the format (" + itos(required_size) + ").");