diff options
-rw-r--r-- | src/mesa/drivers/glide/fxddspan.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mesa/drivers/glide/fxddspan.c b/src/mesa/drivers/glide/fxddspan.c index 8939b1eea6..c6fcb2ea2e 100644 --- a/src/mesa/drivers/glide/fxddspan.c +++ b/src/mesa/drivers/glide/fxddspan.c @@ -370,10 +370,14 @@ static void read_R5G6B5_span(const GLcontext *ctx, &info)) { const GLint winX = fxMesa->x_offset; const GLint winY = fxMesa->y_offset + fxMesa->height - 1; - const GLint dstStride = (fxMesa->glCtx->Color.DrawBuffer == GL_FRONT) +#ifdef XF86DRI + const GLint srcStride = (fxMesa->glCtx->Color.DrawBuffer == GL_FRONT) ? (fxMesa->screen_width) : (info.strideInBytes / 2); +#else + const GLint srcStride = info.strideInBytes / 2; /* stride in GLushorts */ +#endif const GLushort *data16 = (const GLushort *) info.lfbPtr - + (winY - y) * dstStride + + (winY - y) * srcStride + (winX + x); const GLuint *data32 = (const GLuint *) data16; GLuint i, j; |