RetroArch Android video setup / 2026-07-26

Set up RetroArch shaders and video filters on Android safely

Choose the right video-processing layer, test its performance cost, and save a game, directory, core, or global shader preset without hiding the active scope.

10 minute setup guideRetroArch on Android with OpenGL/OpenGL ES or Vulkan-capable builds

Set up RetroArch shaders and video filters on Android safely

Start with the default video output and one lightweight shader preset. Confirm the preset type matches the active video driver, compare emulation speed and temperature, then save it at the narrowest useful scope. Use a CPU video filter only when you specifically need that layer; do not stack effects until each one passes a clean baseline test.

Do this in order

  1. 01

    Record RetroArch, core, video driver, device refresh rate, and the current speed reading with shaders and video filters disabled.

  2. 02

    Load one authorized game and choose one lightweight preset compatible with the active driver.

  3. 03

    Apply the preset, replay the same scene, and compare emulation speed, frame pacing, audio, and sustained device temperature.

  4. 04

    If performance drops, remove the preset before testing a simpler pass or a different compatible shader language.

  5. 05

    Save the working preset at game, content-directory, core, or global scope, choosing the narrowest scope that matches the intent.

  6. 06

    Restart the same content and verify the expected automatic preset loaded; record how to remove it before adding another effect.

Decision and diagnostic table

Layer or scopeUse it forDiagnostic rule
GPU shader presetCRT response, scaling, color, or scanline processingDriver must support its shader language
CPU video filterA specific software filter before GPU outputTest alone because it adds CPU work
Game / directory / core / global presetAutomatic application at increasing breadthThe most specific matching preset wins

Shader, filter, and bilinear scaling are different layers

A shader preset can contain several GPU passes. A video filter is a separate CPU-side processing stage, while bilinear scaling is a basic video setting. Combining all three makes a slowdown hard to attribute.

Begin from a known default and add only one layer at a time.

Match the preset to the video driver

RetroArch supports different preset families such as Slang, GLSL, and Cg in different driver contexts. A preset that is present on disk can still fail when its language or referenced textures are unavailable to the active driver.

Use the shipped or officially updated shader directory and keep the exact error log when a preset does not load.

Save the smallest automatic scope

A game preset affects one title, a content-directory preset affects a folder for that core, a core preset affects all content for that core, and a global preset reaches everything. More specific automatic presets override broader ones.

Restart after saving. Seeing the same picture only before restart does not prove the automatic preset path is correct.

First-party sources

Related guides