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

Mario Kleiner mario.kleiner.de at gmail.com
Thu Jan 11 16:07:06 UTC 2018



On 01/11/2018 02:39 PM, Marek Olšák wrote:
> 
> 
> On Jan 11, 2018 7:14 AM, "Mario Kleiner" <mario.kleiner.de at gmail.com 
> <mailto:mario.kleiner.de at gmail.com>> 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 <mailto: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.
> 
>     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?
> 
> 
> I think that's not completely true. I965 loads drirc options for each 
> screen and then again for each context, which is weird.
> 
> Generally, the screen object isn't allowed to be modified by 
> glXCreateContext.
> 
> Marek
> 

Ok, the patch just sent out retains the new way of things, and defaults 
i965 to rgb10 off, but parses drirc again, so one can enable it via a

<option name="allow_rgb10_configs" value="true"/>

snippet. Tested under Wayland+Weston and X11 XOrg Server 1.19.3 with GLX 
and EGL apps.

-mario

> 
>     -mario
> 
> 
>         On 01/09/2018 04:04 PM, Marek Olšák wrote:
> 
>             From: Marek Olšák <marek.olsak at amd.com
>             <mailto: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
>         <mailto:mesa-dev at lists.freedesktop.org>
>         https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>         <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>
> 
> 


More information about the mesa-dev mailing list