[Mesa-dev] [GSOC] DriConf Replacement

Nicolai Hähnle nhaehnle at gmail.com
Wed Apr 5 08:26:56 UTC 2017


Hi Jean,

On 04.04.2017 01:52, Jean Hertel wrote:
> I would like to ask what are the proposed projects for Gsoc 2017.
> Specifically I want to know if someone proposed something to the Driconf
> replacement idea.

If you haven't already, try installing driconf and playing around with 
it a bit. This should give you a reference point for how it works and 
the kind of complaints people have about driconf.

Most of the user complaints are about the GUI being clunky and missing 
features. For example, it doesn't properly deal with the PRIME setups 
found in many laptops (internal GPU + external GPU). The way 
application-specific settings work is pretty weird as well: Why is it a 
separate pane of the window?

 From the Mesa developer point of view, there is one huge problem with 
driconf which means we must advise users against using it right now: It 
writes out a full ~/.drirc which overrides the system's /etc/drirc. So 
when a user runs driconf once and then later updates Mesa, the 
Mesa-provided /etc/drirc may have some changed options which are 
effectively ignored.

Organizing a bit, here's a bunch of either smaller sub-projects to 
evolve the current DriConf, or things to keep in mind for a full re-design:

1) Change DriConf to not write the full ~/.drirc every time, but only 
the explicitly set options. DriConf should track options as "tri-state" 
(On/Off/System-default).

2) Handle the multi-GPU case. This requires some GUI changes, obviously. 
Under the hood, this requires directly enumerating the DRI device nodes 
and loading the driver for each device.

2b) Currently, devices are identified by driver name, which is a bit 
silly in A+A systems, where both the internal and the external GPU use 
radeonsi. Evolve the drirc XML format in a way to identify the actual 
device (by PCI ID makes the most sense, I think) instead of (possibly in 
addition to?) the driver.

2c) Consider adding an option to configure PRIME to driconf.

[2b and 2c will also require changes in Mesa; also, you may want to get 
rid of the implicit dependency on xdriinfo]

3) Re-design the GUI in general, keeping in mind that it should provide 
a more natural way to define application-specific settings and 
driver-specific settings, and a combination of those.

4) There's just a general bunch of cleanups for user-friendliness that 
would be nice. For example, why is "Force GLSL extension default 
behavior to 'warn'" under the "Debugging" category, when it really 
should be under an "Application bug workaround" category? And options 
like "Force a default GLSL version" should provide a drop-down box of 
possible options rather than a generic integer slider. Note that many of 
these cleanups actually require changes to Mesa as well.

This should give you a good idea of the kind of things that need to be 
taken into account.

As for the replace/rewrite question: It's always tempting to say "I can 
do better, let's rewrite everything", and if you're "just" in it for the 
learning experience, then go for it! (This may be especially true if 
there's a different GUI toolkit that you know by heart or you hate 
Python; though I'd say that using a high-level language for GUI work 
does have an advantage.)

However, think well about how much time you'll have to devote to this 
task. I would estimate multiple full-time months of work for addressing 
all of the above points properly. If you actually want to have a useful 
contribution in the end, it may be better and more rewarding to work on 
evolving the existing DriConf.

Cheers,
Nicolai


>
> Can anyone point me out?
>
> Thanks in advance.
>
> PS: I'm not elegible to the program, so please, don't reply saying that
> the subscription time is over, I already know it.
> --
> Enviado de meu dispositivo Android com K-9 mail. Desculpe-me pela
> brevidade.
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>


-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the mesa-dev mailing list