Hello. Cheap tft displays like st7735 or st7789 have annoying tearing effect.
Most modules one can get do not expose vsync pin ether and that would consume another pin.
But as speed of frame updates and front/back porches can be adjusted, one can use another trick - speeding up refresh on each even frame, while slowing it down on each odd frame.
Here is a demo doing just that on esp32, together with double buffering:
Enjoy.