graphics/jpeg-xl: enable LTO by default

3% faster at least with -s 9 (tortoise) and 2100x2800 input.

Beware of dragons on non-amd64 e.g.,

  $ cjxl -s 9 foo.png foo.jxl
    J P E G   \/ |
	      /\ |_   e n c o d e r    [v0.3.2 | SIMD supported: SSE4,Scalar]

  Read 2100x2800 image, 47.7 MP/s
  Encoding [VarDCT, d1.000, tortoise], 8 threads.
  lib/jxl/butteraugli/butteraugli.cc:99: JXL_CHECK: out->xsize() == in.ysize()
  Illegal instruction
This commit is contained in:
Jan Beich 2021-02-25 18:32:23 +00:00
parent 46e58e26a4
commit 32c2b95c68
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=566548

View File

@ -3,6 +3,7 @@
PORTNAME= jpeg-xl
DISTVERSIONPREFIX= v
DISTVERSION= 0.3.2
PORTREVISION= 1
CATEGORIES= graphics
MAINTAINER= jbeich@FreeBSD.org
@ -31,8 +32,10 @@ CMAKE_OFF= JPEGXL_WARNINGS_AS_ERRORS ${BENCHMARK FUZZERS TCMALLOC:L:S/^/JPEGXL_E
CMAKE_OFF+= ${OpenGL GLUT:L:S/^/CMAKE_DISABLE_FIND_PACKAGE_/} # sjpeg
LDFLAGS+= -Wl,--as-needed # brotlicommon, GIMP/OPENEXR/PNG deps
OPTIONS_DEFINE= GIF GIMP JPEG OPENEXR PIXBUF PNG TEST
OPTIONS_DEFAULT=GIF GIMP JPEG OPENEXR PIXBUF PNG
OPTIONS_DEFINE= GIF GIMP JPEG LTO OPENEXR PIXBUF PNG TEST
OPTIONS_DEFAULT=GIF GIMP JPEG LTO OPENEXR PIXBUF PNG
OPTIONS_EXCLUDE_i386= LTO # ConvolutionWithTranspose(): JXL_CHECK: out->xsize() == in.ysize()
OPTIONS_EXCLUDE_powerpc64= ${"${/usr/bin/ld:L:tA}"==/usr/bin/ld.lld:?LTO:} # LLVM bug 47353
OPTIONS_SUB= yes
GIF_LIB_DEPENDS= libgif.so:graphics/giflib
@ -46,6 +49,13 @@ GIMP_LIB_DEPENDS= libgegl-0.4.so:graphics/gegl \
JPEG_USES= jpeg
JPEG_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_JPEG
LTO_CMAKE_BOOL= CMAKE_INTERPROCEDURAL_OPTIMIZATION
LTO_CMAKE_ON= -DCMAKE_POLICY_DEFAULT_CMP0069:STRING=NEW
.if exists(/usr/bin/ld.lld) && ${/usr/bin/ld:L:tA} != /usr/bin/ld.lld
# --plugin isn't supported by old GNU ld.bfd in base
LTO_LDFLAGS= -fuse-ld=lld
.endif
OPENEXR_LIB_DEPENDS= libHalf.so:graphics/ilmbase \
libIlmImf.so:graphics/openexr
OPENEXR_CMAKE_BOOL= JPEGXL_ENABLE_OPENEXR