radeon exa/render bug?
Alex Deucher
alexdeucher at gmail.com
Sun Feb 12 15:28:52 PST 2006
On 2/12/06, John Clemens <john at deater.net> wrote:
>
> I think I found a buglet in radeon_exa_render.c:R100TextureSetup().
> Unless I'm waay too tired, the test for a bad texture offset should
> happen before we set the byte-swap and MACRO_TILE control bits. As
> it stands now, it looks like we always fall back if we have a Colortiling
> on, or a byte swapped texture format. Patch attached.
>
> But it doesn't solve my main issue. I'm looking at the ati driver for my
> iBook G3 (Radeon M6), trying to figure out what's causing corruption with
> EXA and Render acceleration. A tiny screenshot of the corruption can be
> seen here: https://bugs.freedesktop.org/attachment.cgi?id=4299 . The
> problem goes away if you turn off either render acceleration or EXA (or
> both). If anyone has any ideas, I'm all ears. Just please be patient,
> I've never worked on video drivers before, much less opengl.
>
> Also, I'm assuming that there's no way to use colortiling on linux/ppc?
> because we have to use 'UseFBDev' for mode switching?
>
Usefbdev is no longer required for radeon and r128 on ppc. turn it off
and make sure the "vgaaccess" option is set to true (default on PPC).
Alex
> thanks,
> john.c
>
> --
> John Clemens http://www.deater.net/john
> john at deater.net "I Hate Quotes" -- Samuel L. Clemens
>
>
>
> --- xf86-video-ati-6.5.7.3-orig/src/radeon_exa_render.c 2005-09-27 19:34:11.000000000 -0400
> +++ xf86-video-ati-6.5.7.3/src/radeon_exa_render.c 2006-02-12 02:54:37.000000000 -0500
> @@ -223,6 +223,11 @@
> txpitch = exaGetPixmapPitch(pPix);
> txoffset = exaGetPixmapOffset(pPix) + info->fbLocation;
>
> + if ((txoffset & 0x1f) != 0)
> + RADEON_FALLBACK(("Bad texture offset 0x%x\n", (int)txoffset));
> + if ((txpitch & 0x1f) != 0)
> + RADEON_FALLBACK(("Bad texture pitch 0x%x\n", (int)txpitch));
> +
> for (i = 0; i < sizeof(R100TexFormats) / sizeof(R100TexFormats[0]); i++)
> {
> if (R100TexFormats[i].fmt == pPict->format)
> @@ -241,11 +246,6 @@
> txformat |= RADEON_TXFORMAT_NON_POWER2;
> txformat |= unit << 24; /* RADEON_TXFORMAT_ST_ROUTE_STQX */
>
> - if ((txoffset & 0x1f) != 0)
> - RADEON_FALLBACK(("Bad texture offset 0x%x\n", (int)txoffset));
> - if ((txpitch & 0x1f) != 0)
> - RADEON_FALLBACK(("Bad texture pitch 0x%x\n", (int)txpitch));
> -
> switch (pPict->filter) {
> case PictFilterNearest:
> txfilter = (RADEON_MAG_FILTER_NEAREST | RADEON_MIN_FILTER_NEAREST);
More information about the xorg
mailing list