Bug 1424 - Font rendering glitches w/ acceleration
Summary: Font rendering glitches w/ acceleration
Status: CLOSED WONTFIX
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: 6.8.0
Hardware: x86 (IA32) Linux (All)
: high major
Assignee: Matthias Hopf
QA Contact:
URL:
Whiteboard:
Keywords: patch, regression
Depends on:
Blocks: xorg-7.2
  Show dependency treegraph
 
Reported: 2004-09-20 01:37 UTC by Giacomo Perale
Modified: 2007-11-22 04:19 UTC (History)
13 users (show)

See Also:
i915 platform:
i915 features:


Attachments
[FIXED_X11R68x] Patch for pre-rendering small textures for Render Acceleration on R100 (5.98 KB, patch)
2004-11-02 08:57 UTC, Matthias Hopf
roland.mainz: 6.8-branch+
Details | Splinter Review
Patch for x11perf to perform single character output tests (3.73 KB, patch)
2004-11-02 09:01 UTC, Matthias Hopf
no flags Details | Splinter Review
Non-working patch using purge+wait only (1.35 KB, patch)
2004-11-30 03:31 UTC, Matthias Hopf
no flags Details | Splinter Review
Non-working patch using even more purge+wait (990 bytes, patch)
2004-11-30 03:48 UTC, Matthias Hopf
no flags Details | Splinter Review
Non-working patch, purge+wait moved to begin of ring output (954 bytes, patch)
2004-11-30 07:59 UTC, Matthias Hopf
no flags Details | Splinter Review
Workaround for R100/RV200 font rendering problems for 6.8.2 branch (1.50 KB, patch)
2005-03-21 20:14 UTC, Kevin E. Martin
no flags Details | Splinter Review
Workaround for R100/RV200 font rendering problems on HEAD (411 bytes, patch)
2005-03-22 08:39 UTC, Kevin E. Martin
no flags Details | Splinter Review
Solution #1 for R100/RV200 font rendering on 6.8 branch (916 bytes, patch)
2005-04-04 08:14 UTC, Kevin E. Martin
no flags Details | Splinter Review
Solution #2 for R100/RV200 font rendering on 6.8 branch (1.50 KB, patch)
2005-04-04 08:16 UTC, Kevin E. Martin
no flags Details | Splinter Review
Workaround for R100/RV200 font rendering on HEAD #2 (804 bytes, patch)
2005-04-12 09:11 UTC, Kevin E. Martin
no flags Details | Splinter Review

Description Giacomo Perale 2004-09-20 01:37:45 UTC
After upgrading to xorg 6.8.0 (installed with Gentoo ebuild) I noticed some
graphic glitches in font rendering, and yesterday casually I've discovered that
they are caused by Render Acceleration, and they disappear if I set Option
"RenderAccel" "Off" in my xorg.conf. I have a Radeon 7500 (detected as ATI
Radeon 7500 QW (AGP/PCI)).
Here are some screenshots that show the problem, especially manifest with Ximian
Openoffice but it affects with minor evidence almost every other gtk2
application (mainly black vertical 1-pixel wide lines on the right side of the
types). 

glitches (Bitstream Vera Sans, ttf, size 8): 
http://ghepeu.altervista.org/immagini/fuffa/font-no.jpg

same window with RenderAccel off:
http://ghepeu.altervista.org/immagini/fuffa/font-ok.jpg

glitches (Luxi Sans, type 1, size 9):
http://ghepeu.altervista.org/immagini/fuffa/font-no2.jpg
Comment 1 Matthias Hopf 2004-10-08 05:30:35 UTC
Same here for Radeon 7500 (RV200 QW). Seems to be happening with only this 
specific chip. The chip seems to mostly be R100 compatible (the R200 code path 
does not work at all).

Glitches on e.g. with Bitstream Vera Sans Mono in konsole.
I also noticed glitches in several applications with smooth scrolling. As soon 
as you scroll a pixel at a time, the new lines are sometimes distorted. Often 
this does not happen, when you scroll larger chunks.
Comment 2 Matthias Hopf 2004-10-26 06:31:48 UTC
Seems to be specific for the R100 rendering path, not for the chip. I get the 
same distortions for a R100 QD (Radeon 7200).
Comment 3 Joseph Antrosio 2004-10-28 13:52:11 UTC
I can confirm this bug as well. I am running X.org 6.8.0 also from Gentoo
e-build.    My applicable hardware is: ATI Technologies Inc Radeon Mobility M7
LW [Radeon Mobility 7500]
Comment 4 Matthias Hopf 2004-11-02 08:51:38 UTC
Ok, more info (just that so this is not lost):

It seems that the GPU does not fetch the new texture but uses its texture cache
until a sufficiently large (whatever that is) primitive is rendered.

I added a texture buffer ring so that no consecutive textures are stored into 
the same part of the video memory - with no effect.

I increased the minimum loaded texture size to 64x64 - with no effect.

I increased the minimum *drawn* texture to 64x8 -> everything looks all right!

Unfortunately, this is no solution, as the render system just has to be able to 
draw smaller parts of the texture. E.g. if I fix it for scrolling up (which I 
did by adding transparent lines below the current texture), I cannot use the 
same texture for scrolling down. And even if I fix both, it is possible that 
only a small span of the middle of the texture has to be rendered.

Two possible sollutions:
a) There must be some command like 'fetch the texture. do it now.'
b) For small textures draw a large version into a off-screen frame buffer before 
using it. This may sound horribly complicated or slow, but it shouldn't be.
However, the size of the texture that has to be drawn is some magic constant..
Comment 5 Matthias Hopf 2004-11-02 08:57:59 UTC
Created attachment 1209 [details] [review]
[FIXED_X11R68x] Patch for pre-rendering small textures for Render Acceleration on R100

This patch adds pre-rendering of small textures to the R100 code path. They are

rendered to off-screen memory in order to invalidate the texture cache.

Note that this has to be dicussed before inclusion into mainline, because it
still is some sort of hack. The correct way to deal with the situation would be
to invalidate the texture cache without rendering large texture splats. If
anybody knows how to do this on R100, please respond!

The performance hit is measurable, but text output is still much faster than
w/o using RenderAccel, even for small regions (e.g. single chars).
Performance meassurement pending.

Note that the code relys on magic constants (in the top of the source) that
need to be verified, as they might depend on too many constraints for me to
test them all. So far verified with RV200 on 1024x768 with 2 different CPUs.

Please test, and if you still encounter glitches, feel free to change the
constants and add your values to this bugzilla entry.
Comment 6 Matthias Hopf 2004-11-02 09:01:40 UTC
Created attachment 1210 [details] [review]
Patch for x11perf to perform single character output tests

Performance results:

				   RV200/PII@400MHz   RV200/AMD64@2000Mhz
x11perf -rgbftext (80 chars output)
  RenderAccel w/o Patch 		80.900/s	   345.000/s
  RenderAccel w/ Patch			80.900/s	   345.000/s
  w/o RenderAccel			16.200/s	    37.400/s
x11perf -srgbftext (singel char output)
  RenderAccel w/o Patch 		10.200/s	    65.200/s
  RenderAccel w/ Patch			 9.450/s	    54.300/s
  w/o RenderAccel			 8.500/s	    31.100/s

So we get a perfomance loss of 20% in the worst case on the fast machine, which

is not too bad thinking about what I have to do here...
We still get the full speedup for large rendering areas, and that is where 
RenderAccel really shines =)

Seems that I do not understand this bugzilla config correctly - wanted to
accept the bug, but it is still assigned to xorg-bugzilla-noise. Sigh.

Any comments so far?
Comment 7 Roland Scheidegger 2004-11-05 07:07:43 UTC
Have you tried adding a RADEON_FLUSH_CACHE() and maybe a
RADEON_WAIT_UNTIL_IDLE() to R100SetupTexture? This is what the drm module does
when uploading textures. It seems more related to texture blit though as far as
I can see, but it might be worth a try.
(briefly looking at the code, I'm wondering why r100 uses linear filtering, but
r200 uses nearest. Doesn't look to be related though...)
Comment 8 Matthias Hopf 2004-11-05 07:37:29 UTC
I tried RADEON_WAIT_UNITL_IDLE but seem to just have missed the
RADEON_FLUSH_CACHE... I'll try, thanks!

I found that bilinear vs. nearest neighbor thing as well (especially the DMA and
IO routines differ here as well!), and fixed that in my local sources, but
forgot that fix.
Comment 9 Matthias Hopf 2004-11-08 06:26:33 UTC
Stupid me that I overlooked those...

However, even a PURGE followed by a WAIT_IDLE as in

    OUT_ACCEL_REG(RADEON_RB2D_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
    OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_2D_IDLECLEAN |
RADEON_WAIT_3D_IDLECLEAN | RADEON_WAIT_HOST_IDLECLEAN);

does not help. The patterns only go away if pre-rendering is active. I do not
see any further possibilities to flush the cache, but then I didn't noice this
one either :-/
Comment 10 Michel Dänzer 2004-11-29 22:34:22 UTC
Where and how exactly did you add the purge? Do you have a patch for that?
Comment 11 Matthias Hopf 2004-11-30 02:24:10 UTC
No, I don't have a patch for that right now (could create one, though). I added
the two lines above immedeately after texture setup (both routines) and addapted
the BEGIN_ACCEL() sizes.
Comment 12 Matthias Hopf 2004-11-30 03:31:08 UTC
Created attachment 1427 [details] [review]
Non-working patch using purge+wait only

This is the patch using purge + wait after texture initialization. This does
NOT fix the rendering artifacts.
Comment 13 Matthias Hopf 2004-11-30 03:48:54 UTC
Created attachment 1428 [details] [review]
Non-working patch using even more purge+wait

Doing even more purge + wait. Still, we do not get rid of the artifacts.
Comment 14 Michel Dänzer 2004-11-30 07:42:59 UTC
Well, the EngineFlush and WaitForFifo certainly don't make sense there, at least
not with DRI enabled. I guess it doesn't make a difference either if you put the
register writes right after the BEGIN_ACCEL()?
Comment 15 Matthias Hopf 2004-11-30 07:59:06 UTC
Created attachment 1429 [details] [review]
Non-working patch, purge+wait moved to begin of ring output

I agree that these calls don't make sense, I just added everything I could
imagine to rule out subtle side effects.

No, it does not make any difference to move the flush at the begin of the ring
command set.
Comment 16 Egbert Eich 2005-01-12 07:23:58 UTC
Render acceleration is really relevant to get decend performance for anti
aliased font rendering etc. Therefore this issue should be addressed. It is sad
that we don't see a resolution here. Unless we get help to find a better
solution we need the workaround that Matthias suggests.

Comment 17 Anton Markov 2005-01-12 17:19:26 UTC
I don't know if the patch that Matthias created was committed to CVS or not, but
with Xorg 6.8.2RC1 the artifacts have disappeared, at least for me.

Can anyone else confirm this? 
Comment 18 Giacomo Perale 2005-01-12 17:30:05 UTC
I still can notice them with RC1.
Comment 19 Michel Dänzer 2005-01-12 18:52:56 UTC
Incidentally, has anybody tried whether this still occurs (or whether RENDER
acceleration still works at all...) with current HEAD, which uses DMA for
transferring the RENDER texture data to the framebuffer?
Comment 20 Anton Markov 2005-01-15 21:28:29 UTC
(In reply to comment #18)
> I still can notice them with RC1.

Incidently, I did notice some artifacts shortly after I submitted the comment :(

However, they seem very rare (mostly appearing is applications like
OpenOffice.org; GTK and QT apps are less prone to these glitches). I am running
6.8.2RC2 now and haven't noticed any today. This is certainly an improvement,
even without Matthias's patch.

I've tried applying Matthias's patch, and I noticed that while there is no
performance impact during normal use, running xcompmgr is _really slow_.
Scrolling lags by ~1 second in full-screen windows, and windows move in steps.

Fortunately, xcompmgr seems to eliminate most of the glitches, so the moral of
the story is to use either the patch or xcompmgr but not both. We just need to
make sure the patch can be disabled if it ever gets commited. 

Overall though, I would recommend trying the 6.8.2RC2 release to eliminate many
font glitches and xcompmgr bugs.

Comment 21 Egbert Eich 2005-01-17 03:03:39 UTC
I assume that it still apears in pre 6.8.2. We should consider applying the
patch there.
Also someone should test if it also exists in HEAD - since the driver has been
modified considerably.
I'll nominate the patch for 6.8.2.
Comment 22 Matthias Hopf 2005-01-17 03:27:06 UTC
I wanted to test this on Friday, but currently building static Xservers seems to
be broken.
This is currently discussed on xorg.

AFAI can see the bug should still show up. There is no code change in the driver
that could make a difference here. I want to test the slowdown Anton has
reported as well, as I do not understand them. xcompmgr should work with rather
large textures, so it shouldn't be affected by the patch at all!
Comment 23 Michel Dänzer 2005-01-17 08:04:58 UTC
(In reply to comment #22)
> I wanted to test this on Friday, but currently building static Xservers seems to
> be broken.

Try a non-static server then? :) You can even build the HEAD driver against an
otherwise 6.8 tree and try that.

> AFAI can see the bug should still show up. There is no code change in the driver
> that could make a difference here. 

It only uses a completely different method for uploading the texture data... ;)
(with DRI enabled)

> I want to test the slowdown Anton has reported as well, as I do not understand
> them. xcompmgr should work with rather large textures, so it shouldn't be
> affected by the patch at all!

Well, your patch does increase the bandwidth usage by an amount that corresponds
to the texture size, doesn't it? Then again, xcompmgr is slow even without the
patch due to shortcomings in XAA.
Comment 24 Matthias Hopf 2005-01-17 09:38:21 UTC
> > I wanted to test this on Friday, but currently building static Xservers seems to
> > be broken.
> Try a non-static server then? :) You can even build the HEAD driver against an
> otherwise 6.8 tree and try that.

Ok, but I wanted to debug a bit and that is rather - err - wearisome to
do with a dynamic one. Also there are a couple of other things to do here as well ;)

