Okay, sorry, I just had to laugh.  Not your fault, I admit that. You are as innocent 
as I used to be.

Here's the deal bro:

[RANT MODE ON]

Sometimes it seems that the DRI project is for a "special" group of people who are 
(either,or,and,not,etc,etc):

1) special, either because they designed it, or because they already had 18+ years of 
X11 + graphics industry experience

2) they came from 3DFX, SGI, HP and other big names who had lots of personel working 
on grafix

3) they design it themselves and don't need to make docs for others

4) or if they do make docs, they do it because else it won't be regarded as official 
or it won't "sell" (contracts for making drivers) to big names like ATI or Matrox who 
will hire these people to make DRI drivers for them

5) and after the first bunch of docs which are more like pre-design docs, the design 
changes radically leaving these docs in the dust and making a new comer even more 
confused, because some people still claim their are uptodate: what a bunch of 
horseshit.

6) (these people) don't think back to the times when they needed a helpful start, and 
think that everyone is just gonna jump on the X11+DRI+Kernel gorilla and start 
hacking. Yeah, right!  I was speaking assembly  at age 2 and X11 calls at age 4. NOT 
!!!!!  I _read a lot_ (like most of us? i hear agreement) before I learned the things 
I know. 

Anyways, the above things are sometimes true, othertimes not, for others partial, for 
others full. Take it as you will. With a grain of salt or none at all. That has been 
my experience at times.

I have tried time after time to elicit from the DRI project any kind of useful info so 
that I could actually help the busy DRI developers (they are only a handful), by 
creating some devel. docs myself and of course working on 3D drivers. All I got was 
2-3 replies (on the most "official" attempt to present a structured/formatted 
FAQ-style document asking some fundamental questions for beginners ; apart from that 
various questions were asked randomly and most did get answered, but they were a tiny 
portion of what was needed for a good devel doc). That was it.

What docs are there:

There isn't even an existing "shell" or "skeleton" driver (typical for most types of 
projects where they allow "third parties" to develop for them), with the inards thrown 
out, so that one can at least get a clue of what components a driver is built of. 
Heck, not even a list of files (and their locations and the necessary/needed 
inter-dependence).  Heck, I know how to bang registers, but DRI is _not_ designed by 
me, and it's _not_ clear as daylight even to an experience (non-DRI experience) 
programmer. Even after reading all the outdated PI documents multiple times, the 
actual implementation details (not the overall idea) was still unclear or fuzzy at 
best.

Oh yeah, there are the infamous "design/devel" documents. They are known as the PI 
docs. PI = Precision Insight, the company formed by the core DRI developers who 
developed the DRI initially based on these documents (their documents). The documents 
were good for the first couple of months of the DRI developement I imagine. Quickly 
after, things started to diverge and the docs were full of "this is not implemented" 
or "will be in the future" or "incomplete; today we will use bubble sort for this, 
quicksort later". That's fine by me, but as long as you tell me _when_ you decide to 
switch over to "quicksort" !!! Or even better, when the DRI never switches to 
"quicksort" but to something totally undocumented in the PI docs, like "radix sort".  
(PS. when I say bubble/quick/radix sort, I am just interchanging these well known 
algorithms for DRI/grafix specific algorithms, which don't have such formal names, or 
well known names. I personally have not seen any of the above sorting methods in the 
DRI  :)

So, letme continue with how I saw the progression of things. So the PI docs diverged 
to holly hell from the implementation on many issues. Stuck out of date. By that time 
the DRI had already started taking shape, companies like ATI and Matrox (I might be 
wrong on all this company stuff as it was of course never public info, since the 
contracts were between company and the DRI group/PI/VAlinux later) came into view, and 
wanted to contract the PI people to write drivers for Linux.  Anyways, so the 
contracts came in. The docs served their purpose to start things up, so who cares 
about updating them? Nobody. At least that was the view from this side of the project, 
because the dates nor the docs changed. Then VALinux buys PI and all/some? the core 
DRI developers and the story goes on. 

Point: PI docs are _behemouthly out of date_.  Like Mister Iceman found in the Alps ?  
Like since 1999 ?  or 2000 ? Compare this with almost any other "Open Source" 
projects/initiative.

Okay, fine. So the answer on the DRI list is always: read the source.
Notice how easy answer it is:
1) it's there (the source) duh!
2) if you can't read it, then you must be pretty lame, coz we can
What can you possibly answer to that?  Almost no-one dares (at least not without some 
thinking) to say: well I can't make sense of it!
Thank god some people are actualy self-actualized, not overcome by unfounded notions 
of incompetence, but rather realistic and very normal learning curve issues, and can 
and do say so: code ain't enough!

Well obviously the very well seasoned X11/GL/3D/grafix gurus (read: all the core DRI 
developers) know how to read these sources, especially the DRI sources (guess what? 
they wrote them).

