Troubleshooting madVR: Fix Common Playback and Scaling Issues

madVR performance tips — optimize quality without lag

Quick checklist (apply in this order)

  1. Use profiles — create separate madVR profiles for SD, 720p, 1080p, 4K, and different frame-rate groups (24/30/60).
  2. Match renderer & decoder — set madVR as renderer (e.g., in MPC-HC/mpv front-end). Use LAV Video with DXVA2 (native or copy-back) for most HEVC/H.264; test which mode uses less GPU memory on your system.
  3. Balance render time targets — aim for render times below: 24/25fps ≤ 40 ms, 30fps ≤ 33 ms, 50/48fps ≤ 20 ms, 60fps ≤ 16 ms. If render time exceeds target, drop quality until it’s under.
  4. GPU queue & frame buffering — in Rendering → General: tune GPU queue size (4–6 typical), enable “Present several frames in advance” only in Exclusive Fullscreen and set frames presented to 2–6 depending on GPU. Use separate device for presentation if available.
  5. Choose scalers by resolution
    • Low-power / real-time: Chroma = Bilinear or Spline; Image upscale = Jinc or NGU Standard; Downscale = SSIM.
    • High-quality (if GPU allows): Chroma = NGU or Jinc; Image upscale = NGU Sharp/Anti-alias high; Image downscale = SSIM.
    • For extreme low-res (360–480p) use stronger NGU/anti-alias; for 4K source use lighter filters.
  6. Trade quality for performance (use selectively) — enable optimizations: 10-bit buffers instead of 16-bit, disable linear-light for certain passes, avoid re-render on fades, and disable costly refinements you don’t need.
  7. Dithering & bit depth — use ordered dithering and prefer 10-bit buffers if display supports it to save GPU cost vs. 16-bit.
  8. Smooth Motion — enable only if needed (e.g., frequent judder); it increases load. Prefer “Always” only when GPU can handle it.
  9. Monitor OSD stats — press Ctrl+J during playback: watch render time, decode time, GPU memory use, dropped frames. Use these to decide which setting to relax.
  10. System tuning — keep GPU drivers updated; disable conflicting GPU features (stereoscopic 3D, unusual desktop resolutions). Prefer exclusive fullscreen (FSE) on Windows when stable.
  11. Fallback options — if madVR causes drops at target resolution/bitrate, either: lower madVR scalers, switch to EVR/other renderer, or play at display native and let TV/upstream device upscale.

Practical presets (start points)

  • Lightweight (laptop / older GPU): Chroma = Bilinear; Image upscale = Jinc; Image downscale = SSIM; GPU queue = 4; present frames = 2; trade quality for perf = on.
  • Balanced (mid-range GPU): Chroma = Spline/Jinc; Image upscale = NGU Standard; Image downscale = SSIM; GPU queue = 5; present frames = 3–4.
  • Quality (high-end GPU): Chroma = NGU/Anti-alias high; Image upscale = NGU Sharp (High); Image downscale = SSIM; GPU queue = 6; present frames = 4–6; enable high-quality refinements.

Quick troubleshooting

  • Dropped frames + high render time → reduce image scaler quality or lower GPU queue & backbuffers.
  • GPU memory maxed → switch DXVA mode (native vs copy-back) or lower buffer bit depth.
  • Flicker/black frames → disable stereoscopic mode, try separate presentation device or adjust fullscreen/exclusive mode.
  • Small GUI on 4K → increase UI scaling or use remote control front-end.

If you want, I can produce a ready-to-import madVR profiles.bin for “Lightweight”, “Balanced”, and “Quality” based on a target GPU (tell me your GPU and primary video resolutions).

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *