https://bugs.kde.org/show_bug.cgi?id=458033
--- Comment #4 from Timo Gurr <timo.g...@gmail.com> --- (In reply to amyspark from comment #2) > Can you check what your compiler returns for the size of `unsigned int`? Sorry I've no idea how to do that. > Alternatively, can you replace the definitions in > libs\pigment\compositeops\KoStreamedMath.h as follows, and try building > Krita again? Replace "int" and "unsigned int" for "int32_t" and "uint32_t" > respectively, in`struct PixelWrapper<quint16, ...>` and `struct > PixelWrapper<float, ...>`. I'm attaching the patch I'm using as krita-5.1.0-xsimd.patch, maybe I did something wrong, with it applied I get the following error: /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' In regards to what tomtomtomreportin...@gmail.com just posted I want to note that we currently compile our xsimd package with xtl support disabled by passing -DENABLE_XTL_COMPLEX:BOOL=FALSE since we didn't package https://github.com/xtensor-stack/xtl yet. -- You are receiving this mail because: You are watching all bug changes.