> > AFAI can see the bug should still show up. There is no code change in the driver
> > that could make a difference here. 
> It only uses a completely different method for uploading the texture data... ;)
> (with DRI enabled)

The bug showed up with and w/o DRI enabled. So at least in one case it
should still be present. But you're right, I somehow overlooked the texture upload.

> > I want to test the slowdown Anton has reported as well, as I do not understand
> > them. xcompmgr should work with rather large textures, so it shouldn't be
> > affected by the patch at all!
> 
> Well, your patch does increase the bandwidth usage by an amount that corresponds
> to the texture size, doesn't it? Then again, xcompmgr is slow even without the

Only if the patch to be rendered is small enough (TM).
Comment 25 Matthias Hopf 2005-01-20 11:06:39 UTC
Ok, tested it a bit, and with DRI enabled the next texture loading method seems
to work fine. So - as far as I am concerned - the patch is not necessary in that
case. Thanks, Michael!

w/o DRI the rendering bug still shows up. Michael, is the new texture uploading
routine usable without DRI as well, or shall I adapt my patch for the non-DRI
case only?

Anton, can you verify that you still get any glitches, and if this is the case
verify that you have DRI enabled?
Comment 26 Michel Dänzer 2005-01-20 11:25:46 UTC
You're welcome, Matthias, even though you (like so many others before) didn't
spell my name correctly. ;)

Glad to hear the new upload method works fine. Hostdata blits could also be used
with DRI disabled, I'm not sure how that will perform, but I hope it won't be
worse than the workaround.

Matthias' workaround should probably be applied to the 6.8 branch only for now?
Comment 27 Matthias Hopf 2005-01-21 03:56:36 UTC
> You're welcome, Matthias, even though you (like so many others before) didn't
> spell my name correctly. ;)

*Blush*
I should know because I'm written in the wrong way often as well. How embarrassing.

> Glad to hear the new upload method works fine. Hostdata blits could also be used
> with DRI disabled, I'm not sure how that will perform, but I hope it won't be
> worse than the workaround.

I guess it won't ;)

> Matthias' workaround should probably be applied to the 6.8 branch only for now?

Actually I would opt for changing the driver in 6.8.2. This seems to be stable
and I'm not really happy with my workaround either.
Having glitches w/ DRI disabled (but RenderAccel enabled, strange combination)
is not too problematic I think, so changing this code path can be something for
CVS head only.
Comment 28 Matthias Hopf 2005-01-24 09:37:53 UTC
After a discussion with Egbert:

As it seems we don't get the new driver with DMA texture upload into 6.8.2. In
this case I would opt for inclusion of this patch into 6.8.2. It reduces
performance of render, but it is not really useable w/o.

