---
 exa/exa.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/exa/exa.c b/exa/exa.c
index ecb2117..627f0da 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -427,11 +427,18 @@ exaModifyPixmapHeader(PixmapPtr pPixmap, int width, int 
height, int depth,
         if (devKind > 0)
             pExaPixmap->sys_pitch = devKind;
 
-       /* Is this the framebuffer (for classic exa)? */
-       if (pPixData && pPixData == pExaScr->info->memoryBase) {
-           pExaPixmap->fb_ptr = pPixData;
-           pExaPixmap->fb_pitch = devKind;
-           pExaPixmap->offscreen = TRUE;
+       /* Classic EXA:
+        * - Framebuffer.
+        * - Scratch pixmap with offscreen memory.
+        */
+       if (pExaScr->info->memoryBase && pPixData) {
+           if ((CARD8 *)pPixData >= pExaScr->info->memoryBase &&
+               (CARD8 *)pPixData < (pExaScr->info->memoryBase + 
pExaScr->info->memorySize)) {
+
+               pExaPixmap->fb_ptr = pPixData;
+               pExaPixmap->fb_pitch = devKind;
+               pExaPixmap->offscreen = TRUE;
+           }
        }
 
         if (width > 0 && height > 0 && bitsPerPixel > 0) {
-- 
1.6.2

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to