Bug 11687

Summary: Text colors messed up when running with 16 bit color depth and XXA
Product: xorg Reporter: Christian Speckner <cnspeckn>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED WONTFIX QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: high CC: chrschmitt
Version: unspecified   
Hardware: PowerPC   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Christian Speckner 2007-07-22 10:26:38 UTC
I'm running Gentoo stable on a G4 powermac with an ATI Radeon 8500. When I run X in 16 bit color depth, the colors of text rendered by cairo get all messed up (looks a bit like a rainbow). Changing the depth to 24 bit or setting the acceleration architecture to EXA cures the problem. The problem occured after upgrading from cairo 1.2.something to 1.4.6 and is still present in 1.4.10. I strongly suspect this to be a endianess issue...

The bug also occurred on other ppc systems, see http://forums.gentoo.org/viewtopic-t-566336.html
Comment 1 Owen Taylor 2007-07-22 10:32:09 UTC
If changing the acceleration architecture fixes the problem, there is
no way that it can be a cairo problem.
Comment 2 Christian Speckner 2007-07-22 11:41:08 UTC
(In reply to comment #1)
> If changing the acceleration architecture fixes the problem, there is
> no way that it can be a cairo problem.
> 

Sorry, of course I'm no authority on this, but I'm not so sure; the same happens with a Rage 128 which is not supported by the radeon module but by r128 (and which doesn't support EXA).

Comment 3 Roland Scheidegger 2007-07-22 14:51:45 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > If changing the acceleration architecture fixes the problem, there is
> > no way that it can be a cairo problem.
> > 
> 
> Sorry, of course I'm no authority on this, but I'm not so sure; the same
> happens with a Rage 128 which is not supported by the radeon module but by r128
> (and which doesn't support EXA).
The 2d engine and the code of these chips is quite similar though and it's not unlikely the code would have the same bugs...
You could try switching off some XAA features, not sure though if that'll really help figure out what's wrong...
Comment 4 Christian Speckner 2007-07-22 15:10:29 UTC
I've starting rolling back the git revision history to find out the patch which broke it, I'll post again when I've made any progress... I'll also try disabling XAA features to nail down the problem as you suggested.
Comment 5 Christian Speckner 2007-07-22 16:14:04 UTC
OK, I've found the patch to cairo which broke things; it is commit

----------------------------------------------------------------
Create opaque similar solid surfaces when possible.

author	Chris Wilson <chris@chris-wilson.co.uk>
	 Thu, 19 Apr 2007 08:27:51 +0000 (09:27 +0100)
committer	Chris Wilson <chris@chris-wilson.co.uk>
	 Thu, 19 Apr 2007 08:30:28 +0000 (09:30 +0100)

commit	9cf09556339e64bdf1273e95938b657112df07b6
tree	a2f90d5fce421106c7e8677b58138b45983a559d
parent	f7b6fc474651311356f116b7d8d7a5ef1cbab570

Create opaque similar solid surfaces when possible.

For opaque surfaces the backends may use simpler code paths - for
example, the xlib backend may be able to use the Core protocol rather
than Render. So we only generate a surface with an alpha component if
the color is not opaque.
------------------------------------------------------------------

Reverting this positively removes the color problem also in 1.4.10 (although the code has changed alot in this corner, so I'm not sure if doing so nukes something else). However, that's the end of the road for me here, I don't know even remotely enough about cairo or X to further nail down or fix the problem. Hopefully, someone else reading this can be helped with this info and find out if it is a bug in cairo or the 2D driver code and find a clean fix :)
Comment 6 Michel Dänzer 2007-07-23 03:28:25 UTC
(In reply to comment #4)
> I'll also try disabling XAA features to nail down the problem as you suggested.

To start off, does it work with Option "NoAccel"?
Comment 7 Christian Speckner 2007-07-23 15:52:52 UTC
OK, I've checked the different acceleration options, it works if
Option "XaaNoOffscreenPixmaps"
is set (and of course also if acceleration is disabled alltogether).
Comment 8 Michel Dänzer 2007-07-24 00:15:25 UTC
What about Option "RenderAccel" "off"?
Comment 9 Christian Speckner 2007-07-27 14:21:02 UTC
Sorry for the delay; yep, disabling RenderAccel also fixes the problem.
Comment 10 Christian Schmitt 2007-12-02 16:23:58 UTC
The issue is gone as soon as i switch to EXA. 
Comment 11 Corbin Simpson 2010-03-26 18:49:58 UTC
Closing as WONTFIX; XAA is too far gone these days. If EXA does not work, file a new bug or attach yourself to an existing bug matching your issues.

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.