diff --git a/client/X11/xf_gfx.c b/client/X11/xf_gfx.c index 9b229055d..1e4719489 100644 --- a/client/X11/xf_gfx.c +++ b/client/X11/xf_gfx.c @@ -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; }