### Godot version

v4.1.beta3.official [ada712e06]

### System information

Godot v4.1.beta3 - Windows 10.0.22621 - Vulkan (Mobile) - dedicated NVIDIA GeForce RTX 2080 with Max-Q Design (NVIDIA; 31.0.15.3161) - Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz (12 Threads)

### Issue description

I am using the main renderingdevice to do offscreen drawing to a texture. If I use the same code on a local rendering device created using `RenderingServer.create_local_rendering_device()`, it works fine, but the moment I do anything on the main rendering device (from RenderingServer.get_rendering_device() ), my code will run for one or two frames, then the game quits silently.

I've narrowed it down with a passthrough shader and no actual draw calls - just any call to `draw_list_begin` and `draw_list_end`, and it dies.

If you use single threaded renderingdevice, it works.

I feel like this is a good test of the stability of the vulkan multithreading ( see https://github.com/godotengine/godot-proposals/discussions/7163 ) - if we want to allow multithreaded use of a single renderingdevice, then this should work.

### Steps to reproduce

Hit play on the project below. It will hopefully print out before, inside, after, then silently quit. Does on mine at least, on dev builds and on 4.1b3. If you set rendering to single-threaded (safe or unsafe), then it works happily.



### Minimal reproduction project

[crashtest.zip](https://github.com/godotengine/godot/files/11892220/crashtest.zip)

return "Vulkan-SV" + itos(SHADER_BINARY_VERSION);
}
struct RenderingDeviceVulkanShaderBinaryDataBinding {
	uint32_t type;
	uint32_t binding;
	uint32_t stages;
	uint32_t length; 
	uint32_t writable;
};
struct RenderingDeviceVulkanShaderBinarySpecializationConstant {
	uint32_t type;
	uint32_t constant_id;
	union {
		uint32_t int_value;
		float float_value;
		bool bool_value;
	};
	uint32_t stage_flags;
};
struct RenderingDeviceVulkanShaderBinaryData {
	uint32_t vertex_input_mask;
	uint32_t fragment_output_mask;
	uint32_t specialization_constants_count;
	uint32_t is_compute;
	uint32_t compute_local_size[3];
	uint32_t set_count;
	uint32_t push_constant_size;
	uint32_t push_constant_vk_stages_mask;
	uint32_t stage_count;
	uint32_t shader_name_len;