https://bugs.kde.org/show_bug.cgi?id=458033
Bug ID: 458033 Summary: Failure to build with XSIMD support Product: krita Version: 5.1.0 Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: General Assignee: krita-bugs-n...@kde.org Reporter: timo.g...@gmail.com Target Milestone: --- STEPS TO REPRODUCE 1. Try to build with XSIMD OBSERVED RESULT Running into compile error (complete build log is attached as file). [...] -- Available architectures for xsimd: x86-64 -- Found xsimd: /usr/x86_64-pc-linux-gnu/lib64/cmake/xsimd/xsimdConfig.cmake (found suitable version "8.1.0", minimum required is "8.1.0") [...] [ 11%] Building CXX object libs/pigment/CMakeFiles/kritapigment.dir/KoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o cd /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/pigment && /usr/bin/x86_64-pc-linux-gnu-c++ -DBOOST_ALL_NO_LIB -DHAVE_X11 -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x50900 -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_SQL_LIB -DQT_STRICT_ITERATORS -DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DQT_XML_LIB -DTRANSLATION_DOMAIN=\"krita\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Dkritapigment_EXPORTS -DXSIMD_IMPL=AVX -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/pigment -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/pigment/kritapigment_autogen/include -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/interfaces -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0 -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/resources -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/koplugin -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/koplugin -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/store -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/store -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/global -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/global -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/version -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/version -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/resources -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/resources -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/multiarch -I/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/multiarch -isystem /usr/x86_64-pc-linux-gnu/include/qt5 -isystem /usr/x86_64-pc-linux-gnu/include/qt5/QtCore -isystem /usr/x86_64-pc-linux-gnu/lib/qt5/mkspecs/linux-g++ -isystem /usr/x86_64-pc-linux-gnu/include/qt5/QtConcurrent -isystem /usr/x86_64-pc-linux-gnu/include/qt5/QtGui -isystem /usr/x86_64-pc-linux-gnu/include/qt5/QtWidgets -isystem /usr/x86_64-pc-linux-gnu/include/qt5/QtXml -isystem /usr/x86_64-pc-linux-gnu/include/KF5/KI18n -isystem /usr/x86_64-pc-linux-gnu/include/KF5 -isystem /usr/x86_64-pc-linux-gnu/include/qt5/QtSql -isystem /usr/x86_64-pc-linux-gnu/include/OpenEXR -isystem /usr/x86_64-pc-linux-gnu/include/Imath -isystem /usr/x86_64-pc-linux-gnu/include/KF5/KConfig -isystem /usr/x86_64-pc-linux-gnu/include/KF5/KConfigCore -march=native -O2 -pipe -DNDEBUG -DQT_NO_DEBUG -fno-operator-names -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -fext-numeric-literals -fexceptions -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wno-suggest-override -Wextra -Wno-class-memaccess -fPIC -std=gnu++14 -Wabi -fabi-version=0 -fabi-compat-version=0 -ffp-contract=fast -fPIC -mavx -MD -MT libs/pigment/CMakeFiles/kritapigment.dir/KoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o -MF CMakeFiles/kritapigment.dir/KoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o.d -o CMakeFiles/kritapigment.dir/KoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o -c /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/pigment/KoOptimizedCompositeOpFactoryPerArch_AVX.cpp In file included from /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/global/KisHalfTraits.h:14, from /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/KoColorSpaceMaths.h:109, from /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoCompositeOpFunctions.h:10, from /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoCompositeOpBase.h:11, from /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoOptimizedCompositeOpAlphaDarken32.h:12, from /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/pigment/KoOptimizedCompositeOpFactoryPerArch_AVX.cpp:11: /usr/x86_64-pc-linux-gnu/include/Imath/halfLimits.h:17:2: warning: #warning "ImathLimits is deprecated; use #include <half.h>" [-Wcpp] 17 | #warning "ImathLimits is deprecated; use #include <half.h>" | ^~~~~~~ In file included from /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoStreamedMath.h:14, from /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoOptimizedCompositeOpAlphaDarken32.h:14, from /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build/libs/pigment/KoOptimizedCompositeOpFactoryPerArch_AVX.cpp:11: /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h: In instantiation of 'static void KoRgbaInterleavers<16>::deinterleave(const void*, xsimd::batch<T, A>&, xsimd::batch<T, A>&) [with T = unsigned int; A = xsimd::avx; bool aligned = false]': /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoStreamedMath.h:610:45: required from 'void PixelWrapper<short unsigned int, _impl>::read(const void*, PixelWrapper<short unsigned int, _impl>::float_v&, PixelWrapper<short unsigned int, _impl>::float_v&, PixelWrapper<short unsigned int, _impl>::float_v&, PixelWrapper<short unsigned int, _impl>::float_v&) [with _impl = xsimd::avx; PixelWrapper<short unsigned int, _impl>::float_v = xsimd::batch<float, xsimd::avx>]' /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoOptimizedCompositeOpAlphaDarken128.h:52:25: required from 'static void AlphaDarkenCompositor128<channels_type, ParamsWrapperT>::compositeVector(const quint8*, quint8*, const quint8*, float, const ParamsWrapper&) [with bool haveMask = true; bool src_aligned = true; _impl = xsimd::avx; channels_type = short unsigned int; ParamsWrapperT = KoAlphaDarkenParamsWrapperCreamy; quint8 = unsigned char; AlphaDarkenCompositor128<channels_type, ParamsWrapperT>::ParamsWrapper = KoAlphaDarkenParamsWrapperCreamy]' /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoStreamedMath.h:424:75: required from 'static void KoStreamedMath<_impl>::genericComposite(const KoCompositeOp::ParameterInfo&) [with bool useMask = true; bool useFlow = true; Compositor = AlphaDarkenCompositor128<short unsigned int, KoAlphaDarkenParamsWrapperCreamy>; int pixelSize = 8; _impl = xsimd::avx]' /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoStreamedMath.h:500:58: required from 'static void KoStreamedMath<_impl>::genericComposite64(const KoCompositeOp::ParameterInfo&) [with bool useMask = true; bool useFlow = true; Compositor = AlphaDarkenCompositor128<short unsigned int, KoAlphaDarkenParamsWrapperCreamy>; _impl = xsimd::avx]' /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoOptimizedCompositeOpAlphaDarken128.h:248:126: required from 'void KoOptimizedCompositeOpAlphaDarkenU64Impl<_impl, ParamsWrapper>::composite(const KoCompositeOp::ParameterInfo&) const [with _impl = xsimd::avx; ParamsWrapper = KoAlphaDarkenParamsWrapperCreamy]' /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoOptimizedCompositeOpAlphaDarken128.h:245:10: required from here /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:176:37: error: no matching function for call to 'KoRgbaInterleavers<16>::deinterleave<false>(const void*&, xsimd::batch<unsigned int, xsimd::avx>&, xsimd::batch<unsigned int, xsimd::avx>&, xsimd::avx)' 176 | return deinterleave<aligned>(src, a, b, A{}); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:131:24: note: candidate: 'template<bool aligned, class T, class A, typename std::enable_if<(std::is_integral<_Size>::value && (sizeof (T) == 4)), int>::type <anonymous>, typename std::enable_if<(xsimd::batch<T, A>::size == 4), int>::type <anonymous> > static void KoRgbaInterleavers<16>::deinterleave(const void*, xsimd::batch<T, A>&, xsimd::batch<T, A>&, xsimd::kernel::requires_arch<xsimd::generic>)' 131 | static inline void deinterleave(const void *src, batch<T, A> &dst1, batch<T, A> &dst2, kernel::requires_arch<generic>) | ^~~~~~~~~~~~ /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:131:24: note: template argument deduction/substitution failed: /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:130:120: error: no type named 'type' in 'struct std::enable_if<false, int>' 130 | template<bool aligned, typename T, typename A, enable_sized_integral_t<T, 4> = 0, enable_sized_vector_t<T, A, 4> = 0> | ^ /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:146:24: note: candidate: 'template<bool aligned, class T, class A, typename std::enable_if<(sizeof (T) == 4), int>::type <anonymous> > static void KoRgbaInterleavers<16>::deinterleave(const void*, xsimd::batch<T, A>&, xsimd::batch<T, A>&, xsimd::kernel::requires_arch<xsimd::avx2>)' 146 | static inline void deinterleave(const void *src, batch<T, A> &a, batch<T, A> &b, kernel::requires_arch<avx2>) | ^~~~~~~~~~~~ /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:146:24: note: template argument deduction/substitution failed: /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:176:37: note: cannot convert 'xsimd::avx()' (type 'xsimd::avx') to type 'xsimd::kernel::requires_arch<xsimd::avx2>' {aka 'const xsimd::avx2&'} 176 | return deinterleave<aligned>(src, a, b, A{}); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:174:24: note: candidate: 'template<class T, class A, bool aligned> static void KoRgbaInterleavers<16>::deinterleave(const void*, xsimd::batch<T, A>&, xsimd::batch<T, A>&)' 174 | static inline void deinterleave(const void *src, batch<T, A> &a, batch<T, A> &b) | ^~~~~~~~~~~~ /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:174:24: note: template argument deduction/substitution failed: /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:176:37: error: type/value mismatch at argument 1 in template parameter list for 'template<class T, class A, bool aligned> static void KoRgbaInterleavers<16>::deinterleave(const void*, xsimd::batch<T, A>&, xsimd::batch<T, A>&)' 176 | return deinterleave<aligned>(src, a, b, A{}); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ /var/tmp/paludis/build/media-gfx-krita-5.1.0/work/krita-5.1.0/libs/pigment/compositeops/KoRgbaInterleavers.h:176:37: note: expected a type, got 'false' Error: * In program cave perform install --hooks --managed-output --output-exclusivity with-others =media-gfx/krita-5.1.0:0::kde --destination installed --replacing =media-gfx/krita-5.1.0:0::installed --x-of-y 1 of 1: * When installing 'media-gfx/krita-5.1.0:0::kde' replacing { 'media-gfx/krita-5.1.0:0::installed' }: * When running an ebuild command on 'media-gfx/krita-5.1.0:0::kde': * Install failed for 'media-gfx/krita-5.1.0:0::kde' (paludis::ActionFailedError) make[2]: Leaving directory '/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build' make[1]: Leaving directory '/var/tmp/paludis/build/media-gfx-krita-5.1.0/work/build' make[2]: *** [libs/pigment/CMakeFiles/kritapigment.dir/build.make:908: libs/pigment/CMakeFiles/kritapigment.dir/KoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:9887: libs/pigment/CMakeFiles/kritapigment.dir/all] Error 2 make: *** [Makefile:149: all] Error 2 EXPECTED RESULT Compile with no error. Note: Disabling XSIMD support by passing -DCMAKE_DISABLE_FIND_PACKAGE_xsimd:BOOL=TRUE allows krita 5.1.0 to compile just fine. SOFTWARE/OS VERSIONS Operating System: Exherbo Linux KDE Plasma Version: 5.25.4 KDE Frameworks Version: 5.96.0 Qt Version: 5.15.5 Kernel Version: 5.19.0 (64-bit) Graphics Platform: X11 Processors: 4 × Intel® Core™ i5-6500 CPU @ 3.20GHz Memory: 11.5 GiB of RAM Graphics Processor: Mesa Intel® HD Graphics 530 ADDITIONAL INFORMATION -- You are receiving this mail because: You are watching all bug changes.