From 03abaf1aeeec47f59302f89bd519a42b3490f70d Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Wed, 15 Feb 2017 11:56:50 +0100 Subject: [PATCH] Align scanline to multiple of 16, required for ASM --- client/X11/xf_gfx.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/client/X11/xf_gfx.c b/client/X11/xf_gfx.c index 9b22905..1e47194 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; } -- 2.7.4