[Mesa-dev] [PATCH] dri: don't load .drirc from $HOME
Axel Davy
axel.davy at ens.fr
Sat Jan 7 13:28:41 UTC 2017
Expecting the user to use env vars it ok for power users, but not very
user-friendly for newbies, or just people who don't like using the
command line. And that's exactly these users who are likely to use
something like driconf.
Axel
On 07/01/2017 14:23, Kai Wasserbäch wrote:
> Hey Marek,
> maybe <http://mesa3d.org/application-issues.html> should be updated then as
> well? Just so the page doesn't recommend using driconf? Apart from that, the
> page is basically useless anyway so maybe deleting it altogether would be best?
> (What would be nicer to have would be a page listing all options one can set,
> like the allow_glsl_extension_directive_midshader and similar options.)
>
> Apart from that I find the idea (from a user POV) good. If I want options
> applied I can always set them on the command line while launching. And/Or send a
> patch for the system dric if I find it important enough. Which reminds me that I
> wanted to send one for "Divinity: Original Sin Enhanced Edition".
>
> Cheers,
> Kai
>
>
> Marek Olšák wrote on 07.01.2017 13:45:
>> From: Marek Olšák <marek.olsak at amd.com>
>>
>> ~/.drirc is created by the driconf tool (GPL license) and it overrides
>> system drirc settings and can't be changed by Mesa updates.
>> This drops support for the tool. It has been a source of major pain
>> for us and it continues to cause problems.
>>
>> If people wanna keep this and enjoy the pain, I will make a v2 that
>> applies it to radeon drivers only.
>> ---
>> src/mesa/drivers/dri/common/xmlconfig.c | 51 ++++++++++-----------------------
>> 1 file changed, 15 insertions(+), 36 deletions(-)
>>
>> diff --git a/src/mesa/drivers/dri/common/xmlconfig.c b/src/mesa/drivers/dri/common/xmlconfig.c
>> index a8f7c9b..3d6cb67 100644
>> --- a/src/mesa/drivers/dri/common/xmlconfig.c
>> +++ b/src/mesa/drivers/dri/common/xmlconfig.c
>> @@ -937,65 +937,44 @@ static void parseOneConfigFile (XML_Parser p) {
>> close (fd);
>> #undef BUF_SIZE
>> }
>>
>> #ifndef SYSCONFDIR
>> #define SYSCONFDIR "/etc"
>> #endif
>>
>> void driParseConfigFiles (driOptionCache *cache, const driOptionCache *info,
>> int screenNum, const char *driverName) {
>> - char *filenames[2] = { SYSCONFDIR "/drirc", NULL};
>> - char *home;
>> - uint32_t i;
>> struct OptConfData userData;
>> + XML_Parser p;
>>
>> initOptionCache (cache, info);
>>
>> userData.cache = cache;
>> userData.screenNum = screenNum;
>> userData.driverName = driverName;
>> userData.execName = GET_PROGRAM_NAME();
>>
>> - if ((home = getenv ("HOME"))) {
>> - uint32_t len = strlen (home);
>> - filenames[1] = malloc(len + 7+1);
>> - if (filenames[1] == NULL)
>> - __driUtilMessage ("Can't allocate memory for %s/.drirc.", home);
>> - else {
>> - memcpy (filenames[1], home, len);
>> - memcpy (filenames[1] + len, "/.drirc", 7+1);
>> - }
>> - }
>> -
>> - for (i = 0; i < 2; ++i) {
>> - XML_Parser p;
>> - if (filenames[i] == NULL)
>> - continue;
>> -
>> - p = XML_ParserCreate (NULL); /* use encoding specified by file */
>> - XML_SetElementHandler (p, optConfStartElem, optConfEndElem);
>> - XML_SetUserData (p, &userData);
>> - userData.parser = p;
>> - userData.name = filenames[i];
>> - userData.ignoringDevice = 0;
>> - userData.ignoringApp = 0;
>> - userData.inDriConf = 0;
>> - userData.inDevice = 0;
>> - userData.inApp = 0;
>> - userData.inOption = 0;
>> -
>> - parseOneConfigFile (p);
>> - XML_ParserFree (p);
>> - }
>> -
>> - free(filenames[1]);
>> + p = XML_ParserCreate (NULL); /* use encoding specified by file */
>> + XML_SetElementHandler (p, optConfStartElem, optConfEndElem);
>> + XML_SetUserData (p, &userData);
>> + userData.parser = p;
>> + userData.name = SYSCONFDIR "/drirc";
>> + userData.ignoringDevice = 0;
>> + userData.ignoringApp = 0;
>> + userData.inDriConf = 0;
>> + userData.inDevice = 0;
>> + userData.inApp = 0;
>> + userData.inOption = 0;
>> +
>> + parseOneConfigFile (p);
>> + XML_ParserFree (p);
>> }
>>
>> void driDestroyOptionInfo (driOptionCache *info) {
>> driDestroyOptionCache (info);
>> if (info->info) {
>> uint32_t i, size = 1 << info->tableSize;
>> for (i = 0; i < size; ++i) {
>> if (info->info[i].name) {
>> free(info->info[i].name);
>> free(info->info[i].ranges);
>>
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170107/0fef8827/attachment-0001.html>
More information about the mesa-dev
mailing list