RFC: Presentation for Desktop Architecture meeting

Lionel Ulmer lionel.ulmer at free.fr
Mon Nov 14 16:03:42 CST 2005


OK, here is my wish list from the X.org guys:

 - relative mouse movement reporting. This is a must-have to have proper
   DInput support without the hacks we currently have in the code. Extension
   already discussed with X people on the mailing lists and they seem OK
   with it. Now we just need to find someone who codes it :-)

   As said, need to check if the XInput stuff could be re-used (last time I
   checked no as you cannot take control with XInput of the 'core' device -
   i.e. the mouse).

 - full support for resolution / depth switching. A nice idea was discussed
   the other day on the fd.o lists: what about being able to easily start a
   new display using an X API which would start a new X screen. This screen
   could then be used for full-screen games and would support any requested
   depth / resolution change (the problem with the former - depth change -
   is that clients need to support it and so the 'new screen' idea would
   solve this problem as one could still have legacy X applications running
   on the 'main screen' while still have complete control of depth /
   resolution on this secondary screen).

Then some 'nice to have' which would help in the GL / D3D front but may be
out of FD.O scope (and for which work-arounds are known):

 - GL (GLX ?) extension which would remove the 'thread-affinity' from GL.
   I.e. a GL context would be at the process level and not at an application
   level. An even better solution would to be able to create 'shareable'
   contexts which another thread could attach to (i.e. remove the one thread
   <=> one context rule).

 - GLX extension that would export the 'clip-list' functionnalities of cards
   (or at lest the one which is in the X code itself). Would help on
   applications (like Wine) that do their own in-window clipping.

 - same point as before but for Xv the day we will re-add this code for
   accelerated YUV display.

Some 'misc' stuff that is really in the 'we could use it' category:

 - have 'connection-level' configuration. Basically, if a client X change an
   X setting (resolution, mouse acceleration, ...), as soon as this client
   exits, restore the previous configuration. Would be useful to prevent
   having people restarting X because Wine crashed after having changed the
   resolution using XRand.

 - have a non-connection limited mouse-grab. To explain better, this would
   enable one to grab the pointer into a window (i.e. the mouse would never
   leave this window) while still sending events to all connections and not
   only to the connection which started the grab. This could be nice to
   simulate 'full-screen desktop mode' or for DXGrab. No idea if with Wine's
   current event model this is still usefull though.

Another 'let's dream' possibilities:

 - direct frame buffer access :-)

And finally, not in my domain, but investigate re-using something from FD.O
for the fabled DIB engine (extensions to Cairo, ...) ?

       Lionel

-- 
		 Lionel Ulmer - http://www.bbrox.org/



More information about the wine-devel mailing list