Module Name: xsrc
Committed By: macallan
Date: Sat Dec 10 07:23:38 UTC 2016
Modified Files:
xsrc/external/mit/xf86-video-glint/dist/src: pm2_exa.c pm3_exa.c
Log Message:
make sure to hand EXA only whole scanlines of off-screen memory
( wait a minute, that sounds familiar... )
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
xsrc/external/mit/xf86-video-glint/dist/src/pm2_exa.c \
xsrc/external/mit/xf86-video-glint/dist/src/pm3_exa.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: xsrc/external/mit/xf86-video-glint/dist/src/pm2_exa.c
diff -u xsrc/external/mit/xf86-video-glint/dist/src/pm2_exa.c:1.2 xsrc/external/mit/xf86-video-glint/dist/src/pm2_exa.c:1.3
--- xsrc/external/mit/xf86-video-glint/dist/src/pm2_exa.c:1.2 Sat Dec 10 07:11:58 2016
+++ xsrc/external/mit/xf86-video-glint/dist/src/pm2_exa.c Sat Dec 10 07:23:38 2016
@@ -264,7 +264,7 @@ Pm2InitEXA(ScreenPtr pScreen)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
GLINTPtr pGlint = GLINTPTR(pScrn);
ExaDriverPtr pExa;
- int stride;
+ int stride, lines;
ENTER;
@@ -279,7 +279,8 @@ Pm2InitEXA(ScreenPtr pScreen)
pExa->memoryBase = pGlint->FbBase;
stride = pScrn->displayWidth * (pScrn->bitsPerPixel >> 3);
- pExa->memorySize = min(pGlint->FbMapSize, 2047 * stride);
+ lines = min(pGlint->FbMapSize / stride, 2047);
+ pExa->memorySize = lines * stride;
DPRINTF(X_ERROR, "stride: %d\n", stride);
DPRINTF(X_ERROR, "pprod: %08x\n", pGlint->pprod);
pExa->offScreenBase = stride * pScrn->virtualY;
@@ -288,9 +289,7 @@ Pm2InitEXA(ScreenPtr pScreen)
pExa->pixmapOffsetAlign = stride;
pExa->pixmapPitchAlign = stride;
- pExa->flags = EXA_OFFSCREEN_PIXMAPS
- /* | EXA_SUPPORTS_OFFSCREEN_OVERLAPS |*/
- | EXA_MIXED_PIXMAPS;
+ pExa->flags = EXA_OFFSCREEN_PIXMAPS;
pExa->maxX = 2048;
pExa->maxY = 2048;
Index: xsrc/external/mit/xf86-video-glint/dist/src/pm3_exa.c
diff -u xsrc/external/mit/xf86-video-glint/dist/src/pm3_exa.c:1.2 xsrc/external/mit/xf86-video-glint/dist/src/pm3_exa.c:1.3
--- xsrc/external/mit/xf86-video-glint/dist/src/pm3_exa.c:1.2 Fri Dec 2 23:16:07 2016
+++ xsrc/external/mit/xf86-video-glint/dist/src/pm3_exa.c Sat Dec 10 07:23:38 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: pm3_exa.c,v 1.2 2016/12/02 23:16:07 macallan Exp $ */
+/* $NetBSD: pm3_exa.c,v 1.3 2016/12/10 07:23:38 macallan Exp $ */
/*
* Copyright (c) 2016 Michael Lorenz
@@ -308,7 +308,7 @@ Pm3InitEXA(ScreenPtr pScreen)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
GLINTPtr pGlint = GLINTPTR(pScrn);
ExaDriverPtr pExa;
- int stride;
+ int stride, lines;
ENTER;
@@ -323,7 +323,8 @@ Pm3InitEXA(ScreenPtr pScreen)
pExa->memoryBase = pGlint->FbBase;
stride = pScrn->displayWidth * (pScrn->bitsPerPixel >> 3);
- pExa->memorySize = min(pGlint->FbMapSize, 4095 * stride);
+ lines = min(pGlint->FbMapSize / stride, 4095);
+ pExa->memorySize = lines * stride;
xf86Msg(X_ERROR, "stride: %d\n", stride);
pExa->offScreenBase = stride * pScrn->virtualY;
@@ -331,9 +332,7 @@ Pm3InitEXA(ScreenPtr pScreen)
pExa->pixmapOffsetAlign = stride;
pExa->pixmapPitchAlign = stride;
- pExa->flags = EXA_OFFSCREEN_PIXMAPS
- /* | EXA_SUPPORTS_OFFSCREEN_OVERLAPS |*/
- | EXA_MIXED_PIXMAPS;
+ pExa->flags = EXA_OFFSCREEN_PIXMAPS;
pExa->maxX = 4095;
pExa->maxY = 4095;