[Mesa-dev] [PATCH v2 2/2] i965: expose RGBA visuals only on Android

Tapani Pälli tapani.palli at intel.com
Wed Sep 6 07:19:14 UTC 2017



On 09/05/2017 04:28 PM, Emil Velikov wrote:
> On 5 September 2017 at 08:44, Tapani Pälli <tapani.palli at intel.com> wrote:
>> Hi;
>>
>> How to test these changes? I get exact same visuals on x11 (using glxinfo,
>> eglinfo) with or without the patch.
>>
> Upon second look that cannot happen, yet.
> 
> As the masks (see attribMap in src/glx/dri_common.c) are unchecked, we
> currently consider RGBA the same as BGRA.
> Thus no new config should be added.
> 
> Rough call chain is:
> loader:
>   driver->createNewScreen2(... &driver_configs...); // ultimately
> calling intel_screen_make_configs
>   ...
>   driConvertConfigs(... driver_configs ...);
>   -> createDriMode // creates new config
>       -> driConfigEqual // first check if there's existing one that matches
>            -> scalarEqual // check the scalar values across the two configs
> 
> 
> I'm not sure where/how Marek observed the issue, without a
> corresponding GLX patch.
> GLX should be fixed to honour the masks, thus we'd want this patch as well.

Right, this serves as a safety belt when that happens. With the unsigned 
change;

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


> 
>>
>> On 07/31/2017 09:46 PM, Emil Velikov wrote:
>>>
>>> From: Emil Velikov <emil.velikov at collabora.com>
>>>
>>> As Marek pointed out in earlier commit - exposing RGBA on other
>>> platforms introduces ~500 Visuals, which are not tested.
>>>
>>> v2: Rebase, while keeping loaderPrivate
>>>
>>> Fixes: 1bf703e4ea5 ("dri_interface,egl,gallium: only expose RGBA visuals
>>> on Android")
>>> Cc: Tomasz Figa <tfiga at chromium.org>
>>> Cc: Chad Versace <chadversary at chromium.org>
>>> Cc: Marek Olšák <maraeo at gmail.com>
>>> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
>>> ---
>>>    src/mesa/drivers/dri/i965/intel_screen.c | 23 ++++++++++++++++++++++-
>>>    1 file changed, 22 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c
>>> b/src/mesa/drivers/dri/i965/intel_screen.c
>>> index ced80cb8790..48b412bd06a 100644
>>> --- a/src/mesa/drivers/dri/i965/intel_screen.c
>>> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
>>> @@ -1746,6 +1746,20 @@ intel_supported_msaa_modes(const struct
>>> intel_screen  *screen)
>>>       }
>>>    }
>>>    +static int
>>> +intel_loader_get_cap(const __DRIscreen *dri_screen, enum dri_loader_cap
>>> cap)
>>> +{
>>> +   if (dri_screen->dri2.loader && dri_screen->dri2.loader->base.version
>>>> = 4 &&
>>> +       dri_screen->dri2.loader->getCapability)
>>> +      return
>>> dri_screen->dri2.loader->getCapability(dri_screen->loaderPrivate, cap);
>>
>>
>> getCapability returns unsigned
>>
> Thanks, will fix.
> 
> -Emi
> 


More information about the mesa-dev mailing list