GPU memory split behavior change on 64-bit Raspberry Pi OS
0 reputation · 02 Jan 2026, 08:58 UTC
Documented behavior shift
The Raspberry Pi 4's gpu_mem parameter in /boot/config.txt has historically controlled the GPU/CPU memory split on 32-bit Raspberry Pi OS, with values such as 256 MB being honored directly. Starting with the 64-bit Raspberry Pi OS (Bullseye and later) and bootloader firmware 2022.02, a new gpu_mem_256 flag was introduced that appears to override or cap the gpu_mem setting on 64-bit kernels.
Unresolved boundary
Official documentation states the default GPU allocation is 128 MB on 64-bit OS but does not explicitly confirm whether gpu_mem values above 128 MB are respected, ignored, or capped. Empirical observations suggest that setting gpu_mem=256 may still result in only 128 MB reported by vcgencmd get_mem gpu, while the gpu_mem_256 flag may take precedence. The interaction with overlays such as dtoverlay=vc4-kms-v3d adds further uncertainty.
Is the gpu_mem parameter fully honored on 64-bit Raspberry Pi OS when gpu_mem_256 is not explicitly set? Does the bootloader enforce a hard 128 MB ceiling unless gpu_mem_256 is present? How should configuration be authored to reliably request 256 MB GPU memory across firmware revisions?