[Mesa-dev] [PATCH] dri_util: remove ALLOW_RGB10_CONFIGS option (v2)

Tapani Pälli tapani.palli at intel.com
Thu Jan 11 08:14:34 UTC 2018



On 01/11/2018 08:14 AM, Mario Kleiner wrote:
> On 01/10/2018 07:04 AM, Tapani Pälli wrote:
>> Hi Marek;
>>
>> This one works but only if you add
>>
>> DRI_CONF_ALLOW_RGB10_CONFIGS("false")
>>
>> to the DRI_CONF_SECTION_MISCELLANEOUS section in intel_screen. With 
>> that change: Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
>>
> 
> With this patch now committed to master, rgb10 visuals on i965 are 
> completely dead, as far as my testing goes. rgb10 is always off, and the 
> 'allow_rgb10_configs' option in drirc gets ignored for enumeration of 
> visuals/fbconfigs, e.g., in glxinfo.
> 
> Before it worked on my machines, defaulted to on, and could be 
> controlled via drirc.

Yes, but as it broke regular visuals (on some of our testing machines as 
well) we needed a fast fix for this.

> As far as i can see, setting up &screen->optionCache for i965 happens 
> too late, only at glXCreateContext() time -> brwCreateContext() -> 
> brw_process_driconf_options().
> 
> The old way read the options file as part of driCreateNewScreen2(), 
> which was called as part of __glXInitialize, e.g., from 
> glXChooseVisual() -- early enough to affect the enumeration/selection of 
> visuals.
> 
> So i don't know if the old way was the right way, but it did give the 
> right behavior for i965 whereas the new one doesn't.
> 
> Ideas?

While this is an issue, I think the visual corruption has higher 
priority than this. This can be fixed meanwhile or afterwards when 
things work OK. Now it can be toggled true in intel_screen.c when 
debugging/investigating the issue.


> -mario
> 
>>
>> On 01/09/2018 04:04 PM, Marek Olšák wrote:
>>> From: Marek Olšák <marek.olsak at amd.com>
>>>
>>> This is unused because it's for libGL/libEGL, not drivers.
>>>
>>> v2: i965 was wrong, because it used dri_util instead of its own config.
>>> ---
>>>   src/mesa/drivers/dri/common/dri_util.c   | 4 ----
>>>   src/mesa/drivers/dri/i965/intel_screen.c | 2 +-
>>>   2 files changed, 1 insertion(+), 5 deletions(-)
>>>
>>> diff --git a/src/mesa/drivers/dri/common/dri_util.c 
>>> b/src/mesa/drivers/dri/common/dri_util.c
>>> index d4fba0b..e6a7d23 100644
>>> --- a/src/mesa/drivers/dri/common/dri_util.c
>>> +++ b/src/mesa/drivers/dri/common/dri_util.c
>>> @@ -48,24 +48,20 @@
>>>   #include "main/version.h"
>>>   #include "main/debug_output.h"
>>>   #include "main/errors.h"
>>>   #include "main/macros.h"
>>>   const char __dri2ConfigOptions[] =
>>>      DRI_CONF_BEGIN
>>>         DRI_CONF_SECTION_PERFORMANCE
>>>            DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_1)
>>>         DRI_CONF_SECTION_END
>>> -
>>> -      DRI_CONF_SECTION_MISCELLANEOUS
>>> -         DRI_CONF_ALLOW_RGB10_CONFIGS("true")
>>> -      DRI_CONF_SECTION_END
>>>      DRI_CONF_END;
>>>   /*****************************************************************/
>>>   /** \name Screen handling functions                              */
>>>   /*****************************************************************/
>>>   /*@{*/
>>>   static void
>>>   setupLoaderExtensions(__DRIscreen *psp,
>>>                 const __DRIextension **extensions)
>>> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c 
>>> b/src/mesa/drivers/dri/i965/intel_screen.c
>>> index 3e016b5..89db821 100644
>>> --- a/src/mesa/drivers/dri/i965/intel_screen.c
>>> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
>>> @@ -2057,21 +2057,21 @@ intel_screen_make_configs(__DRIscreen 
>>> *dri_screen)
>>>      __DRIconfig **configs = NULL;
>>>      /* Expose only BGRA ordering if the loader doesn't support RGBA 
>>> ordering. */
>>>      unsigned num_formats;
>>>      if (intel_loader_get_cap(dri_screen, DRI_LOADER_CAP_RGBA_ORDERING))
>>>         num_formats = ARRAY_SIZE(formats);
>>>      else
>>>         num_formats = ARRAY_SIZE(formats) - 2; /* all - RGBA_ORDERING 
>>> formats */
>>>      /* Shall we expose 10 bpc formats? */
>>> -   bool allow_rgb10_configs = driQueryOptionb(&dri_screen->optionCache,
>>> +   bool allow_rgb10_configs = driQueryOptionb(&screen->optionCache,
>>>                                                 "allow_rgb10_configs");
>>>      /* Generate singlesample configs without accumulation buffer. */
>>>      for (unsigned i = 0; i < num_formats; i++) {
>>>         __DRIconfig **new_configs;
>>>         int num_depth_stencil_bits = 2;
>>>         if (!allow_rgb10_configs &&
>>>             (formats[i] == MESA_FORMAT_B10G10R10A2_UNORM ||
>>>              formats[i] == MESA_FORMAT_B10G10R10X2_UNORM))
>>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list