v2026.11 DB LIVEVerified Frame-Time & Emulator Config Recipes for PS2, GameCube, Switch, PSP & iOS Delta
60
RetroFPSHandheld Matrix
Test FPS
🧭 Matchmaker📦 PortMaster📐 16:9 Hacks🕹️ Systems🔋 Battery⚡ Input Lag📺 Shaders🎮 Frontends📱 Handhelds (24)💿 Games (50)⚔️ Versus⚡ Turnip Drivers📦 ROM Compress📐 Screens🛠️ CFW🧠 Chipsets💾 SD Calc
GPU Architecture & Fragment Shaders

Shader Performance & Fill Rate Matrix

Stop shader-induced stutter. Compare single-pass vs 12-pass CRT shaders, benchmark Mali vs Adreno GPU fill-rate limits, and discover the best visual presets for locked 60 FPS.

Interactive GPU Shader Overhead & Frame Rate Simulator

Select your handheld GPU chipset and target CRT shader preset to compute fragment shader ALU load, memory bus saturation, and projected frame rate.

Expected Frame Rate
60.0 FPS
100% Locked Full Speed
GPU Fill-Rate Utilization
22.4%
Ample Thermal Headroom
Performance Compatibility VerdictRECOMMENDED

Clean performance. The Mali-G31 GPU effortlessly handles the single-pass crt-geom algorithm at 640x480 resolution without stutter or audio popping.

Pro Tip: On low-power handhelds (RG35XX, Miyoo Mini), switch the video driver in RetroArch from GL to Vulkan (if supported) or use zfast-crt to reclaim up to 25% battery runtime.

GPU Fill Rate Physics: The Cost of CRT Emulation

A GPU's pixel fill rate represents how many pixels the rasterizer can write to video memory per second:

Fill Rate Required = Screen Width × Screen Height × Frame Rate × Number of Shader Passes

For a 4-pass shader running at 1080p @ 60 FPS:
Pixels / Sec = 1920 × 1080 × 60 × 4 = 497.66 Megapixels / second
When multiplied by complex matrix operations and subpixel phosphor masks, budget mobile GPUs with narrow 32-bit or 64-bit memory buses choke on memory bandwidth, resulting in immediate frame drops and severe audio crackles.

RetroArch Shader Complexity & Hardware Benchmark Matrix

Pass counts, ALU operations per fragment, memory bandwidth impact, and verified performance tiers.

Shader PresetPass CountALU ComplexityVRAM BandwidthH700 (RG35XX)RK3566 (RGB30)Target Hardware Class
zfast-crt (Single Pass)1 PassLow (~18 ALU Ops / Pixel)Low (Direct to backbuffer)0% (Locked 60 FPS)0% (Locked 60 FPS)Budget Linux Handhelds (RG35XX, Miyoo Mini, RGB30)
crt-geom (Single Pass Curvature)1 PassModerate (~64 ALU Ops / Pixel)Moderate (Curvature ray-casting)1% - 3% (Minor thermal rise)0% (Full speed)Mid-tier Linux & Android handhelds (RG40XX, TrimUI Pro)
crt-lottes (Multi-Pass)2 PassesHigh (~140 ALU Ops / Pixel)High (Horizontal + Vertical blur)18% Drop (Stutters to 48 FPS on SNES)8% DropUnisoc T618 / Dimensity 1100 (Retroid 3+ / 4)
crt-guest-advanced-fast (Multi-Pass)4 PassesVery High (~320 ALU Ops / Pixel)Very High (Ping-pong framebuffers)45% Drop (Unplayable 33 FPS)30% DropSnapdragon 865+ / Dimensity 1100 (Retroid 4 Pro / 5)
crt-royale (Master Multi-Pass)12 Passes (Full Physics Model)Extreme (>1200 ALU Ops / Pixel)Massive (Requires 4K downsampling & 32-bit floats)Crash / Slideshow (8 FPS)12 FPSSteam Deck OLED / AYN Odin 2 / High-end Gaming PCs

Frequently Asked Questions

Q:Why do complex CRT shaders cause severe frame drops on budget retro handhelds?

Budget handheld SoCs (like the Allwinner H700 in RG35XX or Rockchip RK3566) feature ultra-low-power GPUs (Mali-G31 MP2 or Mali-G52) with limited Arithmetic Logic Units (ALUs) and constrained memory bus bandwidth (~12.8 GB/s). While rendering native 240x160 GBA or 256x224 SNES sprites takes less than 1% of GPU capacity, applying a 12-pass CRT shader calculates complex mathematical trigonometric formulas (barrel curvature, halation diffusion, subpixel phosphor masks) for every single screen pixel at 60 times a second, saturating the GPU pipeline.

Q:What is framebuffer ping-ponging in multipass shaders?

In a multipass shader (like crt-guest-advanced or crt-royale), Pass 1 renders horizontal scanlines into an off-screen texture buffer in VRAM. Pass 2 reads that buffer to calculate vertical phosphor bloom and writes to a second buffer. Pass 3 adds beam spot diffusion, and Pass 4 applies screen curvature before outputting to the display. This continuous back-and-forth reading and writing (ping-ponging) floods the GPU memory bus, causing thermal throttling and audio crackling.

Q:What is the best zero-lag CRT shader for low-power handhelds (Miyoo Mini, RG35XX)?

The undisputed gold standard is 'zfast-crt' (located in the shaders_glsl/crt directory of RetroArch). Specifically hand-optimized by programmer SoltanGris48 for low-end ARM Mali GPUs, zfast-crt combines scanlines, subtle brightness boosting, and mask simulation into a single lightweight pass, maintaining a locked 60.0 FPS on every $40-$60 handheld with 0% battery penalty.

Q:Can I run CRT shaders on top of Fast-Forward without slowing down?

Fast-forwarding runs the emulator at 2x to 8x normal speed (120 to 480 frames per second). If you have a multi-pass CRT shader enabled, your GPU must calculate shader passes at 300+ FPS, which instantly caps your fast-forward speed. If you frequently fast-forward in Pokemon or RPGs, stick to 'zfast-crt' or simple grid filters to allow maximum CPU fast-forward multipliers.