### Godot version

v4.1.stable.official.970459615

### System information

Windows 10 OpenGL API 3.3.0

### Issue description

Calling force_draw from a thread crashes compatibility renderer. Not sure if bug or this is not something that we should be doing, but it seems to not cause any issue with mobile/desktop forward+ renderer. Reason why i do this because it lets the engine run at a higher frame rate than the renderer.

### Steps to reproduce

🧵

### Minimal reproduction project

[forcedraw.zip](https://github.com/godotengine/godot/files/11988748/forcedraw.zip)

if (p_info == RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME) {
		return RSG::viewport->get_total_objects_drawn();
	} else if (p_info == RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME) {
		return RSG::viewport->get_total_primitives_drawn();
	} else if (p_info == RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME) {
		return RSG::viewport->get_total_draw_calls_used();
	}
	return RSG::utilities->get_rendering_info(p_info);
}
RenderingDevice::DeviceType RenderingServerDefault::get_video_adapter_type() const {
	return RSG::utilities->get_video_adapter_type();
}
void RenderingServerDefault::set_frame_profiling_enabled(bool p_enable) {
	RSG::utilities->capturing_timestamps = p_enable;
}
uint64_t RenderingServerDefault::get_frame_profile_frame() {
	return frame_profile_frame;
}
Vector<RenderingServer::FrameProfileArea> RenderingServerDefault::get_frame_profile() {
	return frame_profile;
}
void RenderingServerDefault::set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter) {
	redraw_request();
	RSG::rasterizer->set_boot_image(p_image, p_color, p_scale, p_use_filter);
}
Color RenderingServerDefault::get_default_clear_color() {