r300: make ste text buffer work with > 2048 on r500
authorDave Airlie <airlied@redhat.com>
Fri, 27 Feb 2009 04:03:30 +0000 (14:03 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 27 Feb 2009 04:04:03 +0000 (14:04 +1000)
src/mesa/drivers/dri/r300/r300_texstate.c

index f5b41180f795d93d5f9aef45584dba25199e67d5..8a90069a6d0b72ecbc317c2800f327574001fdc7 100644 (file)
@@ -484,6 +484,13 @@ void r300SetTexBuffer(__DRIcontext *pDRICtx, GLint target, __DRIdrawable *dPriv)
               ((rb->height - 1) << R300_TX_HEIGHTMASK_SHIFT);
        t->pp_txsize |= R300_TX_SIZE_TXPITCH_EN;
        t->pp_txpitch |= pitch_val;
+
+       if (rmesa->radeon.radeonScreen->chip_family >= CHIP_FAMILY_RV515) {
+           if (rb->width > 2048)
+               t->pp_txpitch |= R500_TXWIDTH_BIT11;
+           if (rb->height > 2048)
+               t->pp_txpitch |= R500_TXHEIGHT_BIT11;
+       }
        t->validated = GL_TRUE;
        _mesa_unlock_texture(radeon->glCtx, texObj);
        return;