radeon: fix r100/r200 compressed texture stride

This almost fixes compressed mipmapped textures on r200, though some small
mip levels are still broken.
Leave r300 compressed texture stride as is though afaik it's different
to pre-radeon-rewrite too. Also do the fixup for rs600 uncompressed row stride
at same place.
This commit is contained in:
Roland Scheidegger
2009-07-31 23:24:44 +02:00
parent 2730ee75c7
commit 801c3fcbca
2 changed files with 12 additions and 6 deletions
-5
View File
@@ -451,11 +451,6 @@ GLboolean r300CreateContext(const __GLcontextModes * glVisual,
r300InitState(r300);
r300InitShaderFunctions(r300);
if (screen->chip_family == CHIP_FAMILY_RS600 || screen->chip_family == CHIP_FAMILY_RS690 ||
screen->chip_family == CHIP_FAMILY_RS740) {
r300->radeon.texture_row_align = 64;
}
r300InitGLExtensions(ctx);
return GL_TRUE;
@@ -245,9 +245,20 @@ GLboolean radeonInitContext(radeonContextPtr radeon,
radeon->texture_row_align = 256;
radeon->texture_rect_row_align = 256;
radeon->texture_compressed_row_align = 256;
} else {
} else if (IS_R200_CLASS(radeon->radeonScreen) ||
IS_R100_CLASS(radeon->radeonScreen)) {
radeon->texture_row_align = 32;
radeon->texture_rect_row_align = 64;
radeon->texture_compressed_row_align = 32;
} else { /* R300 - not sure this is all correct */
int chip_family = radeon->radeonScreen->chip_family;
if (chip_family == CHIP_FAMILY_RS600 ||
chip_family == CHIP_FAMILY_RS690 ||
chip_family == CHIP_FAMILY_RS740)
radeon->texture_row_align = 64;
else
radeon->texture_row_align = 32;
radeon->texture_rect_row_align = 64;
radeon->texture_compressed_row_align = 64;
}