diff options
author | Keith Packard <keithp@keithp.com> | 2008-10-17 00:07:08 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2008-10-17 00:33:36 -0700 |
commit | c946383afc644ae7740e3c3146424fdd86c05285 (patch) | |
tree | 56d58dbbe3207f812bac6fd7d1563fbf714d4685 | |
parent | 871728a0cbba12579c830e67020cc0c69c1611bb (diff) |
XAA tiling support was mis-computing adjusted pitch (>>4 instead of >>2)
This may well explain why XAA never worked well on tiled front buffers;
tiled buffers require a different pitch programming on 965 than non-tiled
buffers, in dwords rather than bytes.
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r-- | src/i830_xaa.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/i830_xaa.c b/src/i830_xaa.c index c9c26b07..e5e849d2 100644 --- a/src/i830_xaa.c +++ b/src/i830_xaa.c @@ -314,7 +314,7 @@ I830SetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop, color, rop, planemask); if (IS_I965G(pI830) && I830CheckTiling(pScrn)) { - pI830->BR[13] = (pScrn->displayWidth * pI830->cpp) >> 4; + pI830->BR[13] = (pScrn->displayWidth * pI830->cpp) >> 2; } else { pI830->BR[13] = (pScrn->displayWidth * pI830->cpp); } @@ -385,7 +385,7 @@ I830SetupForScreenToScreenCopy(ScrnInfoPtr pScrn, int xdir, int ydir, int rop, xdir, ydir, rop, planemask, transparency_color); if (IS_I965G(pI830) && I830CheckTiling(pScrn)) { - pI830->BR[13] = (pScrn->displayWidth * pI830->cpp) >> 4; + pI830->BR[13] = (pScrn->displayWidth * pI830->cpp) >> 2; } else { pI830->BR[13] = (pScrn->displayWidth * pI830->cpp); } @@ -468,7 +468,7 @@ I830SetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int pattx, int patty, pI830->BR[19] = fg; if (IS_I965G(pI830) && I830CheckTiling(pScrn)) { - pI830->BR[13] = (pScrn->displayWidth * pI830->cpp) >> 4; + pI830->BR[13] = (pScrn->displayWidth * pI830->cpp) >> 2; } else { pI830->BR[13] = (pScrn->displayWidth * pI830->cpp); } @@ -565,7 +565,7 @@ I830SetupForScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, /* Fill out register values */ if (IS_I965G(pI830) && I830CheckTiling(pScrn)) { - pI830->BR[13] = (pScrn->displayWidth * pI830->cpp) >> 4; + pI830->BR[13] = (pScrn->displayWidth * pI830->cpp) >> 2; } else { pI830->BR[13] = (pScrn->displayWidth * pI830->cpp); } @@ -671,7 +671,7 @@ I830SetupForScanlineImageWrite(ScrnInfoPtr pScrn, int rop, /* Fill out register values */ if (IS_I965G(pI830) && I830CheckTiling(pScrn)) { - pI830->BR[13] = (pScrn->displayWidth * pI830->cpp) >> 4; + pI830->BR[13] = (pScrn->displayWidth * pI830->cpp) >> 2; } else { pI830->BR[13] = (pScrn->displayWidth * pI830->cpp); } |