I have to check it against xcompmgr, and if I find the same drawbacks as Anton,
I might have to add a switch to turn it off. Maybe I can find out why it slows
down rendering (it shouldn't in this case). I'll do this tomorrow.

I was asked, why I calculate the size of the off-screen render area by
pScrn->displayWidth * MAGIC_R100_MIN_TEX_HEIGHT: I didn't want to alter
destination pitch for predraw, so the off-screen area has to be larger than the
chunk that is actually drawn.
Comment 29 Roland Mainz 2005-01-24 19:09:20 UTC
Comment on attachment 1209 [details] [review]
[FIXED_X11R68x] Patch for pre-rendering small textures for Render Acceleration on R100

I am going to push this patch into the upcoming release canidate to get more
extensive testing. We can still rip it out if it causes any problems (and there
is always the option to disable renderaccel as workaround on the customer side)
...
Comment 30 Eric Anholt 2005-01-24 19:20:32 UTC
We've (keithp and myself) found the issue while working on Xati's render
acceleration today, it seems.  RB2D_DSTCACHE_* are actually read-only mirrors of
RB3D_DSTCACHE_*.  Writing to them has no effect, at least on some chipsets.  The
solution is to swap RB2D_DSTCACHE_CTLSTAT for RB3D_DSTCACHE_CTLSTAT (0x325C
instead of 0x342c), so that the flushes actually happen.  I ought to review the
x.org code again to look for other issues, but this is probably the root of it.
 My speculation as to why DRI and everything else has worked using the same
flushing technique that autoflushing makes reads usually work, and hostdata
blits (used normally for uploading stuff) keep the cache coherent and don't need
the flushing, but our usage of memcpy followed by reading from that memory
breaks for some people.
Comment 31 Roland Mainz 2005-01-24 19:21:09 UTC
Comment on attachment 1209 [details] [review]
[FIXED_X11R68x] Patch for pre-rendering small textures for Render Acceleration on R100

Patch checked-in into X11R6.8.x stable branch:
/cvs/xorg/xc/ChangeLog,v  <--  ChangeLog
new revision: 1.365.2.137; previous revision: 1.365.2.136
cvs commit: Using deprecated info format strings.  Convert your scripts to use
the new argument format and remove '1's from your info file format strings.
/cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h,v  <--  radeon.h
new revision: 1.8.2.1; previous revision: 1.8
/cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_render.c,v	<-- 
radeon_render.c
new revision: 1.8.2.1; previous revision: 1.8
cvs commit: Using deprecated info format strings.  Convert your scripts to use
the new argument format and remove '1's from your info file format strings.
Mailing the commit message to xorg-commit@lists.freedesktop.org...

Lets hope this doesn't cause any new problems... ;-/
Comment 32 Matthias Hopf 2005-01-25 08:08:05 UTC
Eric, Keith,

just tried out to substitute RB2D_DSTCACHE_CTLSTAT with RB3D_DSTCACHE_CTLSTAT.
So far no change in the behaviour. However, I'm not entirely sure that my code
is correct, as I still set RADEON_RB2D_DC_FLUSH_ALL (not 3D) as I have no
reference for the correct codes.
Sorry, folks, but this does not seem to remove the glitches. Only using DMA like
in the cvs HEAD seems to work.
Comment 33 Anton Markov 2005-01-26 20:02:27 UTC
(In reply to comment #25)
> Ok, tested it a bit, and with DRI enabled the next texture loading method seems
> to work fine. So - as far as I am concerned - the patch is not necessary in that
> case. Thanks, Michael!
> 
> w/o DRI the rendering bug still shows up. Michael, is the new texture uploading
> routine usable without DRI as well, or shall I adapt my patch for the non-DRI
> case only?
> 
> Anton, can you verify that you still get any glitches, and if this is the case
> verify that you have DRI enabled?

Well, I haven't seen any of the glitches since I started using 6.8.2-rc2. 

Also, the slowdown with xcompmgr is gone in 6.8.3-rc3 (which has Roland's
patch). I actually think it was something I did, or something with my system.

I think the main xcompmgr slowdowns I saw were related to the new 0/1 scheduler
in the 2.6 kernel (once the X server started hogging resources, the scheduler
gave it lower priority). By setting the X server (and xcompmgr) priority to '-5'
as opposed to the recommended '0' on 2.6 kernels, I get very decent xcompmgr
performance on my R100 (without fading windows).

Anyways, I've tried it with HEAD, and I didn't notice any difference with
performance or visually. Is there anything special I have to do to enable the
new DRI texture uploads? glxinfo shows "direct rendering: Yes". 'glxgears' still
gives me the same framerate, if that is an indicator.
Comment 34 Michel Dänzer 2005-01-26 20:55:51 UTC
(In reply to comment #33)
> (In reply to comment #25)
> 
> Also, the slowdown with xcompmgr is gone in 6.8.3-rc3 (which has Roland's
> patch). I actually think it was something I did, or something with my system.

In my experience, compositing sometimes suddenly becomes much slower and never
seems to recover. Could be some video memory management issue or something. Or
maybe the process scheduling, as you suggested.


> Anyways, I've tried it with HEAD, and I didn't notice any difference with
> performance or visually. 

Bummer. The change certainly had a significant effect on x11perf -aa{10,24}text
numbers here, and it also seemed to improve compositing, but maybe that's just me.

> Is there anything special I have to do to enable the new DRI texture uploads?
> glxinfo shows "direct rendering: Yes". 

In that case, the new code is active.

> 'glxgears' still gives me the same framerate, if that is an indicator.

No, the change only affects Render acceleration, not OpenGL.
Comment 35 Anton Markov 2005-01-26 21:41:37 UTC
(In reply to comment #34)
> (In reply to comment #33)
> > Anyways, I've tried it with HEAD, and I didn't notice any difference with
> > performance or visually. 
> 
> Bummer. The change certainly had a significant effect on x11perf -aa{10,24}text
> numbers here, and it also seemed to improve compositing, but maybe that's just 
> me.

Ah, now I see the improvements; it's not so much the speed but the
responsiveness for me. Now I can move a window with xcompmgr running, and not
have it interrupt an MP3 playing in the background. I don't even have to change
the X server priority like I mentioned earlier. I guess it's because the DMA
transfers free up the CPU.

Great job!
Comment 36 Matthias Hopf 2005-01-27 04:35:30 UTC
(In reply to comment #33)
> Well, I haven't seen any of the glitches since I started using 6.8.2-rc2. 

Well, then I assume DMA texture upload does fix this entirely. Good news.

> I think the main xcompmgr slowdowns I saw were related to the new 0/1 scheduler
> in the 2.6 kernel (once the X server started hogging resources, the scheduler
> gave it lower priority). By setting the X server (and xcompmgr) priority to '-5'
> as opposed to the recommended '0' on 2.6 kernels, I get very decent xcompmgr
> performance on my R100 (without fading windows).

Sounds reasonable. xcompmgr works with large texture chunks, they should never
ever trigger my workaround.

Michel, if we get DMA for the non-DRI case as well, I won't bother rewriting my
patch to this case. No need to hurry, though, I just want to schedule my work.
Comment 37 Michel Dänzer 2005-01-27 11:47:22 UTC
(In reply to comment #36)
> (In reply to comment #33)
> > Well, I haven't seen any of the glitches since I started using 6.8.2-rc2. 
> 
> Well, then I assume DMA texture upload does fix this entirely. Good news.

The 6.8 branch still doesn't have the DMA upload, does it?


> Michel, if we get DMA for the non-DRI case as well, I won't bother rewriting my
> patch to this case. No need to hurry, though, I just want to schedule my work.

I do plan to play with using hostdata blits (note that DMA isn't possible
without kernel support) without DRI, but I don't know when I'll get around to
it, so feel free to beat me to it everybody.
Comment 38 Giacomo Perale 2005-02-03 13:44:09 UTC
I'm sorry, I can still notice the problem with Ximian Openoffice and xorg 6.8.2
RC4 (http://ghepeu.altervista.org/immagini/font-problem.jpg), specially with
letter "i". With other applications everything seems to be working.
Comment 39 Giacomo Perale 2005-02-07 13:54:51 UTC
I've just installed latest CVS DRI drivers and this is what I could notice:

1) in first X server (the one with direct rendering enabled) I can see bad
rendering of some type 1 fonts (similar to
http://ghepeu.altervista.org/immagini/fuffa/font-no2.jpg) but there aren't
anymore glitches like these ones
(http://ghepeu.altervista.org/immagini/fuffa/font-no.jpg)

2) glitches (like the ones in the screenshot in my comment #38) are still
present when direct rendering is disabled (for example in second X server launched)



PS. I compiled 20050207 CVS and the files I installed are:

radeon_dri.so
ati_drv.so
radeon_drv.so
libdrm.so
libdri.so
libGLcore.so
libGL.so.1.2

I couldn't get working openGL with new libglx.so
Comment 40 Michel Dänzer 2005-02-07 15:29:33 UTC
(In reply to comment #39)
> 
> 1) in first X server (the one with direct rendering enabled) I can see bad
> rendering of some type 1 fonts (similar to
> http://ghepeu.altervista.org/immagini/fuffa/font-no2.jpg)

I'm afraid I don't see the issue, even with the arrows... does this go away if
you disable RENDER acceleration? If not, it's not related to this bug.
Comment 41 Remon 2005-03-10 05:41:31 UTC
Hello,    
    
I got the same problems, the font rendering glitches but also something that    
looked like a "bandwidth memory" problem. Kinda high frequency waves all over    
the screen, specially when a lot of repainting happens (like scrolling large    
text view)    
    
However, with 6.8.2 the font render glitches are indeed gone, allas the  
"bandwith    
memory" render glitches aren't.    
    
I disabled both DRI and put Option "RenderAccel" "Off" in my xorg.conf and the   
problem is almost gone. Only on very heavy redrawing activities (Kontact   
splitter moving for example does this very very heavily) there are still some   
small rendering glitches visable (just all over the screen).   
   
Unfortunately, I can't show a screenshot of this problem, seems screenshots are   
rendered offscreen?   
   
As soon as I enable DRI and "RenderAccel" the problem is back again :-(   
Hopefully you can find out the problem sooner or later....   
   
Thanks,   
   
Remon   
Comment 42 Michel Dänzer 2005-03-10 07:48:45 UTC
(In reply to comment #41)
>     
> I got the same problems, the font rendering glitches but also something that    
> looked like a "bandwidth memory" problem. Kinda high frequency waves all over    
> the screen, specially when a lot of repainting happens (like scrolling large    
> text view)    
>     
> However, with 6.8.2 the font render glitches are indeed gone, allas the  
> "bandwith memory" render glitches aren't.    

Please don't hijack an existing bug for a different issue but create a new one
if necessary. Does

    Option "DisplayPriority" "HIGH"

fix this problem?
Comment 43 Remon 2005-03-10 08:36:51 UTC
Sorry if I hijacked this bug report, but after reading this thread I got the 
assumption it was the same problem, but only worse on my PC. 
If you want me to file a seperate bug report for this issue? 
 
Unfortunately, setting display prio to "high" doesn't make any difference :-( 
 
Remon 
Comment 44 Matthias Hopf 2005-03-15 08:25:46 UTC
(In reply to comment #41)
> I got the same problems, the font rendering glitches but also something that    
> looked like a "bandwidth memory" problem. Kinda high frequency waves all over    
> the screen, specially when a lot of repainting happens (like scrolling large    
> text view)    
> [...]
> Unfortunately, I can't show a screenshot of this problem, seems screenshots are   
> rendered offscreen?   

This sounds very much like a hardware problem (presumably your ramdac/memory
interface interferes with other regular memory accesses). If nobody else
exhibits this effect, I assume it is broken hardware.

Michel might have other / more information on the topic, though. I would rather
listen to him than to me ;^)
Comment 45 Kevin E. Martin 2005-03-21 20:10:02 UTC
I've been looking into this issue recently, and have found out a few interesting
things.  The pre-rendering workaround patch does not solve the problems that I'm
seeing on my R100s and RV200s.  However, I found that I could work around the
problem in one of two ways: either change the PP_TEX_SIZE_0 from "(height-1)<<16
| (width-1)" to "height<<16 | width", or force the code to never use
non-power-of-2 textures and fix the dst_pitch to always be a power of 2 (instead
of just a multiple of 32).  Neither of these changes are required for R200 and
newer chips.

I'll attach a patch next that works around the problems for me.
Comment 46 Kevin E. Martin 2005-03-21 20:14:28 UTC
Created attachment 2178 [details] [review]
Workaround for R100/RV200 font rendering problems for 6.8.2 branch

Could those who are seeing the font rendering problem please test this patch to
see if it fixes them and report back here?  This patch is against the 6.8.2
release.
Comment 47 Michel Dänzer 2005-03-21 20:47:33 UTC
Interesting, but then I wonder why HEAD works for Matthias without this (or any
other, for that matter) workaround; is that the case for you too, Kevin?
Comment 48 Giacomo Perale 2005-03-22 00:58:01 UTC
now I'm using CVS driver (compiled as explained in this page:
http://dri.freedesktop.org/wiki/Building) with 6.8.2 release, but I still notice
the old problems when direct rendering isn't enabled (running a second X server,
for example) and sometime minor glitches, for example vertical 1-pixel wide
lines on the left side of letters. I'm going to check this patch as soon as
possible.
Comment 49 Matthias Hopf 2005-03-22 01:54:13 UTC
When DRI is not enabled the HEAD branch still uses the old texture upload
approach, while it uses a DMA based one when DRI is enabled. Eventually, both
code paths will use DMA, so we only would need an intermediate fix.

I think that R100 had several hardware flaws (race conditions and undealt
exceptions) that have to be worked around. This is difficult to do without
errata sheets, and I doubt that these even exist for graphics hardware (the
release cycle is too fast paced for decent chip specific documentation). You
typically only get those sheets for products with a long livetime or for
products that are integrated a large number of companies.
Comment 50 Giacomo Perale 2005-03-22 02:32:14 UTC
well, I applied the patch to HEAD radeon_render.c (just the hunks that were
applicable) but the result is worse than actual behavior:
http://ghepeu.altervista.org/xorg/firefox.jpg
http://ghepeu.altervista.org/xorg/gnome-menu.jpg
http://ghepeu.altervista.org/xorg/oo.jpg
http://ghepeu.altervista.org/xorg/terminal.jpg

some of these glitches disappear if I move the mouse over, others appear randomly.
Comment 51 Kevin E. Martin 2005-03-22 05:59:42 UTC
(In reply to comment #50)
> well, I applied the patch to HEAD radeon_render.c (just the hunks that were
> applicable) but the result is worse than actual behavior:

Applying the patch to HEAD should definitely fail and will cause problems.  The
patch is only for the 6.8 branch.

FYI, this patch fixes the 1-pixel wide vertical lines that appear on my R100 and
RV200 cards in 6.8.2.
Comment 52 Kevin E. Martin 2005-03-22 06:10:10 UTC
(In reply to comment #47)
> Interesting, but then I wonder why HEAD works for Matthias without this (or any
> other, for that matter) workaround; is that the case for you too, Kevin?

Hi Michel, I'm building HEAD right now and should be able to let you know in a
little while if the DRI-enabled case works without any patches.
Comment 53 Giacomo Perale 2005-03-22 06:20:18 UTC
(in reply to comment #51)
>Applying the patch to HEAD should definitely fail and will cause problems.  The
>patch is only for the 6.8 branch.

Oh, I understand

>FYI, this patch fixes the 1-pixel wide vertical lines that appear on my R100
>and RV200 cards in 6.8.2.

with HEAD I still have problem of this kind:
http://ghepeu.altervista.org/xorg/minor-glitch.jpg
Comment 54 Kevin E. Martin 2005-03-22 06:24:42 UTC
(In reply to comment #49)
> I think that R100 had several hardware flaws (race conditions and undealt
> exceptions) that have to be worked around. This is difficult to do without
> errata sheets, and I doubt that these even exist for graphics hardware (the
> release cycle is too fast paced for decent chip specific documentation). You
> typically only get those sheets for products with a long livetime or for
> products that are integrated a large number of companies.

I tend to agree that there are several problems here since the pre-rendering
workaround patch that fixed the problem for you, didn't help in my case, but the
two workarounds that I found, worked fine.

Matthias, could you try my patch on a 6.8.2 build using the hardware that worked
with your pre-rendering patch?  My patch #if 0's the pre-rendering part out, so
this should give us a good indication if we are seeing one or two problems.  You
might also want to try to force the code to use the non-power-of-2 code since
that code path also works for me with my patch.
Comment 55 Kevin E. Martin 2005-03-22 06:26:46 UTC
(In reply to comment #53)
> with HEAD I still have problem of this kind:
> http://ghepeu.altervista.org/xorg/minor-glitch.jpg

That looks like what I've been seeing on the 6.8 branch.  I'm building HEAD
right now.  Once that finishes, I'll try it to see if we're encountering the
same problem and try to come up with a workaround.
Comment 56 Kevin E. Martin 2005-03-22 08:33:34 UTC
(In reply to comment #55)
> (In reply to comment #53)
> > with HEAD I still have problem of this kind:
> > http://ghepeu.altervista.org/xorg/minor-glitch.jpg
> 
> That looks like what I've been seeing on the 6.8 branch.  I'm building HEAD
> right now.  Once that finishes, I'll try it to see if we're encountering the
> same problem and try to come up with a workaround.

Okay, I've built HEAD, and it still has the same problem as reported above.  If
I just change the tex_size from my previous patch, HEAD works fine.  I'll attach
a patch next.  However, my other solution to use only power of 2 textures didn't
work -- my assumption there is that it has to do with the tiling changes that
are in HEAD.
Comment 57 Kevin E. Martin 2005-03-22 08:39:29 UTC
Created attachment 2186 [details] [review]
Workaround for R100/RV200 font rendering problems on HEAD

Giacomo, could you try this patch on HEAD?
It appears to solve the problem that I'm seeing on HEAD.
Comment 58 Michel Dänzer 2005-03-22 08:41:23 UTC
Okay, the tex_size fix seems correct then.
Comment 59 Kevin E. Martin 2005-03-22 09:04:35 UTC
(In reply to comment #58)
> Okay, the tex_size fix seems correct then.

I agree this fix works around one bug, but I'm concerned that there are actually
two bugs.  One fixed by the tex_size change and one fixed by the pre-rendering
texture change that Matthias made.  I'm curious if both fixes are needed, or
just one.  I'd like to hear from anyone that had their problem fixed by
Matthias' patch whether or not my patch also fixes their problem on the 6.8.2
branch (since I disabled his fix in my first patch).
Comment 60 Giacomo Perale 2005-03-28 07:21:36 UTC
(In reply to comment #57)
> Workaround for R100/RV200 font rendering problems on HEAD
> 
> Giacomo, could you try this patch on HEAD?
> It appears to solve the problem that I'm seeing on HEAD.
> 

Finally I have got a free afternoon, so I compiled HEAD with this patch, I
tested the system for an hour and as far as I can tell the glitches I was
experiencing before are gone, with both direct rendering enabled and disabled.
The only exception is openoffice-ximian, but as matters stand I think this is a
bug in their code.
Comment 61 Giacomo Perale 2005-04-03 13:45:55 UTC
After a week I can say that this patch fixes all glitches and I've just noticed
that it fixed my problems with Type1 fonts' rendering too, I suggest inclusion
in both 6.8.x and HEAD branches.

> I'm concerned that there are actually two bugs.  One fixed by the tex_size 
> change and one fixed by the pre-rendering texture change that Matthias made.

my opinion: it seems that most glitches used to appear on the right side of the
rectangle in which letters are included. maybe Matthias patch by pre-rendering
small textures simply reduced the frequency of glitches so they were often
unnoticed?
Comment 62 Adam Jackson 2005-04-03 14:46:44 UTC
mass update: this bug was applied to the stable 6.8 branch but NOT to HEAD!
Comment 63 Matthias Hopf 2005-04-04 02:32:26 UTC
Sorry, been busy for a while...

Kevin, if I read your patch in attachment 2178 [details] [review] correctly, this one disables my
patch but changes the texture size to 2^n *instead*. Am I right?
Does this (together with the width/height setup) fix all problems? Then we might
have stumbled over an alignment problem, and it could be enough to just use
texture widths that are multiples of 8, 16 or 32. Maybe texture heights have to
be equivalent, maybe not.

I'll do some tests.

> my opinion: it seems that most glitches used to appear on the right side of the
> rectangle in which letters are included. maybe Matthias patch by pre-rendering
> small textures simply reduced the frequency of glitches so they were often
> unnoticed?

Could well be. That would perfectly make sense with my assumption above.
Comment 64 Kevin E. Martin 2005-04-04 07:46:55 UTC
(In reply to comment #63)
> Sorry, been busy for a while...
> 
> Kevin, if I read your patch in attachment 2178 [details] [review] [edit] correctly, this one
disables my
> patch but changes the texture size to 2^n *instead*. Am I right?

Partially correct.  It does disable your patch, but the texture size is actually
set to max(32,2^ceil(log2(width))).  Basically, it's just rounding the dst_pitch
up to the next power of two that completely contains the texture but makes sure
that the pitch is at least 32.

> Does this (together with the width/height setup) fix all problems? Then we might
> have stumbled over an alignment problem, and it could be enough to just use
> texture widths that are multiples of 8, 16 or 32. Maybe texture heights have to
> be equivalent, maybe not.

I had troubles with pitches less than 32, so that was why I made the minimum
texture width 32.  However, note that this was just for the second solution to
the problem (see comment #45 for details).  The first solution is the change to
tex_size = (height << 16) | width; which is the code path that is taken most
(all?) of the time.

Maybe I'm trying to explain too much in this patch.  I'll create two different
patches, each with their own solution.  That should help make the two different
solutions clearer.
Comment 65 Matthias Hopf 2005-04-04 08:05:13 UTC
(In reply to comment #64)
> > Kevin, if I read your patch in attachment 2178 [details] [review] [edit] [edit] correctly, this one
> disables my
> > patch but changes the texture size to 2^n *instead*. Am I right?
> 
> Partially correct.  It does disable your patch, but the texture size is actually
> set to max(32,2^ceil(log2(width))).  Basically, it's just rounding the dst_pitch
> up to the next power of two that completely contains the texture but makes sure
> that the pitch is at least 32.

Right. Ok, just wanted to make sure that prerendering is disabled with your patch.

> I had troubles with pitches less than 32, so that was why I made the minimum
> texture width 32.  However, note that this was just for the second solution to
> the problem (see comment #45 for details).  The first solution is the change to
> tex_size = (height << 16) | width; which is the code path that is taken most
> (all?) of the time.

I think we're safe to assume there have been 2 problems.

> Maybe I'm trying to explain too much in this patch.  I'll create two different
> patches, each with their own solution.  That should help make the two different
> solutions clearer.

No need, I think this is clear now.
I'll try your patch and a aligned non-power-of-2 patch. I'll let all of you know
about the outcome.
Comment 66 Kevin E. Martin 2005-04-04 08:14:19 UTC
Created attachment 2314 [details] [review]
Solution #1 for R100/RV200 font rendering on 6.8 branch

It was trivial to do, so I went ahead and broke the two solutions out into
separate patches for the 6.8 branch.
Comment 67 Kevin E. Martin 2005-04-04 08:16:22 UTC
Created attachment 2315 [details] [review]
Solution #2 for R100/RV200 font rendering on 6.8 branch

This one uses the alternate rendering path.
Comment 68 Kevin E. Martin 2005-04-04 08:21:26 UTC
(In reply to comment #65)
> (In reply to comment #64)
> > I had troubles with pitches less than 32, so that was why I made the minimum
> > texture width 32.  However, note that this was just for the second solution to
> > the problem (see comment #45 for details).  The first solution is the change to
> > tex_size = (height << 16) | width; which is the code path that is taken most
> > (all?) of the time.
> 
> I think we're safe to assume there have been 2 problems.

That's my assumption as well.  If either of my patches don't solve the problem
you're seeing, then I think that confirms we have 2 separate problems.
Comment 69 Matthias Hopf 2005-04-05 08:16:19 UTC
I'm currently having troubles reproducing the rendering problem. It is the same
hardware, I just installled a SL9.3 beta on it, and everything (almost) seems
fine. I just got some very small rendering artifacts, but that occure with any
set of patches, and they could very well be gtk or general Xserver related.

I'll try a fresh install of 9.2 on this machine and test again.
Comment 70 Matthias Hopf 2005-04-05 10:29:48 UTC
Ok, I got it reproduced. Only SL9.2 only, but the same Xserver binary. Have to
verify it with SL9.3, maybe the qt libraries changed font rendering a bit.

1) Attachment 2314 [details] shows rendering glitches.
2) Attachment 2315 [details] shows rendering glitches as well.

So *I* do not see any enhancements with these patches, but only with
prerendering. And that does not seem to be perfect. I double checked that the
correct binary has been used.

Sorry for the bad news, I guess we won't see a fully working solution until
texture upload with DMA has in implemented for the non-DRI case as well.
Comment 71 Kevin E. Martin 2005-04-05 17:25:56 UTC
Matthias, thank you for testing the patches!  You've confirmed what I think
several of us suspected -- that there are two completely separate problems with
font rendering.  One that I've fixed (confirmed by Giacomo), and one that you've
discovered.  Unfortunately, the rendering problems that you're seeing I have not
been able to reproduce, so I won't be able to help you fix them until I can
figure out how to do that.

I will go ahead and check in my change to HEAD since it fixes one of the two
separate problems we've found here.
Comment 72 Matthias Hopf 2005-04-06 02:53:07 UTC
I think your patch has be cleaned up a bit before inclusion.
E.g. it changes the R200 code path, which it shouldn't. You should use another
function, e.g. ATILog2Ceil() in the R100 code path.

Then I'm not exactly clear whether using non-power-of-2 textures with a multiple
of 32 size would help as well - that would use much less texture space. Maybe we
should try that.
Comment 73 Kevin E. Martin 2005-04-06 08:06:26 UTC
(In reply to comment #72)
> I think your patch has be cleaned up a bit before inclusion.
> E.g. it changes the R200 code path, which it shouldn't. You should use another
> function, e.g. ATILog2Ceil() in the R100 code path.

I'm only talking about applying solution #1, not both solutions.  All solution
#1 does is change tex_size in the R100 code path.  The changes to ATILog2 are
only used for the alternate solution #2, which does not currently work on HEAD
due to tiling.

BTW, I've already made a version of my patch that I am planning to apply to HEAD
this afternoon in attachment 2186 [details] [review].  It fixes the problems I've seen here and
Giacomo confirmed works for him as well on HEAD.
Comment 74 Matthias Hopf 2005-04-06 08:33:19 UTC
> > E.g. it changes the R200 code path, which it shouldn't. You should use another
> > function, e.g. ATILog2Ceil() in the R100 code path.
> 
> I'm only talking about applying solution #1, not both solutions.  All solution
> #1 does is change tex_size in the R100 code path.  The changes to ATILog2 are
> only used for the alternate solution #2, which does not currently work on HEAD
> due to tiling.

I'm not exactly sure whether you don't have to reduce the maximum texture size
to 2047x2047 - because 2048x2048 wouldn't fit into that bitfeld nicely.
Or maybe you can use that (x-1) for the maximum texture case ;)

Comment 75 Kevin E. Martin 2005-04-12 09:06:12 UTC
(In reply to comment #74)
> I'm not exactly sure whether you don't have to reduce the maximum texture size
> to 2047x2047 - because 2048x2048 wouldn't fit into that bitfeld nicely.
> Or maybe you can use that (x-1) for the maximum texture case ;)

Good point.  I'll add that to my patch and reattach it shortly.
Comment 76 Kevin E. Martin 2005-04-12 09:11:32 UTC
Created attachment 2402 [details] [review]
Workaround for R100/RV200 font rendering on HEAD #2

Added check to limit width and height to 2047 when using that code path.
Comment 77 Giacomo Perale 2005-05-03 02:35:37 UTC
I've been using last workaround (comment #76) with cvs snapshots since two
weeks, without any problem. Any news about is inclusion in HEAD?
Comment 78 Giacomo Perale 2005-05-22 15:09:35 UTC
Sorry for bothering, but any news on this?
Comment 79 Kevin E. Martin 2005-05-23 07:28:28 UTC
(In reply to comment #78)
> Sorry for bothering, but any news on this?

I've got this on my todo list for testing, which I should be finally able to get
to this week.  It's just a matter of writing a test client (or modifying an
existing one) to explicitly test the cases involved.  I will update again when I
finish full testing.
Comment 80 Giacomo Perale 2005-09-07 16:23:44 UTC
Hello, I've seen that there are people working on EXA support for the radeon
driver, could this problem (and its fix) interfere with the new code?
Comment 81 T. Hood 2005-09-25 04:02:06 UTC
Is this now fixed?
Comment 82 Giacomo Perale 2005-10-05 06:06:11 UTC
(In reply to comment #81)
> Is this now fixed?

no, current CVS still has the bug.
Comment 83 David Arnold 2005-10-31 02:37:27 UTC
fwiw, i see the same font-rendering problems with Debian's 6.8.2.dfsg.1-9 using
a GeCube Radeon 9250 AGP in MergedFB mode (3200x1200).

lspci -n shows
  0000:01:05.0 0300: 1002:5960 (rev 01)
  0000:01:05.1 0380: 1002:5940 (rev 01)

setting Option "RenderAccel" "off" solves the problem.
Comment 84 Giacomo Perale 2005-11-11 09:04:46 UTC
rc2 has been released, any hope to see this patch going in (if it is still needed)?
Comment 85 Adam Jackson 2005-11-30 16:25:54 UTC
last i checked the radeon texture dimension registers were already (size-1), so
filling them with '2047' should set the texture size on that axis to 2048.

does kem's patch in comment #76 actually fix rendering issues for anyone?  i
haven't been able to reproduce this recently, but i also haven't tried very hard.
Comment 86 Giacomo Perale 2005-11-30 18:43:01 UTC
(In reply to comment #85)
> does kem's patch in comment #76 actually fix rendering issues for anyone?  i
> haven't been able to reproduce this recently, but i also haven't tried very hard.

yes, that patch fixed all my issues with CVS snapshots up to 6.8.99.16. However
I could not try more recent releases.
Comment 87 dev 2006-02-02 14:06:52 UTC
I see this same glitch on Xorg 6.9.0 from Debian unstable with a GeForce6600
using the NVidia drivers.  It only seems to happen with GTK2 apps.  Turning off
Render accel. fixes the problem.  I would blame the NVidia drivers except most
people here are using Radeon's with identical result.  If I get time I'll test
my old Radeon 8500.
Comment 88 Francesco Biscani 2006-03-02 20:58:02 UTC
Hello, 
 
I came here from bug 
 
https://bugs.freedesktop.org/show_bug.cgi?id=5584 (thanks giacomo!) 
 
The latest patch from Kevin seems to have resolved most of the XAA issues for 
me (even if I'm still investigating some pale gray lines in konsole). However 
the EXA+RenderAccel issues remain, i.e.: 
 
1) huge slowdown when scrolling web-pages in Konqueror or Mozilla. There is a 
visible "drawing" effect from top to bottom when scrolling web-pages. The 
effect is visible when grabbing the vertical sidebar of the browser window and 
dragging it up and down fast. Same thing happens when holding down PgUp or 
PdDown button. When moving up and down with scroll-wheel it is not noticeable. 
This slowdown goes away with XAA or EXA + No-RenderAccel. 
 
2) some graphical artifacts on the buttons of kde-apps. Most notably konqueror 
toolbar's buttons and kicker's buttons. There is a visible "hot" pixel in the 
lower right corner of these buttons, which changes color (or sometimes 
disappears) when hovering with the mouse (and thus "highlighting" the button). 
 
xcompmgr/kompmgr does not help in any case, and the artifacts on buttons get 
worse when color depth is lowered to 16. More details in the bugreport linked 
above. 
 
Thoughts? If you need more details or a guinea pig for patches I'm here. The 
problems described are fully reproducible. This is a Radeon IGP 345M with Xorg 
7.0 from Gentoo Packeages (HP laptop). 
Comment 89 Francesco Biscani 2006-03-03 22:43:22 UTC
The grey lines artifact is still there, even with Kevin's patch. 
 
See here for an example: 
 
http://ing.unitn.it/~rbiscani/screenshots/grey_lines.png 
 
You may need to tweak your monitor's contrast in order to see them, they are 
very weak. It seems like they are generated by the "smearing" of the dot of 
the "i" letter, don't they? 
 
Anyway, I have not noticed other artifacts. The speed problem with EXA 
persists though... 
Comment 90 Francesco Biscani 2006-03-09 13:42:04 UTC
PING....  
 
... please, can anyone at least comment on the exa+RenderAccel slowdown? 
Comment 91 Francesco Biscani 2006-03-09 14:40:40 UTC
Hello again, 
 
another piece of the puzzle: 
 
http://lists.freedesktop.org/archives/xorg/2006-February/012897.html 
 
So, my situation has improved a bit. Patch I applied to the radeon driver: 
 
- exa-txoffset from link above 
- kevin's patch from this bugreport 
- BenH's mmap fixes (probably not relevant to this though...) 
 
Current xorg.conf has: 
 
- AccelMethod EXA, 
- RenderAccel enabled, 
- SubPixelOrder "NONE" 
 
Running KDE, and font-antialiasing is turned globally OFF. 
 
With this setup performance is generally acceptable, also when scrolling 
web-pages (weird slowdowns remain though, like @ http://aseigo.blogspot.com). 
Also transparencies are working well. 
 
It may be interesting to note that performance greatly improved (by an order 
of magnitude I'd say) when adding the SubPixelOrder "NONE" option and 
disabling font anti-aliasing. It all seems to point to a font rendering issue. 
Also all drawing artifacts are gone. 
 
Hope this helps a bit. 
Comment 92 Michel Dänzer 2006-03-09 20:24:45 UTC
(In reply to comment #90)
> ... please, can anyone at least comment on the exa+RenderAccel slowdown? 

This bug is about visual artifacts with RENDER acceleration. There are other
bugs about your issues with EXA, feel free to file new ones for issues that
aren't covered yet.
Comment 93 Michel Dänzer 2006-03-09 20:29:56 UTC
I'm reading the xorg-team list.
Comment 94 Adam Jackson 2006-04-25 05:35:39 UTC
This bug is horribly long and hard to follow now.  Could someone kindly
summarize the current state of the world here?  Otherwise this is getting moved
out to 7.2
Comment 95 Giacomo Perale 2006-04-25 05:42:32 UTC
(In reply to comment #94)
> This bug is horribly long and hard to follow now.  Could someone kindly
> summarize the current state of the world here?  Otherwise this is getting moved
> out to 7.2

well, I applied the patch attached in comment #76 to my local xorg-server up to
version 1.0.0, then I switched to EXA, that doesn't suffer from this problem, so
I don't know if the patch still works (or if the bug was fixed by other commits).
Comment 96 Erik Andren 2006-05-10 05:56:55 UTC
Giacomo, is XAA still producing the bug using your current setup? 
Comment 97 Giacomo Perale 2006-05-10 09:16:05 UTC
(In reply to comment #96)
> Giacomo, is XAA still producing the bug using your current setup? 

just tested on xorg-server-1.0.2 and xf86-video-ati-6.5.8.0: the bug is still
here with XAA
Comment 98 Adam Jackson 2006-05-16 23:29:17 UTC
(In reply to comment #97)
> just tested on xorg-server-1.0.2 and xf86-video-ati-6.5.8.0: the bug is still
> here with XAA

Unsurprising, attachment #2402 [details] [review] still hasn't been applied.

I'm moving this off the 7.1 tracker since it's a pretty low-impact bug and can
be fixed async in a radeon driver update.  Should definitely get applied though;
would some kindly radeon maintainer handle this please?
Comment 99 Mike A. Harris 2006-08-31 07:12:54 UTC
> be fixed async in a radeon driver update.  Should definitely get applied though;
> would some kindly radeon maintainer handle this please?

Aparently not.  ;o)
Comment 100 Daniel Stone 2006-12-16 09:29:08 UTC
aiui, this has been fixed in the -ati tree.
Comment 101 Jan Uhlir 2007-02-18 07:33:02 UTC
I have tested Xorg 7.2 from SuSE.
I have tested all versions Xorg currently offers, official + updates, xorg72 repo, xorg73 repo.
I run currently the highest latest and highest version of 7.2 provided.
But I have to report - THE BUG IS STILL THERE.

Notes:
It appears mainly in OOo but some versions showed apparent glitches in Firefox too. I can provide screenshots on request. When RenderAccel is turned off glitches gone away.
Exact versions of relevant packages are:
xorg-x11-driver-video-7.2-149.2
xorg-x11-server-7.2-130.1
xorg-x11-fonts-core-7.2-14
xorg-x11-libXrender-7.2-12
xorg-x11-libX11-7.2-50.1
Comment 102 Tilman Sauerbeck 2007-02-18 08:29:28 UTC
Uh, this patch has NOT been committed. At least it doesn't seem to be in xf86-video-ati's master branch.
Comment 103 Timo Aaltonen 2007-04-03 23:51:47 UTC
not committed yet
Comment 104 Dave Airlie 2007-04-04 00:02:43 UTC
this bug has gotten out of hand, and it is impossible to tell from this what is going on,

If someone can reproduce this problem using 

1. Xorg 7.2
2. ATI driver 6.6.191 or git HEAD
3. can attach an xorg.conf and Xorg.0.log file

Can they open a new bug which doesn't contain so much noise... and I'll attempt to  fix it myself or get someone to do so... this bug is too intractable as it goes back to 6.8 at this point...


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.