Smitty wrote:
> 
> Howzit Jens?
> 
> > Did you see the flow chart at
> > http://dri.sourceforge.net/doc/control_flow_poster.jpg
> 
> Yes, and I've worked through it.

Great, that's where the real technical detail is.
 
> I am referring to:
> http://dri.sourceforge.net/doc/data_flow.jpg

Well, this is really I higher level diagram for non-technical types.  We
are just showing that 3D data bypasses the typical X protocol path.
 
> IMHO it doesnt make it any clearer what happens once the 2D
> & 3D data arrives at the X Server (with its Decode & Dispatch,
> DDX Driver, Mesa Software Renderer).

None of the diagrams do a detailed job for the indirect case.  Direct
rendering is the whole point of the diagrams.
 
> Yes I can see that the data arrives at the X server, something
> happens to it and then it leaves (transformed).
> 
> What happens in there is what I'm after.

I'll be glad to fill in this detail if it will help.  However, since
we'll be getting technical; let's start with the detailed diagram at
http://dri.sourceforge.net/doc/control_flow_poster.jpg

> What is the sequence in those various paths through the X Server
> which I laid out in my previous email.

2D commands flow:

  Protocol Decode
  DIX (Not shown, but would be about where the "X Server" label is)
  XAA
  DDX Driver
  Hardware

Indirect 3D commands flow:

  Protocol Decode
  GLX
  Mesa (including SW rasterizer)
  DDX Driver (to push pixels)

DRI Resource Mgmt commands flow:

  Protocol Decode
  DRI
  DRM Driver (Not show, but should be where Kernel DRI Module is)

A couple of architectural changes since these diagrms where created:

1) We no longer have a driver/sub driver architecture for the kernel. 
Now, we just have monolithic DRM drivers.  No generic sub driver, no
device independent DRI kernel module.

2) We now have a single libGL.so library that loads the appropriate
OpenGL core rendering driver.  So, the entire box labeled "X11/OpenGL
Based Application (Using 3D Direct Rendering)" is really something like
this:

+-----------------------------------+
|   X11/OpenGL Based Application    |
|   (Using 3D Direct Rendering)     |
+----------------------+------------+
|   OpenGL Library     |     XLib   |
|                 +----+----+       |
|                 | GLXLib  |       |
+-------------+---+----+    |       |
|    Mesa     | DRILib |    |       |
|             |   +----+----+-------+
+-------------+   | Protocol Encode |
| Mesa Driver |   |                 |
|       +-----+---+-----------------+
|       | DRM Lib |        |
+-------+---------+        |
    |     |     |          V
    |     |     |      X Transport
    V     V     V 
  MMIO  IOCTL  SHM

Note: The Mesa and Mesa Driver can be replaced with any OpenGL
compatible core renderer.

3) The poster uses a color key:
    Red == Device Specific Modules
    Grey == Mesa (kernel modules shouldn't be grey)
    Green == X Transport
    Gold == All Other Device Independent Modules

In the above diagram update (2), all modules would be gold except:
   Mesa (Grey)
   Mesa Driver (Red)
   Protocol Encode (Green)

I can go on and on...but perhaps it would be better if you had specific
questions.

Regards,
Jens

--                             /\
         Jens Owen            /  \/\ _    
  [EMAIL PROTECTED]  /    \ \ \   Steamboat Springs, Colorado

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm

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

Reply via email to