summaryrefslogtreecommitdiffstats
path: root/external/skia/fix-sse.patch.1
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /external/skia/fix-sse.patch.1
parentInitial commit. (diff)
downloadlibreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.tar.xz
libreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'external/skia/fix-sse.patch.1')
-rw-r--r--external/skia/fix-sse.patch.123
1 files changed, 23 insertions, 0 deletions
diff --git a/external/skia/fix-sse.patch.1 b/external/skia/fix-sse.patch.1
new file mode 100644
index 000000000..8a731725e
--- /dev/null
+++ b/external/skia/fix-sse.patch.1
@@ -0,0 +1,23 @@
+--- a/src/opts/SkRasterPipeline_opts.h
++++ b/src/opts/SkRasterPipeline_opts.h
+@@ -1047,7 +1047,7 @@ static const size_t N = sizeof(F) / sizeof(float);
+ // TODO: crashes during compilation :(
+ #define ABI __attribute__((sysv_abi))
+ #define JUMPER_NARROW_STAGES 0
+-#elif defined(_MSC_VER)
++#elif defined(_MSC_VER) && SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
+ // Even if not vectorized, this lets us pass {r,g,b,a} as registers,
+ // instead of {b,a} on the stack. Narrow stages work best for __vectorcall.
+ #define ABI __vectorcall
+--- a/include/private/SkVx.h
++++ b/include/private/SkVx.h
+@@ -515,9 +515,6 @@ static inline Vec<N,uint8_t> approx_scale(const Vec<N,uint8_t>& x, const Vec<N,u
+ static inline Vec<4,float> rcp(const Vec<4,float>& x) {
+ return bit_pun<Vec<4,float>>(_mm_rcp_ps(bit_pun<__m128>(x)));
+ }
+- static inline Vec<4,int> lrint(const Vec<4,float>& x) {
+- return bit_pun<Vec<4,int>>(_mm_cvtps_epi32(bit_pun<__m128>(x)));
+- }
+
+ static inline Vec<2,float> sqrt(const Vec<2,float>& x) {
+ return shuffle<0,1>( sqrt(shuffle<0,1,0,1>(x)));