[Mesa-dev] [PATCH 4/4] dri: Add KHR_no_error toggle to driconf

Grigori Goronzy greg at chown.ath.cx
Tue Jul 18 08:26:28 UTC 2017


On 2017-07-17 19:21, Emil Velikov wrote:
> On 13 July 2017 at 12:09, Grigori Goronzy <greg at chown.ath.cx> wrote:
>> On 2017-07-12 15:15, Emil Velikov wrote:
>>> 
>>> As mentioned in earlier commit no_error should be device agnostic.
>>> Hence removing the st/dri bits and adding a DRI_CONF_MESA_NO_ERROR()
>>> line next to DRI_CONF_VBLANK_MODE seems like the better solution.
>>> 
>> 
>> Hm, driconf overrides are typically set per screen and/or driver, so 
>> that
>> won't work. The overrides will be ignored because of screen/driver 
>> mismatch.
>> So I think it needs to be implemented separately for each classic 
>> driver.
>> I'll keep this part to the Gallium state tracker for now.
>> 
> Hmm my understanding was completely different. Have you tested my
> suggestion or this is your assumption?
> 

Sure, I have tested this. Check where driParseConfigFiles() is used in 
the code. Different parts of the stack have completely separate driconf 
databases, which are associated with different "driver names" (in 
quotes, because it's a rather confusing description, given the usage). 
The generic DRI layer that handles vblank_mode uses "dri2" as "driver 
name". Other parts have other different "driver names", all of which 
aren't obvious or documented, and most of the classic Mesa drivers also 
have separate driconf databases. So I added mesa_no_error to the generic 
DRI layer, but it only produced any result when an option is added to a 
"dri2" section of the driconf XML, which makes it somewhat strange and 
impractical to use. Of course vblank_mode has the same issue. I think 
this isn't really a good design and should be addressed at same point. 
Maybe it could be a good option to move to a single global database, or 
a hierarchical database (somewhat like LDAP). There are various possible 
options.

At this time, for practical reasons, I think it makes sense to add the 
mesa_no_error flag at the graphics driver layer only. That makes it easy 
to override this setting with the "driconf" GUI tool and there is no 
obscure "driver name" magic going on that users should not need to know 
about.

Grigori


More information about the mesa-dev mailing list