[Mesa-dev] [RFC] egl: stop claiming support for pbuffer + msaa (RFC)

Tapani Pälli tapani.palli at intel.com
Wed Sep 28 06:56:22 UTC 2016


On 09/28/2016 12:19 AM, Ian Romanick wrote:
> On 09/26/2016 12:41 AM, Tapani Pälli wrote:
>> This fixes a crash in egl-create-msaa-pbuffer-surface Piglit test
>> and same crash in many dEQP EGL tests.
>>
>> I also found that some Qt example did a workaround because of this
>> crash: https://bugreports.qt.io/browse/QTBUG-47509
> Eh... I would have to double-check, but I thought each config had a set
> of bits that described the kinds of surfaces (window, pixmap, or
> pbuffer) it could be used with.  I know this is how GLX works.  Assuming
> that's the case, the correct fix is to never set the the pbuffer bit for
> configs that have multisample.
>
> If I'm reading this patch correctly, it looks like it will remove those
> configs completely.  We still want to have multisample windows.  Am I
> understanding this correctly?

Ah that's right, with this multisampled configs get disabled as most (if 
not all?) have both window and pbuffer bits set. As you said this needs 
to be done by removing pbuffer bit from msaa configs somewhere else. 
I'll make another patch, thanks!

>> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
>> ---
>>
>> This is RFC as I'm not sure if we are supposed to support this. I tried
>> to verify overall pbuffer situation with some mesa-demos using pbuffer
>> but those are not working for me at all with or without my patch.
>>
>>   src/egl/main/eglconfig.c | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/src/egl/main/eglconfig.c b/src/egl/main/eglconfig.c
>> index 6161d26..20cf9d4 100644
>> --- a/src/egl/main/eglconfig.c
>> +++ b/src/egl/main/eglconfig.c
>> @@ -407,6 +407,11 @@ _eglValidateConfig(const _EGLConfig *conf, EGLBoolean for_matching)
>>         return EGL_FALSE;
>>      }
>>   
>> +   /* pbuffer with MSAA not supported */
>> +   if (conf->SurfaceType & EGL_PBUFFER_BIT && conf->Samples) {
>> +      return EGL_FALSE;
>> +   }
>> +
>>      if (!(conf->SurfaceType & EGL_WINDOW_BIT)) {
>>         if (conf->NativeVisualID != 0 || conf->NativeVisualType != EGL_NONE)
>>            valid = EGL_FALSE;
>>



More information about the mesa-dev mailing list