tests complete successfully on BTI amd64 and aarch64.

committed.

On 2026/05/27 17:14, Brad Smith wrote:
> ping.
> 
> On 2026-05-10 4:54 p.m., Brad Smith wrote:
> > Here is an update to x265 4.2.
> > 
> > 
> > Version 4.2
> > ===========
> > 
> > New feature
> > -----------
> > 1. Threaded Motion Estimation (Experimental feature)-It uses a dedicated 
> > thread
> >     pool to precompute Motion Estimation in parallel. Improves encoding 
> > speed up
> >     to 1.5x for 1080p & lower resolution on multi core machines with low 
> > frequency
> >     setting. On high frequency systems or on machines with low number of 
> > cores,
> >     the overhead of additional Motion estimation work may outweigh 
> > parallelism
> > 
> > Enhancements to existing features
> > -------------
> > 
> > 1.Add new Levels 6.3 to 7.2 specified in ITU-T H.265 (V9) (09/2023) and 
> > above
> > 2.Improve Slices feature with check zeroMv
> > 3.Enable frame parallelism with MCSTF feature
> > 4.Updated support to signal AOM FGM params
> > 5.Improve quality with SBRC feature
> > 6.Updated DolbyVision P5 VUI defaults
> > 
> > API changes
> > -----------
> > 1. API Support to enable Threaded Motion Estimation(--threaded-me)
> > 
> > Optimizations
> > -------------
> > 1. RISC V optimizations including SAD, SATD, DCT, IDCT, block copy, pixel 
> > utilities,
> >     SAO, loopfilter, transpose kernels resulting in 2x encoding speed.
> > 2. ARM SIMD optimizations including the use of NEON and SVE instruction set
> >     extensions. The following algorithms now have optimized SIMD 
> > implementations:
> >     DST, IDCT, SSE, SSD ,intra_pred_planar, pelFilterLumaStrong, 
> > interpolation,
> >     planecopy, dequant_normal, blockcopy, pixel variance resulting in 8% 
> > faster
> >     encoding speed compared to v4.1
> > 
> > Bug fixes
> > ---------
> > 1. Fix memory leaks (no command line option, SEI buffer, analysis save/load)
> > 2. Fix chroma qp offset for non yuv444 inputs
> > 3. Fix max supported input resolution
> > 4. Fix bugs with ARM SIMD optimizations
> > 5. Fix Alpha and Multiview feature flag support in x265_config
> > 6. Fix test harness issues, CMake errors
> > 7. Fix inconsistent output with aq-motion
> > 8. Fix crash with hist-scenecut on high bit-depth builds
> > 9. Fix lookahead concurrency bug
> > 10. Fix shared link issue (R_X86_64_PC32), yuv recon output issue, 
> > rd-refine and
> >      dynamic-refine issue, inputs for Windows named pipe, weighted 
> > prediction
> >     delta_chroma_offset, crf and vbv issue in abr-ladder, psnr and ssim 
> > reported
> >     with MCSTF feature, internally overflowed VBV variables
> > 
> > Known issues
> > ------------
> > 1. Output mismatch between analysis save & load with cutree with reuse 
> > level < 10
> > 2. Inconsistent hash mismatch with abr-ladder feature
> > 3. Performance regression observed with threaded-me feature on high 
> > frequency
> >     systems and for higher resolutions (4k)
> > 
> > 
> > Index: Makefile
> > ===================================================================
> > RCS file: /cvs/ports/multimedia/x265/Makefile,v
> > retrieving revision 1.62
> > diff -u -p -u -p -r1.62 Makefile
> > --- Makefile        13 Feb 2026 12:02:17 -0000      1.62
> > +++ Makefile        10 May 2026 11:47:00 -0000
> > @@ -1,13 +1,12 @@
> >   COMMENT=  free H.265/HEVC encoder
> > -VER=               4.1
> > +VER=               4.2
> >   DISTNAME= x265_${VER}
> >   PKGNAME=  x265-${VER}
> > -REVISION=  0
> >   CATEGORIES=       multimedia
> > -SITES=             https://bitbucket.org/multicoreware/x265_git/downloads/
> > +SITES=             
> > https://github.com/Multicorewareinc/x265/releases/download/${VER}/
> > -SHARED_LIBS=       x265    25.0
> > +SHARED_LIBS=       x265    26.0
> >   HOMEPAGE= https://x265.org/
> > @@ -33,8 +32,6 @@ CONFIGURE_ARGS+=-DCMAKE_ASM_YASM_FLAGS_D
> >             -DENABLE_PIC=On \
> >             -DENABLE_TESTS=On \
> >             -DGIT_ARCHETYPE=1
> > -
> > -MODCMAKE_POLICY_VERSION_OVERRIDE = Yes
> >   .if ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "i386"
> >   CONFIGURE_ARGS+=-DENABLE_ASSEMBLY=Off
> > Index: distinfo
> > ===================================================================
> > RCS file: /cvs/ports/multimedia/x265/distinfo,v
> > retrieving revision 1.28
> > diff -u -p -u -p -r1.28 distinfo
> > --- distinfo        2 Dec 2024 10:40:47 -0000       1.28
> > +++ distinfo        10 May 2026 11:47:00 -0000
> > @@ -1,2 +1,2 @@
> > -SHA256 (x265_4.1.tar.gz) = oxaZxqiYBrdLAVHl5qffZd5LSQUEgv5ev4pDedevjyk=
> > -SIZE (x265_4.1.tar.gz) = 1725279
> > +SHA256 (x265_4.2.tar.gz) = QLHqBFPgMJ8OupNODd9TP49ilZZmeeiJTo8cHI1eEhA=
> > +SIZE (x265_4.2.tar.gz) = 1833442
> > Index: patches/patch-source_CMakeLists_txt
> > ===================================================================
> > RCS file: /cvs/ports/multimedia/x265/patches/patch-source_CMakeLists_txt,v
> > retrieving revision 1.10
> > diff -u -p -u -p -r1.10 patch-source_CMakeLists_txt
> > --- patches/patch-source_CMakeLists_txt     13 Feb 2026 12:02:17 -0000      
> > 1.10
> > +++ patches/patch-source_CMakeLists_txt     10 May 2026 11:47:00 -0000
> > @@ -1,25 +1,10 @@
> >   - Add run-time CPU feature detection for FreeBSD / OpenBSD
> > +- Fix building AltiVec code on powerpc64
> >   Index: source/CMakeLists.txt
> >   --- source/CMakeLists.txt.orig
> >   +++ source/CMakeLists.txt
> > -@@ -7,13 +7,13 @@ if(NOT CMAKE_BUILD_TYPE)
> > - endif()
> > - message(STATUS "cmake version ${CMAKE_VERSION}")
> > - if(POLICY CMP0025)
> > --    cmake_policy(SET CMP0025 OLD) # report Apple's Clang as just Clang
> > -+    cmake_policy(SET CMP0025 NEW) # report Apple's Clang as just Clang
> > - endif()
> > - if(POLICY CMP0042)
> > -     cmake_policy(SET CMP0042 NEW) # MACOSX_RPATH
> > - endif()
> > - if(POLICY CMP0054)
> > --    cmake_policy(SET CMP0054 OLD) # Only interpret if() arguments as 
> > variables or keywords when unquoted
> > -+    cmake_policy(SET CMP0054 NEW) # Only interpret if() arguments as 
> > variables or keywords when unquoted
> > - endif()
> > -
> > - project (x265)
> > -@@ -88,7 +88,7 @@ elseif(ARM64MATCH GREATER "-1")
> > +@@ -91,7 +91,7 @@ elseif(ARM64MATCH GREATER "-1")
> >        option(AARCH64_WARNINGS_AS_ERRORS "Build with -Werror for AArch64 
> > Intrinsics files" OFF)
> >        option(AARCH64_RUNTIME_CPU_DETECT "Enable AArch64 run-time CPU 
> > feature detection" ON)
> > @@ -28,12 +13,21 @@ Index: source/CMakeLists.txt
> >            set(AARCH64_RUNTIME_CPU_DETECT OFF CACHE BOOL "" FORCE)
> >            message(STATUS "Run-time CPU feature detection unsupported on 
> > this platform")
> >        endif()
> > -@@ -522,6 +522,16 @@ endif()
> > +@@ -120,6 +120,10 @@ elseif(RISCV64MATCH GREATER "-1")
> > +     set(RISCV64 1)
> > +
> > +     option(RISCV64_RUNTIME_CPU_DETECT "Enable RISCV64 run-time CPU 
> > feature detection" ON)
> > ++    if(NOT CMAKE_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD")
> > ++        set(RISCV64_RUNTIME_CPU_DETECT OFF CACHE BOOL "" FORCE)
> > ++        message(STATUS "Run-time CPU feature detection unsupported on 
> > this platform")
> > ++    endif()
> > - if(ENABLE_ASSEMBLY)
> > +     option(ENABLE_RVV "Enable RVV" ON)
> > +
> > +@@ -664,6 +668,16 @@ if(ENABLE_ASSEMBLY)
> >       add_definitions(-DENABLE_ASSEMBLY)
> > -+endif()
> > -+
> > + endif()
> > +
> >   +check_symbol_exists(getauxval sys/auxv.h HAVE_GETAUXVAL)
> >   +if(HAVE_GETAUXVAL)
> >   +    add_definitions(-DHAVE_GETAUXVAL=1)
> > @@ -42,6 +36,21 @@ Index: source/CMakeLists.txt
> >   +check_symbol_exists(elf_aux_info sys/auxv.h HAVE_ELF_AUX_INFO)
> >   +if(HAVE_ELF_AUX_INFO)
> >   +    add_definitions(-DHAVE_ELF_AUX_INFO=1)
> > - endif()
> > -
> > ++endif()
> > ++
> >    option(CHECKED_BUILD "Enable run-time sanity checks (debugging)" OFF)
> > + if(CHECKED_BUILD)
> > +     add_definitions(-DCHECKED_BUILD=1)
> > +@@ -785,7 +799,11 @@ if(POWER)
> > +     # IBM Power8
> > +     option(ENABLE_ALTIVEC "Enable ALTIVEC profiling instrumentation" ON)
> > +     if(ENABLE_ALTIVEC)
> > +-        add_definitions(-DHAVE_ALTIVEC=1 -maltivec -mabi=altivec)
> > ++        add_definitions(-DHAVE_ALTIVEC=1 -maltivec)
> > ++        check_cxx_compiler_flag(-mabi=altivec CC_HAS_MABI_ALTIVEC)
> > ++        if(CC_HAS_MABI_ALTIVEC)
> > ++            add_definitions(-mabi=altivec)
> > ++        endif()
> > +         add_definitions(-flax-vector-conversions -fpermissive)
> > +     else()
> > +         add_definitions(-DHAVE_ALTIVEC=0)
> > Index: patches/patch-source_common_aarch64_cpu_h
> > ===================================================================
> > RCS file: 
> > /cvs/ports/multimedia/x265/patches/patch-source_common_aarch64_cpu_h,v
> > retrieving revision 1.1
> > diff -u -p -u -p -r1.1 patch-source_common_aarch64_cpu_h
> > --- patches/patch-source_common_aarch64_cpu_h       2 Dec 2024 10:40:47 
> > -0000       1.1
> > +++ patches/patch-source_common_aarch64_cpu_h       10 May 2026 11:47:00 
> > -0000
> > @@ -3,7 +3,7 @@
> >   Index: source/common/aarch64/cpu.h
> >   --- source/common/aarch64/cpu.h.orig
> >   +++ source/common/aarch64/cpu.h
> > -@@ -119,7 +119,7 @@ static inline int aarch64_get_cpu_flags()
> > +@@ -127,7 +127,7 @@ static inline int aarch64_get_cpu_flags()
> >        return flags;
> >    }
> > @@ -12,14 +12,14 @@ Index: source/common/aarch64/cpu.h
> >    #include <sys/auxv.h>
> > -@@ -133,10 +133,10 @@ static inline int aarch64_get_cpu_flags()
> > +@@ -142,10 +142,10 @@ static inline int aarch64_get_cpu_flags()
> >        int flags = 0;
> >    #if HAVE_NEON_DOTPROD || HAVE_SVE
> >   -    unsigned long hwcap = getauxval(AT_HWCAP);
> >   +    unsigned long hwcap = x265_getauxval(AT_HWCAP);
> >    #endif
> > - #if HAVE_NEON_I8MM || HAVE_SVE2
> > + #if HAVE_NEON_I8MM || HAVE_SVE2 || HAVE_SVE2_BITPERM
> >   -    unsigned long hwcap2 = getauxval(AT_HWCAP2);
> >   +    unsigned long hwcap2 = x265_getauxval(AT_HWCAP2);
> >    #endif
> > Index: patches/patch-source_common_cpu_cpp
> > ===================================================================
> > RCS file: /cvs/ports/multimedia/x265/patches/patch-source_common_cpu_cpp,v
> > retrieving revision 1.4
> > diff -u -p -u -p -r1.4 patch-source_common_cpu_cpp
> > --- patches/patch-source_common_cpu_cpp     9 Dec 2024 22:37:26 -0000       
> > 1.4
> > +++ patches/patch-source_common_cpu_cpp     10 May 2026 11:47:00 -0000
> > @@ -23,7 +23,7 @@ Index: source/common/cpu.cpp
> >    #include <signal.h>
> >    #include <setjmp.h>
> >    static sigjmp_buf jmpbuf;
> > -@@ -128,6 +132,22 @@ const cpu_name_t cpu_names[] =
> > +@@ -137,6 +141,22 @@ const cpu_name_t cpu_names[] =
> >        { "", 0 },
> >    };
> > @@ -46,7 +46,7 @@ Index: source/common/cpu.cpp
> >    #if X265_ARCH_X86
> >    extern "C" {
> > -@@ -348,6 +368,8 @@ void PFX(cpu_neon_test)(void);
> > +@@ -357,6 +377,8 @@ void PFX(cpu_neon_test)(void);
> >    int PFX(cpu_fast_neon_mrc_test)(void);
> >    }
> > @@ -55,8 +55,8 @@ Index: source/common/cpu.cpp
> >    uint32_t cpu_detect(bool benableavx512)
> >    {
> >        int flags = 0;
> > -@@ -355,6 +377,11 @@ uint32_t cpu_detect(bool benableavx512)
> > - #if HAVE_ARMV6
> > +@@ -364,6 +386,11 @@ uint32_t cpu_detect(bool benableavx512)
> > + #if HAVE_ARMV6 && ENABLE_ASSEMBLY
> >        flags |= X265_CPU_ARMV6;
> >   +#if HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO
> > @@ -67,7 +67,7 @@ Index: source/common/cpu.cpp
> >        // don't do this hack if compiled with -mfpu=neon
> >    #if !HAVE_NEON
> >        static void (* oldsig)(int);
> > -@@ -372,6 +399,7 @@ uint32_t cpu_detect(bool benableavx512)
> > +@@ -381,6 +408,7 @@ uint32_t cpu_detect(bool benableavx512)
> >    #endif // if !HAVE_NEON
> >        flags |= X265_CPU_NEON;
> > Index: patches/patch-source_common_riscv64_cpu_h
> > ===================================================================
> > RCS file: patches/patch-source_common_riscv64_cpu_h
> > diff -N patches/patch-source_common_riscv64_cpu_h
> > --- /dev/null       1 Jan 1970 00:00:00 -0000
> > +++ patches/patch-source_common_riscv64_cpu_h       10 May 2026 11:47:00 
> > -0000
> > @@ -0,0 +1,59 @@
> > +- Add run-time CPU feature detection for FreeBSD / OpenBSD
> > +
> > +Index: source/common/riscv64/cpu.h
> > +--- source/common/riscv64/cpu.h.orig
> > ++++ source/common/riscv64/cpu.h
> > +@@ -28,12 +28,13 @@
> > +
> > + #if RISCV64_RUNTIME_CPU_DETECT
> > +
> > +-#if defined(__linux__)
> > ++#if HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO
> > +
> > + #include <sys/auxv.h>
> > +
> > + #define HWCAP_RISCV64_RVV     (1 << ('V' - 'A'))
> > +
> > ++#ifdef __linux__
> > + static int parse_proc_cpuinfo(const char *flag) {
> > +     FILE *file = fopen("/proc/cpuinfo", "r");
> > +     if (file == NULL)
> > +@@ -52,31 +53,34 @@ static int parse_proc_cpuinfo(const char *flag) {
> > +     fclose(file);
> > +     return found;
> > + }
> > ++#endif
> > +
> > + static inline uint32_t riscv64_cpu_detect()
> > + {
> > +     uint32_t flags = 0;
> > +
> > +-    unsigned long hwcap = getauxval(AT_HWCAP);
> > ++    unsigned long hwcap = x265_getauxval(AT_HWCAP);
> > +
> > +     if (hwcap & HWCAP_RISCV64_RVV) {
> > +         flags |= X265_CPU_RVV;
> > +
> > ++#ifdef __linux__
> > +         if (parse_proc_cpuinfo("zbb"))
> > +             flags |= X265_CPU_ZBB;
> > ++#endif
> > +     }
> > +
> > +     return flags;
> > + }
> > +
> > +-#else // defined(__linux__)
> > ++#else // HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO
> > + #error                                                                 \
> > +     "Run-time CPU feature detection selected, but no detection method" \
> > +     "available for your platform. Rerun cmake configure with"          \
> > +     "-DRISCV64_RUNTIME_CPU_DETECT=OFF."
> > +-#endif // defined(__linux__)
> > ++#endif // HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO
> > +
> > +-#else // if AARCH64_RUNTIME_CPU_DETECT
> > ++#else // if RISCV64_RUNTIME_CPU_DETECT
> > +
> > + static inline uint32_t riscv64_cpu_detect()
> > + {
> > Index: patches/patch-source_common_x86_x86inc_asm
> > ===================================================================
> > RCS file: 
> > /cvs/ports/multimedia/x265/patches/patch-source_common_x86_x86inc_asm,v
> > retrieving revision 1.2
> > diff -u -p -u -p -r1.2 patch-source_common_x86_x86inc_asm
> > --- patches/patch-source_common_x86_x86inc_asm      7 May 2024 15:01:27 
> > -0000       1.2
> > +++ patches/patch-source_common_x86_x86inc_asm      10 May 2026 11:47:00 
> > -0000
> > @@ -1,7 +1,7 @@
> >   Index: source/common/x86/x86inc.asm
> >   --- source/common/x86/x86inc.asm.orig
> >   +++ source/common/x86/x86inc.asm
> > -@@ -731,6 +731,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg,
> > +@@ -757,6 +757,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg,
> >        %endif
> >        align function_align
> >        %2:
> > 
> 

Reply via email to