### 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
static int audio_driver_idx = -1;
static bool single_window = false;
static bool editor = false;
static bool project_manager = false;
static bool cmdline_tool = false;
static String locale;
static bool show_help = false;
static uint64_t quit_after = 0;
static OS::ProcessID editor_pid = 0;
#ifdef TOOLS_ENABLED
static bool found_project = false;
static bool auto_build_solutions = false;
static String debug_server_uri;
#ifndef DISABLE_DEPRECATED
static int converter_max_kb_file = 4 * 1024; 
static int converter_max_line_length = 100000;
#endif 
HashMap<Main::CLIScope, Vector<String>> forwardable_cli_arguments;
#endif
static bool single_threaded_scene = false;
static DisplayServer::WindowMode window_mode = DisplayServer::WINDOW_MODE_WINDOWED;
static DisplayServer::ScreenOrientation window_orientation = DisplayServer::SCREEN_LANDSCAPE;
static DisplayServer::VSyncMode window_vsync_mode = DisplayServer::VSYNC_ENABLED;
static uint32_t window_flags = 0;
static Size2i window_size = Size2i(1152, 648);
static int init_screen = DisplayServer::SCREEN_PRIMARY;
static bool init_fullscreen = false;
static bool init_maximized = false;
static bool init_windowed = false;
static bool init_always_on_top = false;