Xgl server
Martijn Sipkema
msipkema at sipkema-digital.com
Tue Nov 9 11:14:33 PST 2004
From: "Brian Paul" <brian.paul at tungstengraphics.com>
> Owen Taylor wrote:
> > On Fri, 2004-11-05 at 17:27 -0700, Brian Paul wrote:
> >
> >
> >>A while back I suggested designing a very simple OpenGL glue interface
> >>for creating/managing rendering contexts, drawing surfaces, etc. that
> >>the GL-based X server could layer upon. It would also work for people
> >>wanting to do X-less GL applications.
> >>
> >>mesa-solo (aka mini-glx) serves that purpose now, but it's kind of a
> >>hack (the emulation of the GLX and basic Xlib functions is kind of icky).
> >
> >
> > Especially inside the X server, presumably...
> >
> >
> >>It occured to me that maybe the EGL interface (part of the OpenGL ES
> >>standard) could be used instead.
> >>
> >>The EGL spec can be found here: http://www.khronos.org/opengles/spec.html
> >>
> >>One potential advantage to using the EGL interface is the fact that it
> >>might be supported by other hardware vendors. Suppose,
> >>hypothetically, that NVIDIA were to support EGL. Then, the GL-based X
> >>server could run on it (instead of a full X server).
> >
> >
> > Well, but once you fill in the blanks of what NativeWindowType, and
> > NativeDisplayType, do you really have much useful portability left?
>
> I think so. If we could create an EGL extension for screen management
> then the eglCreateWindow/PixmapSurface() functions wouldn't be used at
> all.
What exactly do you mean with screen management? I think there will still
need to be functions for creating/managing windows since that is what
OpenGL doesn't provide.
> We could also make EGL extensions for managing cursors, etc. if needed.
Perhaps it would be best to create a new API, based on GLX/EGL, but
designed specifically for use by a display server, such as X?
> >>One thing with EGL is that it's designed to interface with an existing
> >>window system, like X or WGL. See eglCreateWindowSurface() for
> >>example. But, I think a "pure" EGL implementation is possible with a
> >>little work.
> >
> >
> > It's quite possible that EGL is a useful starting point; why create
> > another <x>MakeCurrent name if we can use eglMakeCurrent. But in the
> > end, it seems like to go beyond proof-of-concept, we're going to have
> > a much bigger X server <=> hardware interface.
> >
> > - Implementing an X server in GL without clip lists sounds pretty
> > painful. But while GLX implementations have clip lists, they aren't
> > API exposed, and neither are they in EGL.
>
> Suppose we defined a new OpenGL extension to specify a list of scissor
> boxes, maybe glScissorListEXT(). Would that fit the bill?
Why not have the X server use windows provided by a lower level
driver library? The clip lists/bitmap of these can then be set by the
X server seperate from the OpenGL commands.
--ms
More information about the xorg
mailing list