Hi,
Am 03.07.23 um 20:45 schrieb Rene Engelhard:
Here is the output from my current build process (from the status of the
LibreOffice source from last Friday):
Note you can't assume anything over SSE2 in here.
Actually you can't assume anything MMXish or SSEish.
https://wiki.debian.org/ArchitectureSpecificsMemo#i386-1
I confused it with amd64 which up to
SSE2:https://wiki.debian.org/ArchitectureSpecificsMemo#amd64
https://wiki.debian.org/ArchitectureSpecificsMemo#amd64
I've no diea about SIMD instuctions bit this suspicously looks like
instructions not in SSE2?
clang (which per defaults gets used for building skia if installed)
spells out explicitely that it's trying to use SSE2:
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:65:50:
error: always_inline function '_mm_loadu_si128' requires target feature
'sse2', but would be inlined into function 'blit_row_s32_blend' that is
compiled without support for 'sse2'
_mm_storeu_si128(dst4, SkPMLerp_SSE2(_mm_loadu_si128(src4),
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:66:50:
error: always_inline function '_mm_loadu_si128' requires target feature
'sse2', but would be inlined into function 'blit_row_s32_blend' that is
compiled without support for 'sse2'
_mm_loadu_si128(dst4),
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:65:13:
error: always_inline function '_mm_storeu_si128' requires target feature
'sse2', but would be inlined into function 'blit_row_s32_blend' that is
compiled without support for 'sse2'
_mm_storeu_si128(dst4, SkPMLerp_SSE2(_mm_loadu_si128(src4),
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:33:30:
error: always_inline function '_mm_set1_epi32' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
const __m128i mask = _mm_set1_epi32(0x00FF00FF);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:36:26:
error: always_inline function '_mm_and_si128' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
__m128i src_rb = _mm_and_si128(mask, src);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:37:26:
error: always_inline function '_mm_srli_epi16' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
__m128i src_ag = _mm_srli_epi16(src, 8);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:38:26:
error: always_inline function '_mm_and_si128' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
__m128i dst_rb = _mm_and_si128(mask, dst);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:39:26:
error: always_inline function '_mm_srli_epi16' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
__m128i dst_ag = _mm_srli_epi16(dst, 8);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:42:27:
error: always_inline function '_mm_sub_epi16' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
__m128i diff_rb = _mm_sub_epi16(src_rb, dst_rb);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:43:27:
error: always_inline function '_mm_sub_epi16' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
__m128i diff_ag = _mm_sub_epi16(src_ag, dst_ag);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:44:21:
error: always_inline function '_mm_set1_epi16' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
__m128i s = _mm_set1_epi16(src_scale);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:45:19:
error: always_inline function '_mm_mullo_epi16' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
diff_rb = _mm_mullo_epi16(diff_rb, s);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:46:19:
error: always_inline function '_mm_mullo_epi16' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
diff_ag = _mm_mullo_epi16(diff_ag, s);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:49:19:
error: always_inline function '_mm_srli_epi16' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
diff_rb = _mm_srli_epi16(diff_rb, 8);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:50:19:
error: always_inline function '_mm_andnot_si128' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
diff_ag = _mm_andnot_si128(mask, diff_ag);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:51:24:
error: always_inline function '_mm_or_si128' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
__m128i diff = _mm_or_si128(diff_rb, diff_ag);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:54:16:
error: always_inline function '_mm_add_epi8' requires target feature
'sse2', but would be inlined into function 'SkPMLerp_SSE2' that is
compiled without support for 'sse2'
return _mm_add_epi8(dst, diff);
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:130:55:
error: always_inline function '_mm_loadu_si128' requires target feature
'sse2', but would be inlined into function 'blit_row_s32a_blend' that is
compiled without support for 'sse2'
_mm_storeu_si128(dst4,
SkBlendARGB32_SSE2(_mm_loadu_si128(src4),
^
/home/rene/LibreOffice/git/libreoffice-7-6/workdir/UnpackedTarball/skia/src/core/SkBlitRow_D32.cpp:131:55:
error: always_inline function '_mm_loadu_si128' requires target feature
'sse2', but would be inlined into function 'blit_row_s32a_blend' that is
compiled without support for 'sse2'
_mm_loadu_si128(dst4),
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
I think skia should be patched (at least on i386) to not require SSE or
MMX or whatever. Otherwise the only other alternative would be
--disable-skia....
Regards,
Rene