So here come new hackers who really want to get more than 5-6 ( read: 1) 3DFX*, 2) 
Matrox*, 3) ATI R128+Radeon*, 4) Intel i8xx, 5) 3DLabs*, forgot any? I am sure not 
more than 1-2, at least not during the early 2001 period ) 3D cards working on DRI 
(Note: many cards don't work: S3* cards, PowerVR, Kyro*, SiS, a few ATI's, NVidia 
cards, and others, this again during the early 2001 period). 

Some developers-wanna-be's had docs, others didn't, others hoped that XFree86 would 
help out (DRI not joined with XFree86, no sharing of common resources like docs, 
unless u are buddies with those guys, u know, part of the "X-files" :) ), and all they 
found in front of them were big walls to climb. To me, this was very reminiscent of 
the "old" DOS and Windows days of "closed information" everywhere.  Oh blimey, I am 
wrong: the source was open!!!!  
(like in the DOS days we had disassemblers, how much help they were when working with 
API's .. Not! )

Well, this situation didn't help much those who wanted to take a first step (don't 
look at only me, look at yourself, what are u asking? same things I was) in the 3D/DRI 
world.


Somehow some people managed to overcome some issues, some with help from some DRI 
developers, but _never_ with devel. docs. At least I never heard anyone praise such a 
thing! Of course overcoming doesn't necessarily mean doing it the proper way.  Fixing 
bugs or patching almost-working drivers (half-working because the proper DRI 
maintainter/coder moved over to a more important job: contracted company drivers). The 
proper way being to be able to fully code from start to finish a complete and fully 
compliant and working driver.
(AKA: I can go fix a couple driver bugs (usually easily identifiable: ex: ARGB 
textured triangle drawing doesn't work) that are laying around 1-2 DRI files, but 
that's not comparable in my opinion to writing a full driver).

Continuing on, I wanted to write drivers from scratch, not fix non-working drivers 
(mach64). I learned the hardware. Programmed it, made a user-space mini-driver so I 
can develop the code for the hardware, but when it came to doing it in the DRI I was 
stuck. I of course read and re-read the PI docs, asked many times what was outdated 
and grepped sources looking for the needle in the haystack, but soon realized that if 
I was to ask about 10,000 (literally) questions before the driver was complete, then 
what the f**k? drop the card, grab a NVidia and f**k the DRI.

Basically that was my final decision: 
I disagree with the implicit DRI ideology. I say implicit because I never heard anyone 
preach it, but it sure as hell seems alive around the DRI:

When I want to help everyone with my effort (provide free 3D drivers for 
yet-unsupported hardware), why _should_ I re-invent the wheel (re-learn how a piece of 
supposedly VERY important and documented (such as very important projects _SHOULD_BE) 
software project),  when the wheel should be already well defined and documented.  No. 
I refuse to waste my time. Not only is my time wasted, but the time of the whole OSS 
world!! Because when I could be pumping useful code for them, I am _reinventing the 
wheel_. What a waste.  So that's why I stopped frankly.

It wasn't that I didn't want to code; It's what I do. It wasn't that I didn't want to 
put the time; I spent tons of hours working on the hardware, and I was planning to put 
many hours into the X11/DRI, but for GOD'S SAKE, I am not blind-stupid: I will do it 
with a reasonable scientific approach: NOT REINVENTING THE WHEEL (unless absolutely 
necessary of course).

So, there's my take on things. I am sorry if it sounded disappointing or malicious. I 
am _really_ disappointed myself from the whole DRI project due to the way things have 
turned out.  Perhaps I am wrong on somethings, I will accept that, but the majority of 
issues I mentioned, I have seen over and over in the mailing lists, through personal 
emails with people, and the #dri channel on IRC. I am not alone.

Finally, I of course do not hate the DRI developers, and I realize what an ambitious 
project it is, and do appreciate just like any other user of 3D the efforts they put 
into it, BUT, once again I am not blind-stupid:

there is money involved, so not everyone does it for "free", there is of course love 
of the job invovled and I especially appreciate it, but come-on: don't be one-sided. A 
well rounded person, project, whatever, has to be optimal or as optimal as _can_ be 
(can=lazyness subtracted from the equation), on ALL fronts.
And in the case of Open Source projects, because the development is by default a 
decentralized model [ DRI seems like an exception at times :( ], documentation and 
guidence is very important.  

Especially on a project as complex as X11+DRI+kernel. We are talking about 3 major 
subsystems of an OS (OS in the generic, non-kernel sense).
Once again, we recognize the difficulties of the combo (X11+DRI+kernel), but come-on, 
I didn't decide to write a 3D driver because I just managed to kick out a 5-liner Perl 
script and got a sugar-geek-high. I, as many other prospecting DRI developers (note: 
DRI developers, because many of us are developers in many other projects) do have some 
solid C, assembly and (grafix) hardware experience. 

Oh well. Enough of this. The more I recall issues the more disappointed I get..


[RANT MODE OFF]

Finale: 

Anyone: please think about it before (if) you respond to this email. If I am wrong in 
something of course I would like to hear it, but my overall feeling of disappointment 
in the DRI project is not gonna change easily. If you want to respond, only do it with 
DRI devel. docs. Otherwise you are probably wasting your and my time. 

Thanks and good luck to you!



_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to