Smitty wrote: > > Hei Jens > > Remember 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 > > Well I'd like to explode it. > > This is what I have so far: > > +-----------------------------------------+ > | X11/OpenGL Based Application | > | (Using 3D Direct Rendering) | > +-----------------------------------------+ > | | > V V > +----------------------+ +------------+ > | OpenGL Library | | XLib | > +----------------------+ +------------+ > | | | | | > | | V V | > | | +---------+ | > | | | GLXLib | | > | | +---------+ | > | | | | | > V V V | | > +-------------+ +--------+ | | > | Mesa | | DRILib | | | > +-------------+ +--------+ | | > | | | | | > | | V V V > | | +-----------------+ > | | | Protocol Encode | > | | +-----------------+ > | | | > V | | > +-------------+ | | > | Mesa Driver | | | > +-------------+ | | > | | | | > | V V | > | +---------+ | > | | DRM Lib | | > | +---------+ | > | | | | > | | | | > | | | V > | | | X Transport > V V V > MMIO IOCTL SHM > > Comments?
One thing you are using by exploding this box is an idea of which libraries are part of which process. Perhaps you can use a background color or some other border around all thes parts to clearly show all these libraries are part of the application's user process. I would say in the most common case (single thread, single 3D context) there is only one arrow between the application and a combined Xlib/OpenGL box. This single arrow can be thought of as the primary system:display.screen connection, to use X11 DISPLAY semanitics. There really isn't a path from the XLib to GLXLib. My layering in control_flow.jpg is better than my more recent ASCII art in this respect. Mesa and Mesa Driver should be collapsed into a single box labeled "OpenGL Renderer". Remember, non-Mesa based implementation can be used for 3D drivers. Also, Mesa based implementations are really start to blur the line between where device independent Mesa ends and the drivers begin. This is especially true for TCL based drivers. > One thing that I would like to be able to show is, when you have one line > going into a box and two lines coming from it, is a branch occuring or is > it an either or situation. ie a choice is made and only one path is taken. It depends. There are a large number of actual entry points in each of this libraries. Some entry points may never pass data along. Others may use one or both of the paths. > I've attached the latest WIP of control_flow.png to help show this. I did *not* receive an attachment. > RM = Resource Management > or = 1 of these 2 paths are followed > & = both of these 2 paths are followed > 2D = 2D commands & data > 3D = 3D commands & data > > lines in columns indicate individual paths while, > lines not in columns are agregations of paths. > > eg's in my bit of exploded ascii art and the X Server. > > This becomes somewhat of an issue when you have multiple line entering > and leaving a box, so if the lines should match up and don't or vice > versa - let me know. I'll probably understand this question better after I see your WIP. > DRMLib whats the differnce between the one in the X Server and the > one in the 3DDRP? They both talk to Kernel & SAREA (SHM & IOCTL). Functionally they are identical, i.e. the same source code. The only distinction, and it's not critical to the diagram, is the DRMLib used in the X Server needs to be a dynamically loaded X module. The one used by the 3D client driver is statically linked into the 3D client driver's shared library. Hmmm, thinking about this some more, I wonder if the staticly linked DRMLib will be a problem if we ever try to support direct rendering to multiple heads. If each head required a different driver, then the drm symbols would colide. Sorry, just thinking out loud... -- /\ 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?source=osdntextlink _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel