Align scanline to multiple of 16, required for ASM
@@ -176,8 +176,9 @@ UINT xf_OutputExpose(xfContext* xfc, UINT32 x, UINT32 y,
return status;
}
-static INLINE UINT32 x11_pad_scanline(UINT32 scanline, UINT32 inPad)
+UINT32 x11_pad_scanline(UINT32 scanline, UINT32 inPad)
{
+ /* Ensure X11 alignment is met */
if (inPad > 0)
{
const UINT32 align = inPad / 8;
@@ -187,6 +188,10 @@ static INLINE UINT32 x11_pad_scanline(UINT32 scanline, UINT32 inPad)
scanline += pad;
}
+ /* 16 byte alingment is required for ASM optimized code */
+ if (scanline % 16)
+ scanline += 16 - scanline % 16;
+
return scanline;
}
