Releases: pinterf/AviSynthPlus
Avisynth+ v3.7.6pre-r4529 test build
Actual:
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html
20260220 3.7.5.r4529 (pre 3.7.6)
- Fix Colorbars inaccurate 10+ bit, by using ground truth linear RGB, similarly to ColorBarsHD.
Full refactoring.
update doc: https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/colorbars.html - Histogram "color" and "color2" (Vectorscope modes)
- full refactoring.
- Drawing is now matrix and color range aware. target positions (75%) +-I and +Q.
- add individual overlay options:
addedmatrix,graticule,targets,axes,iq,iq_lines,circle
parameters - Fix: copy alpha from clip, initialize alpha to zero in the histogram area.
- Accurate pixel positioning and scaling to the active histogram area,
limited/full range aware. - update doc: https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/histogram.html
20260216 3.7.5.r4523 (pre 3.7.6)
- Fix r4504 regression YUV->RGBP bit-depth changing full-scale SSE2/AVX2 bug (exchanged G,B storage)
- "Layer" YUV mul/add/subtract/lighten/darken: refactor chroma placement calculation, allowing SIMD optimization in the main frame processing
- "Layer" YUV/RGBP mul/add/subtract/lighten/darken: refactor function dispatchers, add AVX2 path (LLVM/clangcl recommended)
- Fix C-only vertical resampling code which added more rounding than needed (regression since pre-3.7.5 20250427)
- Invert: per-plane processing for planar formats, use C even in AVX2, proper chroma inversion
- New: AddAlphaPlane opacity parameter
- New: ResetMask opacity parameter
- rstdoc: document "opacity" in AddAlphaPlane and ResetMask
- rstdoc: detail Layer "use_chroma" and opacity
- Overlay "Blend": more speed, but keep accuracy, use float only where really needed
- Layer: use YV16 internally for YUY2 (lessen source code bloat)
v3.7.6pre-r4523
For online documentation check https://avisynthplus.readthedocs.io/en/latest/
Actual:
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html
20260216 3.7.5.r4523 (pre 3.7.6)
- Fix r4504 regression YUV->RGBP bit-depth changing full-scale SSE2/AVX2 bug (exchanged G,B storage)
- "Layer" YUV mul/add/subtract/lighten/darken: refactor chroma placement calculation, allowing SIMD optimization in the main frame processing
- "Layer" YUV/RGBP mul/add/subtract/lighten/darken: refactor function dispatchers, add AVX2 path (LLVM/clangcl recommended)
- Fix C-only vertical resampling code which added more rounding than needed (regression since pre-3.7.5 20250427)
- Invert: per-plane processing for planar formats, use C even in AVX2, proper chroma inversion
- New: AddAlphaPlane opacity parameter
- New: ResetMask opacity parameter
- rstdoc: document "opacity" in AddAlphaPlane and ResetMask
- rstdoc: detail Layer "use_chroma" and opacity
- Overlay "Blend": more speed, but keep accuracy, use float only where really needed
- Layer: use YV16 internally for YUY2 (lessen source bloat)
20260213 3.7.5.r4507 (pre 3.7.6)
Fix Layer "add" 8 bit, regression in r4504
20260212 3.7.5.r4504 (pre 3.7.6)
- Fix: inaccurate ColorBarsHD 10+ bit values. Now they are derived from the 32-bit float
RGB definitions instead of upscaling a 8 bit precalculated YUV value.
Add Ramp section the lead-in-lead-out. - Fix: GreyScale + SSE2 + RGB32 + matrix="RGB" overflow.
Rare usage; "RGB" matrix (Identity) uses a 1.0 coefficient which exceeds the signed 16-bit
SIMD limit of 32767 at 15-bit precision. Added bounds checking to fallback to C-code for any
coefficients >= 1.0 or < −1.0. - Fix: YUV->RGB limited range matrix accuracy for 10-16 bits.
- Use a different rounding in matrix coefficient's integer approximation.
- "ConvertToPlanarRGB":
bitsparameter: on-the-fly bit-depth conversions to YUV->RGB conversion.- Full range target: 8-16 bits internal calculation is in 32-bit float.
- Limited range target: a quicker, bit accuracy optimized integer calculation path.
- Not Fixed: Speed degradation when in-constructor GetFrame(0) (e.g. frame-property getter)
is used. Disable internal Cache object creation. Does not work in complex scripts, preparation
is 5-10 min instead of <1 sec. Investigation continues (Issue AviSynth#476: AviSynth#476) - Avoid MTGuard and CacheGuard creation if filter returns one of its clip parameter unaltered.
- Add some avx2 stuff to Layer and Invert
- Optimization: Overlay "Blend": aarch64 NEON optimization
Avisynth+ v3.7.6pre-r4507 test build
(r4504 test replaced with r4507, Reason: "Layer" "add" 8 bit case regression)
Actual:
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html
20260213 3.7.5.r4507 (pre 3.7.6)
Fix Layer "add" 8 bit, regression in r4504
20260212 3.7.5.r4504 (pre 3.7.6)
- Fix: inaccurate ColorBarsHD 10+ bit values. Now they are derived from the 32-bit float
RGB definitions instead of upscaling a 8 bit precalculated YUV value.
Add Ramp section the lead-in-lead-out. - Fix: GreyScale + SSE2 + RGB32 + matrix="RGB" overflow.
Rare usage; "RGB" matrix (Identity) uses a 1.0 coefficient which exceeds the signed 16-bit
SIMD limit of 32767 at 15-bit precision. Added bounds checking to fallback to C-code for any
coefficients >= 1.0 or < −1.0. - Fix: YUV->RGB limited range matrix accuracy for 10-16 bits.
- Use a different rounding in matrix coefficient's integer approximation.
- "ConvertToPlanarRGB":
bitsparameter: on-the-fly bit-depth conversions to YUV->RGB conversion.- Full range target: 8-16 bits internal calculation is in 32-bit float.
- Limited range target: a quicker, bit accuracy optimized integer calculation path.
- Not Fixed: Speed degradation when in-constructor GetFrame(0) (e.g. frame-property getter)
is used. Disable internal Cache object creation. Does not work in complex scripts, preparation
is 5-10 min instead of <1 sec. Investigation continues (Issue AviSynth#476: AviSynth#476) - Avoid MTGuard and CacheGuard creation if filter returns one of its clip parameter unaltered.
- Add some avx2 stuff to Layer and Invert
- Optimization: Overlay "Blend": aarch64 NEON optimization
20260203 3.7.5.r4483 (pre 3.7.6)
- rst documentation update: RGBAdjust https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/adjust.html
- rst documentation update: ColorYUV https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/coloryuv.html
- optimization: add AVX2 TurnLeft/TurnRight/Turn180 (R/L: 1,5-3x speed).
- optimization: ConvertBits AVX2 integer->float
- optimization: ConvertToPlanarRGB(A): YUV->RGB add AVX2 (2-3x speed)
- optimization: ConvertToPlanarRGB(A): YUV->RGB 16 bit: a quicker way (1,5x)
- Fix: C version of 32-bit ConvertToPlanarRGB YUV->RGB to not clamp output RGB values.
- ConvertToPlanarRGB(A): add bits parameter to alter target bit-depth.
- ConvertToPlanarRGB(A): from YUV->RGB full range output: optimized in-process when bits=32, other cases call ConvertBits internally.
- Fix: Packed RGB conversions altering the bit-depth (e.g. rgb32->ConvertToRGB64() worked always in full range.
- Add more AVX512 resampler code. (WIP)
- Add more AVX512_BASE code paths (Resamplers)
- Build: add _avx512b.cpp/hpp pattern in CMake to detect source to compile with base (F,CD,BW,DQ,VL) flags.
However AVX512_BASE itself is set only when AVX512_FAST found.
For pre-Ice Lake (older AVX512) systems you can enable it with SetMaxCPU("avx512base+") and get the optimized AVX512_BASE functions. - Build: add new architecture z/Architecture
Avisynth+ v3.7.6pre-r4483 test build
20260203 3.7.5.r4483 (pre 3.7.6)
- rst documentation update: RGBAdjust https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/adjust.html
- rst documentation update: ColorYUV https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/coloryuv.html
- optimization: add AVX2 TurnLeft/TurnRight/Turn180 (R/L: 1,5-3x speed).
- optimization: ConvertBits AVX2 integer->float
- optimization: ConvertToPlanarRGB(A): YUV->RGB add AVX2 (2-3x speed)
- optimization: ConvertToPlanarRGB(A): YUV->RGB 16 bit: a quicker way (1,5x)
- Fix: C version of 32-bit ConvertToPlanarRGB YUV->RGB to not clamp output RGB values.
- ConvertToPlanarRGB(A): add bits parameter to alter target bit-depth.
- ConvertToPlanarRGB(A): from YUV->RGB full range output: optimized in-process when bits=32, other cases call ConvertBits internally.
- Fix: Packed RGB conversions altering the bit-depth (e.g. rgb32->ConvertToRGB64() worked always in full range.
- Add more AVX512 resampler code. (WIP)
- Add more AVX512_BASE code paths (Resamplers)
- Build: add _avx512b.cpp/hpp pattern in CMake to detect source to compile with base (F,CD,BW,DQ,VL) flags.
However AVX512_BASE itself is set only when AVX512_FAST found.
For pre-Ice Lake (older AVX512) systems you can enable it with SetMaxCPU("avx512base+") and get the optimized AVX512_BASE functions. - Build: add new architecture z/Architecture
Avisynth+ v3.7.6pre-r4439 test build - incl. Win7 build
20260107 3.7.5.r4439 (pre 3.7.6)
-
add AVX512 code path (tuning by DTL2020)
-
32-bit float resamplers, verticals; horizontals up to kernel size 16.
-
8-16-bit horizontal resamplers,
- kernel size <= 4 and specific ratios; 300%+ !!
- kernel sizes up to 8 and 16 and specific ratios.
-
8-16-bit vertical resamplers
-
For online documentation, please check https://avisynthplus.readthedocs.io/en/latest/
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html
Note for Windows 7 compatibility builds:
- Used v143 toolset: 14.44.35221. (v143 is selectable from Visual Studio 2026 as well)
- Requires up-to-date Visual C++ redistributable pack.
Pre-14.39 VC redisttributable versions will crash with Access Violation ("mutex-lock" issue)
When in doubt which version you have, check your c:\windows\system32\msvcp140.dll properties.
Download 14.44.35221 from: https://github.com/abbodi1406/vcredist/releases/tag/v0.92.0 - Redistributable 14.44.35211 does work on Windows 7 if KB2999226 is installed:
Get the update from:
https://support.microsoft.com/en-us/topic/update-for-universal-c-runtime-in-windows-c0514201-7fe6-95a3-b0a5-287930f3560c
Avisynth+ v3.7.6pre-r4430 test build - incl. Win7 compatibility-test versions
20260105 3.7.5.r4430 (pre 3.7.6)
- add AVX512 code path to 8-16-bit horizontal resamplers, having kernel size <= 4 and specific ratios (DTL) 300%+ !!
- More Aarch64 (ARM64) NEON:
- add I8MM and SVE2_1 feature flags
- add NEON optimization to TurnLeft/Right/180
Avisynth+ v3.7.6pre-r4403 test build
20251225 3.7.5.r4403 (pre 3.7.6)
- Fix: The
Animate()function now explicitly clamps interpolated values to ensure they remain
strictly between the start and end range. Due to the high precision of 64-bitdoubleintroduced
in v3.7.5, intermediate calculations could slightly exceed the boundary (e.g., 360.00000000000006
when interpolating from 0 to 360.0 in 564 steps), requiring this clamp to prevent out-of-range errors.
Avisynth+ v3.7.6pre-r4400 test build
20251223 3.7.5.r4400 (pre 3.7.6)
- AVX512 float resampler additions, optimize horizontal (kernelsize <= 8), add code for vertical (DTL2020)
- Fix an ApplyMessage regression not recognizing '\n' line ends of Authors.avs (since 20250831)
XP build still exist.
Non-XP version is built with clangcl (LLVM).
Windows 7 not supported.
Needs fresh VC14 redistributables. Get latest V14 redist is from here (permalink to the .exe):
https://aka.ms/vc14/vc_redist.x64.exe
Avisynth+ v3.7.6pre-r4392 test build
20251220 3.7.5.r4392 (pre 3.7.6)
- "Info": Optimize AVX512 features display, group features, make a bit more compact
- "Info": add L2 cache size display
- "SetMaxCPU": add "avx512base" and "avx512fast" options to enable/disable AVX512 grouped features. see SetMaxCPU .
- ARM64 (aarch64) area:
- "Info": add ARMV8-A features display (NEON, DOTPROD, SVE2)
- Add ArmV8-A cpu feature detection (NEON, DOTPROD, SVE2) on ARM64 Windows/Linux/macOS builds. On Windows, only up-to DOTPROD can be detected due to OS limitations.
- New CPU flags in cpuid.h and avisynth_c.h: CPUF_ARM_NEON, CPUF_ARM_DOTPROD, CPUF_ARM_SVE2
- "SetMaxCPU": add "neon", "dotprod", "sve2" options to enable/disable ARM64 (aarch64) features.
- New CPU flags: cpuid.h and ``avisynth_c.h - added AVX512 group feature flags CPUF_AVX512_BASE and CPUF_AVX512_FAST (Ice Lake, usable AVX-512 since that point). - added many new AVX512 individual feature flags - added ARM64 feature flags CPUF_ARM_NEON, CPUF_ARM_DOTPROD, CPUF_ARM_SVE2 - CPUF_xxxxx flags are now 64 bit, replace enum with constexpr.
- CMakeLists.txt: avx512 compile flag support for gcc/clang ("fast" Ice Lake-like feature set).
- V13 interface: GetCPUFlagsEx returning 64 bit flags (too many AVX512 subfeatures to fit in 32 bit). C interface: avs_get_cpu_flags_ex. see GetCPUFlagsEx and GetCPUFlags
- V13 interface: L2 cache size query support. New entry in AvsEnvProperty: AEP_CACHESIZE_L2 (C++), AVS_AEP_CACHESIZE_L2 (C) to query L2 cache size in bytes with IScriptEnvironment->GetEnvProperty(). x86/x64 architecture only for now. See AvsEnvProperty .
- Refactor CMakeLists.txt:
- Correct default of ENABLE_INTEL_SIMD for cross-compiling scenarios (e.g. ARM64 target on x86_64 host) Old logic relied on the host processor: ${CMAKE_SYSTEM_PROCESSOR}
- Add back option to compile ARM64 builds with Visual Studio on Windows. On VS2026 even clangcl (LLVM) is supported out-of-box for ARM64 platform, easily cross-compilable way from an x64 machine.
- VDubFilter: allow building on Windows only x86/x64 targets (and not for ARM64).
- Fix LLVM/clangcl/Intel ICX compile warning: 'WIN32' macro redefined as "#define WIN32 /D_WINDOWS /W3 /GR /EHsc 1 ", when CMake injects a command-line macro wrongly and thus redefines WIN32 . The fix: converts global add_definitions("/D ...") and other option string magics into per-target target_compile_definitions() and target_compile_options(). Thus removing the accidental injection of ${CMAKE_CXX_FLAGS} into add_compile_options(), and prevents the WIN32 macro redefinition.
- Change video-framebuffer over-allocation from 16 to 64 bytes. Allocate 64 bytes more than needed for video frame buffer in order to be able to read 64 bytes safely with AVX512 without risking access violation on the last pixels of the frame.
- rst docs
- Update GetCPUFlags, add GetCPUFlagsEx
- Update CPU Feature Flags with AVX512 and ARM64 features
- Update SetMaxCPU with AVX512 and ARM64 features
- Update AvsEnvProperty with L2 cache size entry
- Update Russian GPL notice in UTF-8 format
Avisynth+ v3.7.6pre-r4356 test build
Avisynth+ v3.7.6pre-r4356 test build
Since last week:
- add AVX512 VNNI flag
- make Info() more compact when displaying AVX512 flags.
- optimize horizontal 32-bit float small (<=4) kernel size
- optimize 32-bit float vertical avx2
- Add mechanism (cache hint) to inform a filter about the effective number of threads when Prefetch is called.
Check full change list here:
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html