Skip to content
dnjulek edited this page Jul 9, 2026 · 5 revisions

Welcome to the vapoursynth-zipcl wiki!

vszipcl is a VapourSynth plugin written in Zig that provides OpenCL-accelerated video filters.

All filters accept 8/16-bit integer, 16-bit half, and 32-bit float input and are multi-plane (Gray / YUV / RGB, subsampled chroma).

FILTERS

📊 See Benchmarks — vszipcl vs each reference at 1080p YUV420 (u16/f16/f32, num_streams 1 & 2).

COMMON ARGUMENTS

Every filter takes these optional arguments:

  • device_id (int, default: 0):
    OpenCL device index (platform 0). Out-of-range or negative values are rejected.
  • num_streams (int, default: 1, range: 1..32):
    Number of concurrent per-frame resource sets. The default of 1 serializes to one frame at a time; raise it to overlap more frames on the GPU (up to what the kernel/transfer mix can hide — 2 already captures most of the scaling). Output is bit-identical at any stream count.
  • tune (int[], default: unset):
    Per-filter launch-geometry override (work-group shape / batching). Defaults are the measured Ampere ship values used on every vendor, so you can retune at runtime — especially on AMD / Apple — instead of rebuilding. Untuned is byte-identical to the ship build. See Tune for the per-filter layouts, vendor starting points, and the sweep protocol.

Clone this wiki locally