[common] rect: fix avx unaligned bytes copy
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled

Thanks @D0ot for debugging and finding this this, the LG community are
very appreciate for a fix for this long outstanding bug.

Fixes #1129
Closes #1136
This commit is contained in:
Geoffrey McRae 2024-08-30 09:12:19 +10:00
parent 3ea37b86e3
commit 6a0a635781

View File

@ -335,7 +335,7 @@ static void rectCopyUnaligned_avx(
for (int i = ystart; i < yend; ++i) for (int i = ystart; i < yend; ++i)
{ {
// copy the unaligned bytes // copy the unaligned bytes
for(int col = align; col >= 0; --col) for(int col = align - 1; col >= 0; --col)
dst[col] = src[col]; dst[col] = src[col];
const __m256i *restrict s = (__m256i*)(src + align); const __m256i *restrict s = (__m256i*)(src + align);