The reason I got a FK743M2 development board is that it is simple enough to do my own hobbyist boards based on, but still has 8 MiB of SDRAM available for a much larger framebuffer. SDRAM is obviously not as fast as SRAM would be, but STM32H743II (Cortex-M7) only runs at 480 MHz anyway, and it does have internal caches so cache-sensitive approaches (which I'm very familiar with, having worked on HPC on Intel/AMD) ought to yield "sufficient" performance. (FK743M2 boards are labeled as such on the bottom side; the ones with STM32H7 Core stenciled on the front side are a different board. I paid only 16.60€ for mine, including shipping to Finland, but the seller increased the price to
30€.)
In comparison, LuckFox Lyra and RK3506 system-on-modules exposing all pins with 128M to 512M DDR3L memory (and optionally 8 GB of eMMC storage) are available in various configurations at AliExpress for 15€ - 30€ including shipping. RK3506 is a triple-core ARM Cortex-A7 (ARMv7-A, VFPv4-D32) running at up to 1.5 GHz, with an additional Cortex-M0 (ARMv6-M Thumb2) core, a full separate 2D graphics engine/blitter with support up to 1280×1280 (so no FullHD!), hardware RGB and two-lane MIPI DSI video output (although only MIPI DSI is currently well supported in Linux and in open documentation, and is limited to 1280×1280 or less), and FlexBus for parallel I/O (although pinout is very restricted and overlaps with video stuff). The FPC on the board is the same 22-pin as the DSI connector on various Raspberry Pi's, but only the 15 pins (two DSI lanes) are connected, similar to when using Raspberry Pi 5 with a 15-to-22 pin FFC. Again, the main downside with RK3506 is that only the first half of the Technical Reference Manual is easily available. Also, for Linux use, support is being upstreamed, but one may have to use the LuckFox images or RockChip kernel forks for full functionality. I intend to do bare metal myself.
My own main use case is to add displays to Linux-based appliances via USB 2.0 High Speed.
On STM32H743IIT6, one does need an additional ULPI transceiver like Microchip USB3320, but it costs less than 2€ in singles. Similarly, one can add LVDS support by connecting the RGB outputs to a SN75LVDS84ADDGR, which I can get from Mouser/LCSC etc. for under 5€ in singles, and is very straightforward to use. For MIPI DSI, STM32H743IIT6 is not suitable. The pinout I'll use in my own design for STM32H743IIT6 differs from the FK743M2 a bit (alternate pins used in several cases), and is
where the DCMI (parallel 8-bit video
camera interface) and 24-bit RGB interfaces are 5V tolerant, external Flash and 16-bit SDRAM are exposed, both the full-speed USB 2.0 OTG and the ULPI pins for the second USB 2.0 high-speed pins are exposed, leaving 21 5V tolerant GPIO pins, one 3.3V tolerant GPIO pins, and the two ADC pins. The SDRAM signal routing is not optimal, but I do believe a working PCB is doable even by a hobbyist like me. Both the schematic and PCB symbols can be found at EasyEDA. Obviously, I'm heavily relying on the FK743M2 schematic and STM32H datasheets and references, though.
The solution is based on STM32H730 and its built-in digital video output peripheral. That peripheral supports a 256 color palette mode with one byte per pixel, so the whole video memory fits inside H730 RAM.
The LTDC (RGB display output) on STM32H743 supports that also (see
reference manual chapter 32), plus 32-, 24-, and 16-bit color in a few different configurations — and two separate layers, if you have the memory, with per-pixel opacity. That is, first framebuffer is drawn "below" the second one, both having their own in-memory formats, with the second layer supporting alpha (opacity) attribute, 8-bit in 32-bit ARGB / 1-bit in 16-bit RGB / 4-bit in 12-bit RGB modes. The 256 color palette mode does not support opacity, though.