r200: port over state emit fix from r100
authorDave Airlie <airlied@redhat.com>
Fri, 13 Feb 2009 08:50:57 +0000 (18:50 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 13 Feb 2009 08:50:57 +0000 (18:50 +1000)
src/mesa/drivers/dri/r200/r200_state_init.c

index 1a13c9ec13db7b8fc85e3f7c2618e9e67a63b437..3165f7ec60850a9256b4ee6c174f4d20ebba15d9 100644 (file)
@@ -542,14 +542,16 @@ static void tex_emit(GLcontext *ctx, struct radeon_state_atom *atom)
    int i = atom->idx;
    radeonTexObj *t = r200->state.texture.unit[i].texobj;
 
+   if (t && t->mt && !t->image_override)
+     dwords += 2;
    BEGIN_BATCH_NO_AUTOSTATE(dwords);
    OUT_BATCH_TABLE(atom->cmd, 10);
    if (t && !t->image_override) {
      OUT_BATCH_RELOC(t->tile_bits, t->mt->bo, 0,
                     RADEON_GEM_DOMAIN_VRAM, 0, 0);
    } else if (!t) {
-
-     OUT_BATCH(atom->cmd[10]);
+     /* workaround for old CS mechanism */
+     OUT_BATCH(r200->radeon.radeonScreen->texOffset[RADEON_LOCAL_TEX_HEAP]);
    }
 
    END_BATCH();