Re: DRI integration, sorta

Brian Paul <brian-CdwZJljFklH+2FeEXyspIVaTQe2KTcn/@public.gmane.org>
Newsgroups gmane.comp.freedesktop.xserver
Organization Tungsten Graphics, Inc.
Message-ID <[email protected]>
David Morse wrote:
> I'm a clueless slashdot reader, trying to understand this thread and 
> project, with a view to helping in some way down the line.
> 
> So, you've got lots of little applications, most of them obliviously 
> drawing their little hearts out in the old-fasioned XDrawLine way.  They 
> send their cute little commands to the X server, which instead of 
> drawing to framebuffer, (SUPRISE) renders them to a 
> ?raster?pixmap?whatchamacallit which lives in ?video RAM?system memory?.

How about "an off-screen image buffer which can also be treated as 
texture map".


>  a "compositing manager" process can read the various 
> raster/pixmap/whatchamacallits, and blends them based on some rules that 
> are left unspecified (why leaving it unspecified is sooo clever, or even 
> useful, I don't understand).

Compositing with blending to simulate translucency is just the tip of 
the iceberg of possibilties.

Today's (and tomorrow's) 3D graphics hardware allows all kinds of new 
possibilities beyond that:

1. per-window colormap lookups/transformations.  An off-screen 8-bit 
window could be fed through an OpenGL color table to produce RGB 
colors of any depth.  Per-window gamma correction, etc.

2. Rotate all the windows by 90 degrees for portait-mode displays.

3. Geometric warping of the windows, perhaps to adjust the geometry 
for projectors and/or non-planar surfaces.

4. Simulation of hardware overlay planes with OpenGL multitexture.

5. Consider off-screen floating point color buffers and employing 
fragment programs during compositing.  Lot's of interesting possibilities.

6. The window manager itself might want to control the compositing in 
some fancy way.

Since the possiblities are endless so it makes sense to try to 
modularize the compositing system so it might be upgraded/replaced as 
needed.


> There are software compositing managers, and in the future there will be 
> hardware compositing managers, that somehow re-use an OpenGL 
> implementation to do the dirty work.  BUT, are you planning on using 
> everybody's OpenGL, like the propritary nvidia gl?  If so, how to talk 
> to it without using their glx?  Or if you use their glx too, how to talk 
> to it without having the standard old xfree86 xserver?  Isn't the 
> xfree86 xserver the wheel you're trying to re-invent?  (better, with 
> anti-aliased edges ;)

You could probably run a compositing window system on top of a 
conventional X server w/ accelerated GLX, but that's not ideal.

Ultimately, it would be better to have an OpenGL implementation that 
has extentions to facilitate the needs of the compositing X server 
(render to texture, for example)

-Brian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.