[Mesa-dev] [PATCH 08/22] i965/screen: Honor 'allow_rgb10_configs' option. (v2)

Tapani Pälli tapani.palli at intel.com
Fri Dec 1 11:30:23 UTC 2017


Not sure of the end results of discussion on this drirc option but 
personally I think it is good to have as temporary workaround.

Patches 7,8

Reviewed-by: Tapani Pälli <tapani.palli at intel.com>


On 29.11.2017 06:20, Mario Kleiner wrote:
> Allows to prevent exposing RGB10 configs and visuals to
> clients.
> 
> v2: Rename expose_rgb10_configs to allow_rgb10_configs,
>      as suggested by Emil.
> 
> Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>
> ---
>   src/mesa/drivers/dri/i965/intel_screen.c | 19 +++++++++++++++++++
>   1 file changed, 19 insertions(+)
> 
> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
> index 455a13c..f6853a8 100644
> --- a/src/mesa/drivers/dri/i965/intel_screen.c
> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
> @@ -2092,11 +2092,20 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
>      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,
> +                                              "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))
> +         continue;
> +
>         /* Starting with DRI2 protocol version 1.1 we can request a depth/stencil
>          * buffer that has a different number of bits per pixel than the color
>          * buffer, gen >= 6 supports this.
> @@ -2133,6 +2142,11 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
>      for (unsigned i = 0; i < num_formats; i++) {
>         __DRIconfig **new_configs;
>   
> +      if (!allow_rgb10_configs &&
> +          (formats[i] == MESA_FORMAT_B10G10R10A2_UNORM ||
> +          formats[i] == MESA_FORMAT_B10G10R10X2_UNORM))
> +         continue;
> +
>         if (formats[i] == MESA_FORMAT_B5G6R5_UNORM) {
>            depth_bits[0] = 16;
>            stencil_bits[0] = 0;
> @@ -2166,6 +2180,11 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
>         if (devinfo->gen < 6)
>            break;
>   
> +      if (!allow_rgb10_configs &&
> +          (formats[i] == MESA_FORMAT_B10G10R10A2_UNORM ||
> +          formats[i] == MESA_FORMAT_B10G10R10X2_UNORM))
> +         continue;
> +
>         __DRIconfig **new_configs;
>         const int num_depth_stencil_bits = 2;
>         int num_msaa_modes = 0;
> 


More information about the mesa-dev mailing list