[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