[Scummvm-git-logs] scummvm master -> 487512b60fa34a85a1ad86ef5790e58f663325f3
bluegr
noreply at scummvm.org
Wed Aug 30 06:22:10 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
487512b60f AGS: GRAPHICS: Fix NEON compiling errors on switch
Commit: 487512b60fa34a85a1ad86ef5790e58f663325f3
https://github.com/scummvm/scummvm/commit/487512b60fa34a85a1ad86ef5790e58f663325f3
Author: Wyatt Radkiewicz (wyattwradkiewicz at gmail.com)
Date: 2023-08-30T09:22:05+03:00
Commit Message:
AGS: GRAPHICS: Fix NEON compiling errors on switch
Changed paths:
engines/ags/lib/allegro/surface_neon.cpp
diff --git a/engines/ags/lib/allegro/surface_neon.cpp b/engines/ags/lib/allegro/surface_neon.cpp
index cec0e8a6a36..81e04224fb6 100644
--- a/engines/ags/lib/allegro/surface_neon.cpp
+++ b/engines/ags/lib/allegro/surface_neon.cpp
@@ -346,6 +346,7 @@ inline uint32x4_t blendPixelSIMD(uint32x4_t srcCols, uint32x4_t destCols, uint32
case kTintLightBlenderMode: // see BITMAP member function blendTintSprite
return blendTintSpriteSIMD(srcCols, destCols, alphas, true);
}
+ return srcCols;
}
inline uint16x8_t blendPixelSIMD2Bpp(uint16x8_t srcCols, uint16x8_t destCols, uint16x8_t alphas) {
@@ -360,14 +361,15 @@ inline uint16x8_t blendPixelSIMD2Bpp(uint16x8_t srcCols, uint16x8_t destCols, ui
ch1 = vandq_u16(vmovq_n_u16(0xff), vceqq_u16(alphas, vmovq_n_u16(0)));
ch2 = vandq_u16(alphas, vcgtq_u16(alphas, vmovq_n_u16(0)));
alphas = vorrq_u16(ch1, ch2);
+ // fall through
case kRgbToRgbBlender:
case kAlphaPreservedBlenderMode:
return rgbBlendSIMD2Bpp(srcCols, destCols, alphas);
case kRgbToArgbBlender:
- mask = vorrq_u32(vceqq_u32(alphas, vmovq_n_u32(0)), vceqq_u32(alphas, vmovq_n_u32(255)));
- ch1 = vandq_u32(srcCols, mask);
- ch2 = vandq_u32(rgbBlendSIMD2Bpp(srcCols, destCols, alphas), vmvnq_u32(mask));
- return vorrq_u32(ch1, ch2);
+ mask = vorrq_u16(vceqq_u16(alphas, vmovq_n_u16(0)), vceqq_u16(alphas, vmovq_n_u16(255)));
+ ch1 = vandq_u16(srcCols, mask);
+ ch2 = vandq_u16(rgbBlendSIMD2Bpp(srcCols, destCols, alphas), vmvnq_u16(mask));
+ return vorrq_u16(ch1, ch2);
case kTintBlenderMode:
case kTintLightBlenderMode:
uint32x4_t srcColsLo = simd2BppTo4Bpp(vget_low_u16(srcCols));
@@ -380,6 +382,7 @@ inline uint16x8_t blendPixelSIMD2Bpp(uint16x8_t srcCols, uint16x8_t destCols, ui
uint16x4_t hi = simd4BppTo2Bpp(blendTintSpriteSIMD(srcColsHi, destColsHi, alphasHi, _G(_blender_mode) == kTintLightBlenderMode));
return vcombine_u16(lo, hi);
}
+ return srcCols;
}
template<int DestBytesPerPixel, int SrcBytesPerPixel>
@@ -784,7 +787,7 @@ static void drawInner2Bpp(BITMAP::DrawInnerArgs &args) {
template<bool Scale>
static void drawInner1Bpp(BITMAP::DrawInnerArgs &args) {
const int xDir = args.horizFlip ? -1 : 1;
- uint8x16_t transColors = vld1q_dup_u8(&args.transColor);
+ uint8x16_t transColors = vmovq_n_u8(args.transColor);
// This is so that we can calculate in parralell the pixel indexes for scaled drawing
uint32x4_t scaleAdds1 = {0, (uint32)args.scaleX, (uint32)args.scaleX*2, (uint32)args.scaleX*3};
More information about the Scummvm-git-logs
mailing list