diff options
author | Eric Anholt <anholt@freebsd.org> | 2004-07-22 07:03:04 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2004-07-22 07:03:04 +0000 |
commit | b68322f467b7e524092af15e33ab872abb99b6a2 (patch) | |
tree | ffa75b28faa26eceb50d9ed89c3b44fa95387f40 | |
parent | 57de5e285d6271fc4b2bc8a951a98be6308d649d (diff) |
Merge and resolve conflicts from DRI/DRM/Mesa 20040721 imports.
-rw-r--r-- | src/radeon_driver.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 786f6c2c..381a4844 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -4572,15 +4572,21 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) int bufferSize = ((pScrn->virtualY * width_bytes + RADEON_BUFFER_ALIGN) & ~RADEON_BUFFER_ALIGN); - int depthSize = ((((pScrn->virtualY+15) & ~15) * width_bytes - + RADEON_BUFFER_ALIGN) - & ~RADEON_BUFFER_ALIGN); + int depthSize; int l; int scanlines; info->frontOffset = 0; info->frontPitch = pScrn->displayWidth; + /* Due to tiling, the Z buffer pitch must be a multiple of 32 pixels, + * and its height a multiple of 16 lines. + */ + info->depthPitch = (pScrn->displayWidth + 31) & ~31; + depthSize = ((((pScrn->virtualY+15) & ~15) * info->depthPitch + * info->CurrentLayout.pixel_bytes + RADEON_BUFFER_ALIGN) + & ~RADEON_BUFFER_ALIGN); + switch (info->CPMode) { case RADEON_DEFAULT_CP_PIO_MODE: xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CP in PIO mode\n"); @@ -4671,7 +4677,6 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) info->depthOffset = ((info->textureOffset - depthSize + RADEON_BUFFER_ALIGN) & ~(CARD32)RADEON_BUFFER_ALIGN); - info->depthPitch = pScrn->displayWidth; /* Reserve space for the shared back buffer */ if (info->noBackBuffer) { |