[R300-commit] r300_driver/r300 r300_state.c,1.118,1.119 radeon_ioctl.c,1.3,1.4
Brought to you by:
volodya
From: Aapo T. <aa...@us...> - 2005-06-30 04:37:28
|
Update of /cvsroot/r300/r300_driver/r300 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9208 Modified Files: r300_state.c radeon_ioctl.c Log Message: -"fix" page flipping -use depth tiling if tiling is enabled Index: radeon_ioctl.c =================================================================== RCS file: /cvsroot/r300/r300_driver/r300/radeon_ioctl.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- radeon_ioctl.c 24 Apr 2005 09:08:32 -0000 1.3 +++ radeon_ioctl.c 30 Jun 2005 04:37:19 -0000 1.4 @@ -48,6 +48,7 @@ #include "r300_ioctl.h" #include "r200_tcl.h" #include "r200_sanity.h" +#include "r300_state.h" #include "radeon_reg.h" #include "vblank.h" @@ -237,6 +238,8 @@ if (IS_FAMILY_R200(radeon)) R200_FIREVERTICES((r200ContextPtr)radeon); + else + r300Flush(radeon->glCtx); LOCK_HARDWARE(radeon); if (!dPriv->numClipRects) { @@ -295,6 +298,21 @@ + radeon->radeonScreen->fbLocation; r200->hw.ctx.cmd[CTX_RB3D_COLORPITCH] = radeon->state.color.drawPitch; } + if (IS_FAMILY_R300(radeon)) { + r300ContextPtr r300 = (r300ContextPtr)radeon; + R300_STATECHANGE(r300, cb); + r300->hw.cb.cmd[R300_CB_OFFSET] = r300->radeon.state.color.drawOffset + + r300->radeon.radeonScreen->fbLocation; + r300->hw.cb.cmd[R300_CB_PITCH] = r300->radeon.state.color.drawPitch; + + if (r300->radeon.radeonScreen->cpp == 4) + r300->hw.cb.cmd[R300_CB_PITCH] |= R300_COLOR_FORMAT_ARGB8888; + else + r300->hw.cb.cmd[R300_CB_PITCH] |= R300_COLOR_FORMAT_RGB565; + + if (r300->radeon.sarea->tiling_enabled) + r300->hw.cb.cmd[R300_CB_PITCH] |= R300_COLOR_TILE_ENABLE; + } } void radeonWaitForIdleLocked(radeonContextPtr radeon) Index: r300_state.c =================================================================== RCS file: /cvsroot/r300/r300_driver/r300/r300_state.c,v retrieving revision 1.118 retrieving revision 1.119 diff -u -d -r1.118 -r1.119 --- r300_state.c 27 Jun 2005 15:56:15 -0000 1.118 +++ r300_state.c 30 Jun 2005 04:37:19 -0000 1.119 @@ -2142,18 +2142,9 @@ r300->hw.unk4E10.cmd[3] = 0; /* Again, r300ClearBuffer uses this */ - if (ctx->Visual.doubleBufferMode) { - r300->hw.cb.cmd[R300_CB_OFFSET] = - r300->radeon.radeonScreen->backOffset + - r300->radeon.radeonScreen->fbLocation; - r300->hw.cb.cmd[R300_CB_PITCH] = r300->radeon.radeonScreen->backPitch; - } else { - r300->hw.cb.cmd[R300_CB_OFFSET] = - r300->radeon.radeonScreen->frontOffset + - r300->radeon.radeonScreen->fbLocation; - r300->hw.cb.cmd[R300_CB_PITCH] = r300->radeon.radeonScreen->frontPitch; - - } + r300->hw.cb.cmd[R300_CB_OFFSET] = r300->radeon.state.color.drawOffset + + r300->radeon.radeonScreen->fbLocation; + r300->hw.cb.cmd[R300_CB_PITCH] = r300->radeon.state.color.drawPitch; if (r300->radeon.radeonScreen->cpp == 4) r300->hw.cb.cmd[R300_CB_PITCH] |= R300_COLOR_FORMAT_ARGB8888; @@ -2198,7 +2189,15 @@ r300->radeon.radeonScreen->depthOffset + r300->radeon.radeonScreen->fbLocation; r300->hw.zb.cmd[R300_ZB_PITCH] = r300->radeon.radeonScreen->depthPitch; - + + if (r300->radeon.sarea->tiling_enabled) { + /* Turn off when clearing buffers ? */ + r300->hw.zb.cmd[R300_ZB_PITCH] |= R300_DEPTH_TILE_ENABLE; + + if (ctx->Visual.depthBits == 24) + r300->hw.zb.cmd[R300_ZB_PITCH] |= R300_DEPTH_MICROTILE_ENABLE; + } + r300->hw.unk4F28.cmd[1] = 0; r300->hw.unk4F30.cmd[1] = 0; |