Skip to content

Picture quality and performance

By default, both builds adjust render size to the device's display, frame rate and available memory. Below you'll find what each automatic choice does and which setting to change when you want something specific. For the technical detail, see Rendering MilkDrop at 4K and How a frame reaches your screen in the engine section.

Resolution

Advanced › Resolution chooses how large ProjectM TV renders. The display scales the result to fill the screen.

Mode Behaviour
Auto (default) Starts at your device tier's height and adapts to the target frame rate and available memory, up to the panel's full physical size. A 4K panel can render at 3840×2160 even when Android's menus run at 1080p
720p, 1080p, 1440p, 4K A fixed height, offered up to your panel's size. Low frame rates do not lower it
Native (panel) The full physical panel, for example Native (4K)

In Auto, resolution drops after about 3 seconds below 85% of the target frame rate. It rises again after about 15 seconds at 97% or more, if memory allows. Auto remembers its last height for the next start.

Memory protection applies in every mode. Before raising resolution, the app estimates the extra texture memory it would need, counting Native trails and two presets during a blend, and keeps a reserve for the music player. Under memory pressure it lowers resolution, frees cached textures and pauses shader preloading, and it recovers when headroom returns. While this is active, TV Diagnostics shows resolution reduced for memory headroom. It protects the music app but cannot guarantee every vendor's memory policy.

Skip slow presets has no effect in fixed sizes and Native (the setting is kept for Auto), so you can study a demanding preset at full size.

Native trails

Feedback presets build each frame from the previous one, and at 4K that accumulation behaves differently than on the much smaller screens the presets were written for. Native trails, active above 1330p, keeps the feedback at an authored-scale canvas (1280×720 at 4K) and draws each frame's new waves, shapes and final image at full native resolution.

Level Result
Standard (default) The authored feedback look, with sharp native geometry on top
Medium Adds native-resolution detail to the trails, with a gain cap of 0.5
High The same passes as Medium, with a gain cap of 1

Medium and High cost the same; they differ in how much detail they keep. Both use more GPU time and memory than Standard, so Auto may choose a lower resolution. Near black and white, the gain is limited so that detail cannot add brightness through clipping.

At 1330p or below, or when a driver rejects the shaders, the previous diffusion path is used and TV Diagnostics shows the reason. More in Native trails.

Transitions

Mode What happens at an automatic change
Auto (default) A full blend of both presets at a reduced scale: 75% to start (60% on low-RAM devices or below 2.6 GB of RAM), down to 50% when the GPU is the limit, back up to 100% when blends have frames to spare. When the CPU is the limit, the outgoing preset renders every second frame instead
Classic projectM's blend at full resolution, the heaviest option
Lightweight An instant cut with a fading snapshot of the old preset on top, for at most 3 s. The cheapest option

Transition sets the length: Instant, or 1 to 10 s. Instant cuts without blending, which also frees the memory reserved for a second preset. Remote-control switches are always instant.

Frame rate and detail

  • Frame rate defaults to about 30 fps: the refresh rate, half or a quarter of it, whichever is closest (30 on a 60 Hz TV, paced to every second vsync). Steady 30 fps looks smoother than an uneven 40 to 50. Motion driven by time keeps its speed at any frame rate, but feedback motion (zoom, rotation, decay) advances once per frame, so it runs faster at a higher frame rate.
  • Detail sets the warp mesh. Each mesh point runs the preset's per-vertex equations on the CPU every frame, so on a low-end box a smaller mesh helps CPU-heavy presets more than a lower resolution does.

Device tiers

On first start the app sorts the device into a tier and picks its defaults from it:

Tier Devices Auto starts at Auto lowest Detail Transition
High NVIDIA SHIELD / Tegra 1440p 720p High 7 s
Standard everything else 1080p 540p Medium 7 s
Low Android low-RAM devices or below 1.6 GB of RAM 720p 360p Low 2 s

TV Diagnostics shows the tier and RAM. You can change Detail and Transition afterwards.

When playback stutters

  1. Keep Resolution › Auto. Fixed and Native sizes ignore frame rate.
  2. Lower Detail if a preset's equations limit the CPU. A lower resolution does not help those presets.
  3. Use Native trails › Standard on a 4K panel.
  4. Switch Transitions to Lightweight if stutters happen only during blends.
  5. Keep Skip slow presets on so that presets that cannot keep up on your TV are retired.

Check the main panel's render size and frame rate before and after a change. On TV, Advanced › Diagnostics also shows memory state.