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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user