I'm bored, have free time, and want to work on xf86-video-avivo, but...
...I have never worked on anything as foreign or complex as a video driver, and despite reading the source, I still understand nothing. There's no CHANGELOG, README, or any suggestions besides "grab the source and tinker." Does anybody have any pointers or ideas? I'm bored, with free time, and eager to write some code, but I have no idea where to start...
Great that you want to help. Somewhere there was a mailing list to start at, but with release 0.1.0 coming soon, the developer(s) may launch a project site for the driver. I just worry that there hasn't been changes in git for 8 days now.
perhaps there were, but they didn't get pushed yet.
I suggest reading:
Originally Posted by MostAwesomeDude
The radeon things are still true for r500. There is also datasheet on xorg wiki for other GPU that might be usefull in order to understand how a GPU work and many things in one GPU are also in others just not programmed the same way. And on dri wiki there is a lot of good reading to understand current and future unix graphic rendering architecture. I might add some wiki page soon as i am bit lost with all x1200, x1400, x1450,x1950 issue which were reported and i hold on 0.1.0 release until i found fix for this.
Cool. Those pages are pretty informative. I've taken radeontool and modded it to dump arbitrary regs out of radeon_reg.h, and am already looking into the way the overlay works. My goals are mplayer (XVideo), zsnes (2D OGL), and ut2004 (3D OGL), none of which work anymore with xorg 1.3 and fglrx 8.38 here on Gentoo. (Yeah, I know I'm ambitious, but it's better to be enthusiastic than depressed!)
Originally Posted by glisse
I'd also like to contribute. I've read those two documents, and am starting to get an idea about how this works.
As I understand it, the ati card is essentially controlled by modifying the values of registers in its register space. Therefore, the principal task of reverse engineering is to figure out what each register does.
As I understand it, this is done essentially by using the proprietary driver, creating some simple test program, and monitoring what registers are written to on the card.
However, as far as I can tell, no one has managed to determine the function of a single register beyond basic mode setting. I may be mistaken here, but I haven't been able to find any place documenting the functioning of the r500 cards, even in a basic way.
I have a few questions here:
1. How should I get started? I understand that the cards' initialization procedures are not understood. Is there a way I can work on that? Perhaps by monitoring writes to the card during the loading of the fglrx module?
2. Are there any plans to create a wiki for driver development? Someone probably should. It would help draw more developers to the project. A lack of a good project page tends to relegate a project to a marginal status.
I believe Jerome was working on a FreeDesktop Wiki entry.
Originally Posted by TechMage89
At Phoronix we would be more than happy to get involved with hosting of anything and other forms of collaboration outside of what we do already.