What's Changed
Performance enhancements:
- ICC profile caching — lcms2 profiles and CMS transforms are now cached per color space instead of rebuilt on every color conversion (per-frame in
toDisplayRGBA8, per-export inwriteImage) - Hardware half-float conversion —
halfToFloatuses F16C intrinsics (_cvtsh_ss) on supported CPUs instead of the software normalization loop - Link-time optimization — LTO is now enabled by default for Release builds via
check_ipo_supported - Native architecture optimization — optional
-march=nativeviaOFX_NATIVE_ARCH=1 ./build.sh(enables AVX, F16C, etc.) - Multithreaded preview resize —
makePreviewuses stbir2's split API to parallelize downscaling across CPU cores - Pooled render buffers —
renderChainreuses thread-localImagebuffers with O(1) swap instead of allocating a new buffer per plugin node per render - Eliminated per-request allocations —
clipGetImagereuses a pooledPropSetfrom theClipstruct instead ofnew/deleteper call - Faster property lookups —
PropSetswitched fromstd::maptostd::unordered_mapfor O(1) property access - Faster pixel conversion — replaced
std::lroundwith inline float multiplication + clamp intoTopDown8;flipRowsusesstd::swap_rangesto avoid a temporary buffer allocation
Downloads
- Apple Silicon:
OfxRawHost-macOS-arm64.dmg - Intel:
OfxRawHost-macOS-x86_64.dmg
Full Changelog: v0.3.11...v0.3.5