dynamic driver configuration idea...

Thomas Winischhofer thomas at winischhofer.net
Fri Apr 8 06:02:14 PDT 2005

Hash: SHA1

Luc Verhaegen wrote:
> On Fri, Apr 08, 2005 at 04:34:38PM +1000, Dave Airlie wrote:
>>I've been thinking about this and recently after using Thomas
>>Winischhofer's sisctrl application wondered why we don't have a
>>standard method for driver configuration...
>>I'm thinking something like driconf does for DRI 3D drivers, but maybe
>>a bit more network aware, (btw driconf just writes a local .drirc
>>file, and it gets the config options from the actual driver binary and
>>this is read by the 3D client library at startup so you can have
>>differnet settings for different apps... etc..)
>>it would probably be like a super xrandr, the driver could return an
>>XML description of what if wants to offer, a GUI app could build a GUI
>>from those options and could then send the results dynamically back to
>>the driver to reconfigure itself.. as every driver would have
>>different options I wouldn't feel the need to limit it through some
>>interface hence XML or something like that...
>>Mainly I would think of CRT configurations, desktop size, driver
>>acceleration tweaks, like you see on Windows drivers .... also it
>>might have the option to write the X config file but that may not be
>>I can see security issues as well with what clients can access it .. 
>>btw I probably won't write this at all, just throwing the idea around
>>as that sisctrl panel doth rock when messing with TV-OUT on an SIS
> Doesn't sisctrl work over an Xv port? 

Not any longer. I ditched this because of its lack of bi-directional
communication. The new driver implements a dedicated SISCTRL extension.
(Available only on my website, not yet in CVS.. but soon.)

> There has been some superficial conversation about a general xorg
> attribute system (of which Xv attributes can become a subset, or the 
> general can become a superset, whatever :)) in #freedesktop late january 
> (27th it seems - i'm not immediately able to find the gzipped online 
> logs through google)
> Alex Deucher was very interested in it and i personally am too, although 
> i am not currently devoting any time towards making it happen (yet?).

Two years ago I tried to write down a universal concept for such
run-time driver configuration but I gave up on my universality
intentions after a while because of the widely totally different
features, needs and - last but in no way least -  interactions between
those two for different cards. Since there was serious immediate demand
for run-time config (mainly for embedded devices and laptops for which
SiS chips are often used), I went the proprietary road.

The only possible way to do this at that time (without changes in the
server core) was the Xv attribute interface. As mentioned, this had (and
has) the disadvantage that there is no ordered bi-directional
communication (for cases such as: Is a certain display mode supported
for a certain output device?). Also, it didn't allow to talk to the
(server internal) screens forming a Xinerama screen.

Later the HandleMessage() stuff was added to the Misc extension; but
this is not ideal because it is limited to text messages (and parsing
this is slow and a pain...).

Now I ended up with a dedicated server extension, solving all the above
disadvantages the "works for me and my users" way.

I have somewhat mixed feelings as regards the XML idea. The generation
and parsing of XML is not only slow, it also looks like requiring a huge
amount of work on the server side (security issues left aside for now).
Although, granted, its advantages are obvious, too: A simple generic GUI.

But to make it short: I don't have a better solution to offer either.
Perhaps there is a reason for this being vendor-specific in Windows as well?


- --
Thomas Winischhofer
thomas AT winischhofer DOT net	       *** http://www.winischhofer.net
twini AT xfree86 DOT org
Version: GnuPG v1.4.0 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org


More information about the xorg mailing list