Bug 6819

Summary: Radeon *8b8g8r8 render formats broken
Product: xorg Reporter: Eric Anholt <eric>
Component: Driver/RadeonAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: alexdeucher, benh, mmacleod
Version: git   
Hardware: x86 (IA32)   
OS: FreeBSD   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Proposed fix none

Description Eric Anholt 2006-05-03 05:01:14 UTC
Bug #6772 caused a new operation to happen on my desktop, which is gtk's
x8b8g8r8 IN a8b8g8r8 Over Dst that's used for doing the premultiplication of gdk
pixmaps.  The Radeon render accel code for EXA is doing this format wrong
somehow -- my icons end up all red.

You can find code to expose this in the more-formats branch of rendercheck. 
That branch hasn't been merged yet because reports issues I haven't tracked down
yet, but if you can get the *8b8g8r8 tests working, that would be enough for
this bug.
Comment 1 Michel Dänzer 2006-07-02 17:38:30 UTC
Created attachment 6100 [details] [review]
Proposed fix

I notice that the code for these source formats currently relies on the
TXO_ENDIAN_BYTE_SWAP bits. Back when I was fixing R100 DRI for big endian, I
noticed that these bits don't seem to have any effect. Luckily, the R200 3D
engine supports an ABGR texture format, but I'm afraid these source formats
can't be accelerated with R100.

So this patch attempts to fix the problem by changing the R200 code to use the
ABGR texture format and by removing R100 support for these source formats. This
fixes the rendercheck failures here with an M9.

I'll be on vacation for two weeks; if you agree with this approach, feel free
to push it and finally push the patch from bug 6772.
Comment 2 Michel Dänzer 2006-07-17 07:56:48 UTC
Eric, what do you think?
Comment 3 Eric Anholt 2006-07-17 08:14:03 UTC
Ahh, I thought I'd talked to you in IRC.  This patch sounds good to me, and you
certainly know more about the endian issues in Radeon than I do :)

Comment 4 Michel Dänzer 2006-07-23 09:56:18 UTC
Pushed to xf86-video-ati git.

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.