summaryrefslogtreecommitdiff
path: root/src/i830_xaa.c
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2007-03-05 13:05:20 +0100
committerMichel Dänzer <michel@tungstengraphics.com>2007-03-05 13:05:20 +0100
commit330815251dee808754b328cd2fd60db39f2460eb (patch)
tree13a4831687d37f3a34b0835b34cb48374346617f /src/i830_xaa.c
parent50ba1fff886a7f51b178ac6d3a1ba79a3014b214 (diff)
parent015027034e970f1e3bb6ab239f7e0119235e404f (diff)
Merge remote branch 'origin/master' into i830-pageflip
Conflicts: src/i830.h src/i830_dri.c src/i830_dri.h src/i830_driver.c src/i830_memory.c src/i830_xaa.c
Diffstat (limited to 'src/i830_xaa.c')
-rw-r--r--src/i830_xaa.c33
1 files changed, 21 insertions, 12 deletions
diff --git a/src/i830_xaa.c b/src/i830_xaa.c
index 9b11973f..46ea7ecb 100644
--- a/src/i830_xaa.c
+++ b/src/i830_xaa.c
@@ -162,20 +162,20 @@ I830XAAInit(ScreenPtr pScreen)
/* On the primary screen */
if (pI830->init == 0) {
- if (pI830->Scratch.Size != 0) {
+ if (pI830->xaa_scratch->size != 0) {
width = ((pScrn->displayWidth + 31) & ~31) / 8;
- nr_buffers = pI830->Scratch.Size / width;
- ptr = pI830->FbBase + pI830->Scratch.Start;
+ nr_buffers = pI830->xaa_scratch->size / width;
+ ptr = pI830->FbBase + pI830->xaa_scratch->offset;
}
} else {
/* On the secondary screen */
I830Ptr pI8301 = I830PTR(pI830->entityPrivate->pScrn_1);
- if (pI8301->Scratch2.Size != 0) {
+ if (pI8301->xaa_scratch_2->size != 0) {
width = ((pScrn->displayWidth + 31) & ~31) / 8;
- nr_buffers = pI8301->Scratch2.Size / width;
+ nr_buffers = pI8301->xaa_scratch_2->size / width;
/* We have to use the primary screen's FbBase, as that's where
- * we allocated Scratch2, so we get the correct pointer */
- ptr = pI8301->FbBase + pI8301->Scratch2.Start;
+ * we allocated xaa_scratch_2, so we get the correct pointer */
+ ptr = pI8301->FbBase + pI8301->xaa_scratch_2->offset;
}
}
@@ -279,13 +279,22 @@ CheckTiling(ScrnInfoPtr pScrn)
if (IS_I965G(pI830)) {
if (pI830->bufferOffset == pScrn->fbOffset && pI830->front_tiled == FENCE_XMAJOR)
tiled = 1;
- if (pI830->bufferOffset == pI830->BackBuffer.Start && pI830->back_tiled == FENCE_XMAJOR)
+ if (pI830->back_buffer != NULL &&
+ pI830->bufferOffset == pI830->back_buffer->offset &&
+ pI830->back_tiled == FENCE_XMAJOR) {
tiled = 1;
- if (pI830->bufferOffset == pI830->ThirdBuffer.Start && pI830->third_tiled == FENCE_XMAJOR)
+ }
+ if (pI830->third_buffer != NULL &&
+ pI830->bufferOffset == pI830->third_buffer->offset &&
+ pI830->third_tiled == FENCE_XMAJOR) {
tiled = 1;
+ }
/* not really supported as it's always YMajor tiled */
- if (pI830->bufferOffset == pI830->DepthBuffer.Start && pI830->depth_tiled == FENCE_XMAJOR)
+ if (pI830->depth_buffer != NULL &&
+ pI830->bufferOffset == pI830->depth_buffer->offset &&
+ pI830->depth_tiled == FENCE_XMAJOR) {
tiled = 1;
+ }
}
return tiled;
@@ -602,7 +611,7 @@ I830SubsequentColorExpandScanline(ScrnInfoPtr pScrn, int bufno)
I830Ptr pI8301 = I830PTR(pI830->entityPrivate->pScrn_1);
/* We have to use the primary screen's FbBase, as that's where
- * we allocated Scratch2, so we get the correct pointer */
+ * we allocated xaa_scratch_2, so we get the correct pointer */
pI830->BR[12] = (pI830->AccelInfoRec->ScanlineColorExpandBuffers[0] -
pI8301->FbBase);
}
@@ -702,7 +711,7 @@ I830SubsequentImageWriteScanline(ScrnInfoPtr pScrn, int bufno)
I830Ptr pI8301 = I830PTR(pI830->entityPrivate->pScrn_1);
/* We have to use the primary screen's FbBase, as that's where
- * we allocated Scratch2, so we get the correct pointer */
+ * we allocated xaa_scratch_2, so we get the correct pointer */
pI830->BR[12] = (pI830->AccelInfoRec->ScanlineColorExpandBuffers[0] -
pI8301->FbBase);
}