Se détendre après le travail
8 octobre 20071800 pages en anglais,

avec en plus un peu de programmation X (rien de porno je vous rassure) via XCB. C’est grave ? :-/
1800 pages en anglais,

So, composite acceleration for Radeon takes place in radeon_exa_render.c… I guess looking at the R200 code will be interesting.
For now I added a dummy R300CheckComposite() function that always returns false, but also prints the requested op. I registered it in radeon_exa_funcs.c (I also had to register other R200 compositing hooks… even if they will never be called)… And… It gets called ! Very funny, but quite useless. :-) Anyway, my debug message tells me that only 3 op types are requested during a simple Gnome session with only a terminal : 0×3 (Over), 0×8 (OutReverse) and 0xc (Add) (look in /usr/include/X11/extensions/render.h for operation list).
Hmm… OutReverse ? I wonder if it’s for the terminal cursor…
Note : Cet article est en anglais car tout ce que je peux y raconter devrait surtout intéresser des anglophones !
As ATI proprietary drivers doesn’t work with recent (1.4.0) X.org server due to ABI changes, I cannot play World Of Warcraft anymore on my main computer… Not a bad thing as I now doesn’t waste my time on it anymore. :-)
So I tried Debian experimental ATI driver (that is xserver-xorg-video-ati package) together with (the new) EXA acceleration method. It is quite slow compared to XAA, so I used oprofile and sysprofile to see where the time was spent… About 60% is spent in memmove, called from RADEONCopySwap, called from RADEONDownloadFromScreenCP…
I didn’t found much on this issue using Google, so I asked on #xorg-devel. It seems that the main reason of slowness is the lack of support for (hardware) compositing in the R300 driver. But there is hope as Dave Airlie explained to me that we have all the info to do this in the current driver (no need for reverse engineering to implement this). All I have to do is writing a fragment shader for this (oh, and incidentally to learn about OpenGL and fragment shader !).