### Godot version

v4.2.beta5.official [4c96e9676]

### System information

Godot v4.2.beta5 - macOS 14.0.0 - GLES3 (Compatibility) - ANGLE (Apple, ANGLE Metal Renderer: Apple M1, Version 14.0 (Build 23A344)) - Apple M1 (8 Threads)

### Issue description

MacOS seems to have very bad TileMap performance on very small (8 tiles) tile sets. I opened same project on my lower end Windows 10 machine and it ran perfectly. Once running game seems to run fine, it's only in the editor this issue seems to occur and I've noticed it in all the Betas I worked on this project in which was Beta 2. If I use the Stable 4.1.3 that was just released the performance issue doesn't exist. This is only since Version 4.2. I know some changes came with the system and may have greatly affected performance on the MacOS systems, but not Windows. Linux is unknown. 

### Steps to reproduce

Create a project with a TileMap and then attach any size tile set. Select the TileMap tab at the bottom and watch the editor feel like it's gonna come to a halt. 

### Minimal reproduction project

N/A
if (disable_vsync) {
			window_vsync_mode = DisplayServer::VSyncMode::VSYNC_DISABLED;
		}
	}
	Engine::get_singleton()->set_physics_ticks_per_second(GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "physics/common/physics_ticks_per_second", PROPERTY_HINT_RANGE, "1,1000,1"), 60));
	Engine::get_singleton()->set_max_physics_steps_per_frame(GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "physics/common/max_physics_steps_per_frame", PROPERTY_HINT_RANGE, "1,100,1"), 8));
	Engine::get_singleton()->set_physics_jitter_fix(GLOBAL_DEF("physics/common/physics_jitter_fix", 0.5));
	Engine::get_singleton()->set_max_fps(GLOBAL_DEF(PropertyInfo(Variant::INT, "application/run/max_fps", PROPERTY_HINT_RANGE, "0,1000,1"), 0));
	Engine::get_singleton()->set_audio_output_latency(GLOBAL_DEF_RST(PropertyInfo(Variant::INT, "audio/driver/output_latency", PROPERTY_HINT_RANGE, "1,100,1"), 15));
	
	GLOBAL_DEF_RST("audio/driver/output_latency.web", 50);
	GLOBAL_DEF("debug/settings/stdout/print_fps", false);
	GLOBAL_DEF("debug/settings/stdout/print_gpu_profile", false);
	GLOBAL_DEF("debug/settings/stdout/verbose_stdout", false);
	if (!OS::get_singleton()->_verbose_stdout) { 
		OS::get_singleton()->_verbose_stdout = GLOBAL_GET("debug/settings/stdout/verbose_stdout");
	}
#if defined(MACOS_ENABLED) || defined(IOS_ENABLED)
	OS::get_singleton()->set_environment("MVK_CONFIG_LOG_LEVEL", OS::get_singleton()->_verbose_stdout ? "3" : "1"); 
#endif
	if (max_fps >= 0) {
		Engine::get_singleton()->set_max_fps(max_fps);
	}
	if (frame_delay == 0) {
		frame_delay = GLOBAL_DEF(PropertyInfo(Variant::INT, "application/run/frame_delay_msec", PROPERTY_HINT_RANGE, "0,100,1,or_greater"), 0);
		if (Engine::get_singleton()->is_editor_hint()) {
			frame_delay = 0;
		}
	}
	if (audio_output_latency >= 1) {